You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/06/10 14:34:22 UTC

[cayenne] branch master updated: Add logger to PropertyUtils.

This is an automated email from the ASF dual-hosted git repository.

abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 39d6c56  Add logger to PropertyUtils.
39d6c56 is described below

commit 39d6c566b175367dc10d8ae158a12f123e3e6349
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Mon Jun 10 17:17:53 2019 +0300

    Add logger to PropertyUtils.
---
 .../main/java/org/apache/cayenne/gen/Artifact.java   |  2 +-
 .../apache/cayenne/gen/ClassGenerationAction.java    |  6 +++---
 .../apache/cayenne/gen/DefaultToolsUtilsFactory.java |  5 +++--
 .../java/org/apache/cayenne/gen/PropertyUtils.java   | 14 ++++++++++++--
 .../org/apache/cayenne/gen/ToolsUtilsFactory.java    |  4 +++-
 .../cayenne/gen/ClientSuperClassGenerationTest.java  | 12 ++++++++++--
 .../org/apache/cayenne/gen/PropertyUtilsTest.java    |  5 ++++-
 .../cayenne/gen/SingleClassGenerationTest.java       | 20 ++++++++++++++++----
 .../apache/cayenne/gen/SuperClassGenerationTest.java | 20 ++++++++++++++++----
 9 files changed, 68 insertions(+), 20 deletions(-)

diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/Artifact.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/Artifact.java
index 42a06ec..b04c9a3 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/Artifact.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/Artifact.java
@@ -59,7 +59,7 @@ public interface Artifact {
     /**
      * A callback method that allows each artifact to add its own special keys to the
      * context. Invoked from
-     * {@link ClassGenerationAction#resetContextForArtifactTemplate(Artifact, TemplateType)},
+     * {@link ClassGenerationAction#resetContextForArtifactTemplate(Artifact)},
      * after the context is initialized by code generator, so this method can use
      * predefined keys from the context.
      */
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
index 79500ec..1363685 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
@@ -169,10 +169,10 @@ public class ClassGenerationAction {
 	 * VelocityContext initialization method called once per each artifact and
 	 * template type combination.
 	 */
-	void resetContextForArtifactTemplate(Artifact artifact, TemplateType templateType) {
+	void resetContextForArtifactTemplate(Artifact artifact) {
         ImportUtils importUtils = utilsFactory.createImportUtils();
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
-		context.put(Artifact.PROPERTY_UTILS_KEY, utilsFactory.createPropertyUtils(importUtils));
+		context.put(Artifact.PROPERTY_UTILS_KEY, utilsFactory.createPropertyUtils(logger, importUtils));
 		artifact.postInitContext(context);
 	}
 
@@ -260,7 +260,7 @@ public class ClassGenerationAction {
 			try (Writer out = openWriter(type)) {
 				if (out != null) {
 
-					resetContextForArtifactTemplate(artifact, type);
+					resetContextForArtifactTemplate(artifact);
 					getTemplate(type).merge(context, out);
 				}
 			}
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DefaultToolsUtilsFactory.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DefaultToolsUtilsFactory.java
index ed8e141..57a4d93 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DefaultToolsUtilsFactory.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DefaultToolsUtilsFactory.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.gen.property.PropertyDescriptorCreator;
 import org.apache.cayenne.tools.ToolsConstants;
+import org.slf4j.Logger;
 
 /**
  * @since 4.2
@@ -42,7 +43,7 @@ public class DefaultToolsUtilsFactory implements ToolsUtilsFactory {
     }
 
     @Override
-    public PropertyUtils createPropertyUtils(ImportUtils importUtils) {
-        return new PropertyUtils(importUtils, objectFactory, propertyList);
+    public PropertyUtils createPropertyUtils(Logger logger, ImportUtils importUtils) {
+        return new PropertyUtils(importUtils, objectFactory, propertyList, logger);
     }
 }
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/PropertyUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/PropertyUtils.java
index 6d42984..dfef034 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/PropertyUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/PropertyUtils.java
@@ -50,6 +50,7 @@ import org.apache.cayenne.map.EmbeddedAttribute;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
+import org.slf4j.Logger;
 
 /**
  * @since 4.2
@@ -85,15 +86,22 @@ public class PropertyUtils {
     private List<PropertyDescriptorCreator> propertyList;
     private AdhocObjectFactory adhocObjectFactory;
 
+    private Logger logger;
+
     public PropertyUtils(ImportUtils importUtils) {
         this.importUtils = importUtils;
         this.propertyList = new ArrayList<>();
+
     }
 
-    public PropertyUtils(ImportUtils importUtils, AdhocObjectFactory adhocObjectFactory, List<PropertyDescriptorCreator> propertyList) {
+    public PropertyUtils(ImportUtils importUtils,
+                         AdhocObjectFactory adhocObjectFactory,
+                         List<PropertyDescriptorCreator> propertyList,
+                         Logger logger) {
         this.importUtils = importUtils;
         this.adhocObjectFactory = adhocObjectFactory;
         this.propertyList = propertyList;
+        this.logger = logger;
     }
 
     public void addImportForPK(EntityUtils entityUtils) throws ClassNotFoundException {
@@ -371,7 +379,9 @@ public class PropertyUtils {
                 }
             }
         } catch (DIRuntimeException ex) {
-            System.out.println("WARN: Class not found: " + attrType + ". Will use default PropertyDescriptor.");
+            if(logger != null) {
+                logger.warn("WARN: Class not found: " + attrType + ". Will use default PropertyDescriptor.");
+            }
             return PropertyDescriptor.defaultDescriptor();
         }
         return PropertyDescriptor.defaultDescriptor();
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ToolsUtilsFactory.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ToolsUtilsFactory.java
index 512ee13..a82e4ec 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ToolsUtilsFactory.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ToolsUtilsFactory.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.cayenne.gen;
 
+import org.slf4j.Logger;
+
 /**
  * @since 4.2
  */
@@ -25,5 +27,5 @@ public interface ToolsUtilsFactory {
 
     ImportUtils createImportUtils();
 
-    PropertyUtils createPropertyUtils(ImportUtils importUtils);
+    PropertyUtils createPropertyUtils(Logger logger, ImportUtils importUtils);
 }
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
index 543e11f..a37d69b 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
@@ -24,12 +24,16 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.velocity.VelocityContext;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 public class ClientSuperClassGenerationTest extends ClassGenerationCase {
 
+    Logger logger = LoggerFactory.getLogger(ClientSuperClassGenerationTest.class);
+
     @Test
     public void testNotContainsPropertyImport() throws Exception {
         ObjEntity objEntity = new ObjEntity("TEST1");
@@ -53,7 +57,9 @@ public class ClientSuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertTrue(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
@@ -91,7 +97,9 @@ public class ClientSuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertTrue(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/PropertyUtilsTest.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/PropertyUtilsTest.java
index cfe5508..7b75365 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/PropertyUtilsTest.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/PropertyUtilsTest.java
@@ -44,6 +44,8 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -57,6 +59,7 @@ public class PropertyUtilsTest {
 
     PropertyUtils propertyUtils;
     ImportUtils importUtils;
+    Logger logger = LoggerFactory.getLogger(PropertyUtilsTest.class);
 
     @Before
     public void setup() {
@@ -68,7 +71,7 @@ public class PropertyUtilsTest {
                         ServerModule.contributeUserTypes(binder)
                                 .add(new TimestampType()))
                 .getInstance(ToolsUtilsFactory.class)
-                .createPropertyUtils(importUtils);
+                .createPropertyUtils(logger, importUtils);
     }
 
     @Test
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
index bb85218..202ee62 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
@@ -24,12 +24,16 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.velocity.VelocityContext;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 public class SingleClassGenerationTest extends ClassGenerationCase {
 
+    Logger logger = LoggerFactory.getLogger(SingleClassGenerationTest.class);
+
     @Test
     public void testNotContainsPropertyImport() throws Exception {
         ObjEntity objEntity = new ObjEntity("TEST1");
@@ -39,7 +43,9 @@ public class SingleClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
         assertFalse(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
@@ -58,7 +64,9 @@ public class SingleClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
         assertTrue(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
@@ -76,7 +84,9 @@ public class SingleClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
         assertFalse(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
@@ -99,7 +109,9 @@ public class SingleClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
         assertTrue(res.contains("org.apache.cayenne.exp.property.NumericProperty"));
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
index a81be6a..ca72518 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
@@ -26,12 +26,16 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.velocity.VelocityContext;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 public class SuperClassGenerationTest extends ClassGenerationCase {
 
+    Logger logger = LoggerFactory.getLogger(SuperClassGenerationTest.class);
+
     @Test
     public void testNotContainsPropertyImport() throws Exception {
         ObjEntity objEntity = new ObjEntity("TEST1");
@@ -41,7 +45,9 @@ public class SuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertFalse(res.contains(NumericProperty.class.getName()));
@@ -60,7 +66,9 @@ public class SuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertTrue(res.contains(NumericProperty.class.getName()));
@@ -78,7 +86,9 @@ public class SuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertFalse(res.contains(NumericProperty.class.getName()));
@@ -102,7 +112,9 @@ public class SuperClassGenerationTest extends ClassGenerationCase {
         context.put(Artifact.OBJECT_KEY, objEntity);
         context.put(Artifact.IMPORT_UTILS_KEY, importUtils);
         context.put(Artifact.STRING_UTILS_KEY, StringUtils.getInstance());
-        context.put(Artifact.PROPERTY_UTILS_KEY, getInjector().getInstance(ToolsUtilsFactory.class).createPropertyUtils(importUtils));
+        context.put(Artifact.PROPERTY_UTILS_KEY,
+                getInjector().getInstance(ToolsUtilsFactory.class)
+                        .createPropertyUtils(logger, importUtils));
 
         String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
         assertTrue(res.contains(NumericProperty.class.getName()));