Repository: cayenne
Updated Branches:
  refs/heads/master 5be9a2eb4 -> 5b6b60c9b


CAY-1964 | Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5b6b60c9
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5b6b60c9
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5b6b60c9

Branch: refs/heads/master
Commit: 5b6b60c9b7ae8193457e93739a307416cd338db8
Parents: 5be9a2e
Author: Savva Kolbechev <s.kolbac...@gmail.com>
Authored: Thu Oct 30 16:01:29 2014 +0300
Committer: Savva Kolbechev <s.kolbac...@gmail.com>
Committed: Thu Oct 30 16:01:29 2014 +0300

----------------------------------------------------------------------
 .../cayenne/tools/CayenneGeneratorMojo.java     | 25 +++++++++++++-------
 .../cayenne/tools/CayenneGeneratorMojoTest.java | 10 ++++++--
 .../test/resources/cgen/cayenne-testDomain.xml  |  1 +
 .../test/resources/cgen/project-to-test/pom.xml |  1 +
 .../resources/cgen/testAdditionalMap.map.xml    | 18 ++++++++++++++
 .../test/resources/cgen/testDomainMap.map.xml   |  5 ++++
 6 files changed, 49 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
 
b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
index 12b4468..7ed907a 100644
--- 
a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
+++ 
b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
@@ -19,8 +19,6 @@
 
 package org.apache.cayenne.tools;
 
-import java.io.File;
-
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.gen.ClientClassGenerationAction;
 import org.apache.cayenne.map.DataMap;
@@ -29,6 +27,9 @@ import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 
+import java.io.File;
+import java.io.FilenameFilter;
+
 /**
  * Maven mojo to perform class generation from data map. This class is an Maven
  * adapter to DefaultClassGenerator class.
@@ -238,15 +239,21 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 
                if (!additionalMaps.isDirectory()) {
                        throw new MojoFailureException(
-                                       "'additionalMaps' must be a directory 
containing only datamap files.");
+                                       "'additionalMaps' must be a 
directory.");
                }
 
-               String[] maps = additionalMaps.list();
-               File[] dataMaps = new File[maps.length];
-               for (int i = 0; i < maps.length; i++) {
-                       dataMaps[i] = new File(maps[i]);
-               }
-               return dataMaps;
+        FilenameFilter mapFilter = new FilenameFilter() {
+            @Override
+            public boolean accept(File dir, String name) {
+                if (name != null &&
+                        name.toLowerCase().endsWith(".map.xml")) {
+                    return true;
+                } else {
+                    return false;
+                }
+            }
+        };
+        return additionalMaps.listFiles(mapFilter);
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/CayenneGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/CayenneGeneratorMojoTest.java
 
b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/CayenneGeneratorMojoTest.java
index 839b5de..ab9ffdf 100644
--- 
a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/CayenneGeneratorMojoTest.java
+++ 
b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/CayenneGeneratorMojoTest.java
@@ -18,10 +18,11 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import java.io.File;
-
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 
+import java.io.File;
+import java.nio.file.Files;
+
 public class CayenneGeneratorMojoTest extends AbstractMojoTestCase {
 
     public void testCgenExecution() throws Exception {
@@ -68,5 +69,10 @@ public class CayenneGeneratorMojoTest extends 
AbstractMojoTestCase {
         assertFalse(superExcludedEntity.exists());
         assertFalse(excludedEntity.exists());
 
+        String content = new 
String(Files.readAllBytes(superTestEntity.toPath()));
+        assertTrue(content.contains("public static final 
Property<List<TestRelEntity>> ADDITIONAL_REL = new 
Property<List<TestRelEntity>>(\"additionalRel\");"));
+        assertTrue(content.contains("public void 
addToAdditionalRel(TestRelEntity obj)"));
+        assertTrue(content.contains("public void 
removeFromAdditionalRel(TestRelEntity obj)"));
+
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/test/resources/cgen/cayenne-testDomain.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/cayenne-testDomain.xml 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/cayenne-testDomain.xml
index c47fa5e..3f63c14 100644
--- 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/cayenne-testDomain.xml
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/cayenne-testDomain.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <domain project-version="6">
        <map name="testDomainMap"/>
+    <map name="testAdditionalMap"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/test/resources/cgen/project-to-test/pom.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/project-to-test/pom.xml 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/project-to-test/pom.xml
index 9646937..41d545c 100644
--- 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/project-to-test/pom.xml
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/project-to-test/pom.xml
@@ -39,6 +39,7 @@
                                <configuration>
                                        
<map>src/test/resources/cgen/testDomainMap.map.xml</map>
                                        
<destDir>target/cayenneGeneratedClasses</destDir>
+                    <additionalMaps>src/test/resources/cgen/</additionalMaps>
                                        <outputPattern>*.txt</outputPattern>
                                        <makePairs>true</makePairs>
                                        <usePkgPath>true</usePkgPath>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml
 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml
new file mode 100644
index 0000000..f9a80fb
--- /dev/null
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap";
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+          xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap 
http://cayenne.apache.org/schema/3.0/modelMap.xsd";
+          project-version="6">
+    <property name="defaultPackage" value="pack"/>
+    <db-entity name="TestRelEntity">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <obj-entity name="TestRelEntity" className="pack.TestRelEntity" 
dbEntityName="TestRelEntity">
+        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+    </obj-entity>
+    <db-relationship name="additionalRel" source="TestRelEntity" 
target="TestEntity" toMany="false">
+        <db-attribute-pair source="ID" target="TestRelEntity_ID"/>
+    </db-relationship>
+    <obj-relationship name="additionalRel" source="TestRelEntity" 
target="TestEntity" deleteRule="Nullify" db-relationship-path="additionalRel"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5b6b60c9/plugins/maven-cayenne-plugin/src/test/resources/cgen/testDomainMap.map.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/cgen/testDomainMap.map.xml 
b/plugins/maven-cayenne-plugin/src/test/resources/cgen/testDomainMap.map.xml
index 922bd0f..d0ff3f5 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/cgen/testDomainMap.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/cgen/testDomainMap.map.xml
@@ -14,6 +14,7 @@
        <db-entity name="TestEntity">
                <db-attribute name="id" type="BIGINT" isPrimaryKey="true" 
isMandatory="true"/>
                <db-attribute name="testAttr" type="VARCHAR" length="255"/>
+        <db-attribute name="TestRelEntity_ID" type="INTEGER"/>
        </db-entity>
        <db-entity name="TestExcludedEntity">
                <db-attribute name="id" type="BIGINT" isPrimaryKey="true" 
isMandatory="true"/>
@@ -35,6 +36,10 @@
        <db-relationship name="parentRel" source="TestEntity" 
target="TestEntity" toMany="false">
                <db-attribute-pair source="id" target="id"/>
        </db-relationship>
+    <db-relationship name="additionalRel" source="TestEntity" 
target="TestRelEntity" toMany="true">
+        <db-attribute-pair source="TestRelEntity_ID" target="ID"/>
+    </db-relationship>
        <obj-relationship name="childrenRel" source="TestEntity" 
target="TestEntity" deleteRule="Deny" db-relationship-path="childrenRel"/>
        <obj-relationship name="parentRel" source="TestEntity" 
target="TestEntity" deleteRule="Nullify" db-relationship-path="parentRel"/>
+    <obj-relationship name="additionalRel" source="TestEntity" 
target="TestRelEntity" deleteRule="Deny" db-relationship-path="additionalRel"/>
 </data-map>

Reply via email to