From 5b6b60c9b7ae8193457e93739a307416cd338db8 Mon Sep 17 00:00:00 2001 From: Savva Kolbechev Date: Thu, 30 Oct 2014 16:01:29 +0300 Subject: [PATCH] CAY-1964 | Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java --- .../cayenne/tools/CayenneGeneratorMojo.java | 25 ++++++++++++------- .../tools/CayenneGeneratorMojoTest.java | 10 ++++++-- .../resources/cgen/cayenne-testDomain.xml | 1 + .../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(-) create mode 100644 plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml 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 12b4468b60..7ed907ad3d 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.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 @@ protected File[] convertAdditionalDataMaps() throws Exception { 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); } /** 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 839b5ded1c..ab9ffdfc68 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 void testCgenExecution() throws Exception { assertFalse(superExcludedEntity.exists()); assertFalse(excludedEntity.exists()); + String content = new String(Files.readAllBytes(superTestEntity.toPath())); + assertTrue(content.contains("public static final Property> ADDITIONAL_REL = new Property>(\"additionalRel\");")); + assertTrue(content.contains("public void addToAdditionalRel(TestRelEntity obj)")); + assertTrue(content.contains("public void removeFromAdditionalRel(TestRelEntity obj)")); + } } 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 c47fa5e3d8..3f63c14bd7 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 @@ + 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 9646937720..41d545cd4f 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 @@ src/test/resources/cgen/testDomainMap.map.xml target/cayenneGeneratedClasses + src/test/resources/cgen/ *.txt true true 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 0000000000..f9a80fbb65 --- /dev/null +++ b/plugins/maven-cayenne-plugin/src/test/resources/cgen/testAdditionalMap.map.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file 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 922bd0fad7..d0ff3f5897 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 @@ + @@ -35,6 +36,10 @@ + + + +