From 9f4fba24dab254fb43d00ac65a3b2896d3ed9e61 Mon Sep 17 00:00:00 2001 From: Mark Struberg Date: Tue, 27 Dec 2011 10:59:45 +0000 Subject: [PATCH] OPENJPA-2100 fix filterPersistenceCapable Fixing a bug which got introduced in r1091279 and caused entities which contained enums to be broken. git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1224892 13f79535-47bb-0310-9956-ffa450edef68 --- openjpa-tools/openjpa-maven-plugin/pom.xml | 4 ++ .../tools/maven/testentity/TestEntity.java | 66 ++++++++++++------- .../maven/test/ItDefaultSettingsTest.java | 3 +- .../test/resources/reference_schema.orig_xml | 3 +- .../maven/AbstractOpenJpaMappingToolMojo.java | 9 ++- 5 files changed, 57 insertions(+), 28 deletions(-) diff --git a/openjpa-tools/openjpa-maven-plugin/pom.xml b/openjpa-tools/openjpa-maven-plugin/pom.xml index ab1710bef..2928307a1 100644 --- a/openjpa-tools/openjpa-maven-plugin/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/pom.xml @@ -115,6 +115,10 @@ org.apache.geronimo.specs geronimo-validation_1.0_spec + + org.apache.bval + org.apache.bval.bundle + log4j log4j diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/main/java/org/apache/openjpa/tools/maven/testentity/TestEntity.java b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/main/java/org/apache/openjpa/tools/maven/testentity/TestEntity.java index 2bc7ee6b9..6d3d91487 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/main/java/org/apache/openjpa/tools/maven/testentity/TestEntity.java +++ b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/main/java/org/apache/openjpa/tools/maven/testentity/TestEntity.java @@ -20,42 +20,60 @@ package org.apache.openjpa.tools.maven.testentity; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Enumerated; +import javax.persistence.EnumType; @Entity public class TestEntity { - @Id - private int xint1; + @Id + private int xint1; - private String string1; + private String string1; - protected TestEntity() { - } + public enum SampleEnum { + Option1, Option2, Option3 + } - public TestEntity(int int1, String string1) { - this.xint1 = int1; - this.string1 = string1; - } + @Enumerated(EnumType.STRING) + private SampleEnum myEnum; - public int getInt1() { - return xint1; - } - public void setInt1(int int1) { - this.xint1 = int1; - } + protected TestEntity() { + } - public String getString1() { - return string1; - } + public TestEntity(int int1, String string1) { + this.xint1 = int1; + this.string1 = string1; + } - public void setString1(String string1) { - this.string1 = string1; - } + public int getInt1() { + return xint1; + } - public String toString() { - return xint1 + ":" + string1; - } + public void setInt1(int int1) { + this.xint1 = int1; + } + + public String getString1() { + return string1; + } + + public void setString1(String string1) { + this.string1 = string1; + } + + public String toString() { + return xint1 + ":" + string1; + } + + public SampleEnum getMyEnum() { + return myEnum; + } + + public void setMyEnum(SampleEnum myEnum) { + this.myEnum = myEnum; + } } diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/java/org/apache/openjpa/tools/maven/test/ItDefaultSettingsTest.java b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/java/org/apache/openjpa/tools/maven/test/ItDefaultSettingsTest.java index 46eaa7e2c..a2fc0a676 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/java/org/apache/openjpa/tools/maven/test/ItDefaultSettingsTest.java +++ b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/java/org/apache/openjpa/tools/maven/test/ItDefaultSettingsTest.java @@ -43,7 +43,8 @@ public class ItDefaultSettingsTest extends TestCase { private final static String SQL_FILE = "database.sql"; /** if the SQL generation has been successful, the following result should be in the SQL file */ - private final static String VALID_SQL = "CREATE TABLE TestEntity (xint1 INTEGER NOT NULL, string1 VARCHAR(255), PRIMARY KEY (xint1));"; + private final static String VALID_SQL = "CREATE TABLE TestEntity (xint1 INTEGER NOT NULL, myEnum VARCHAR(20), " + + "string1 VARCHAR(255), PRIMARY KEY (xint1));"; private final static String TEST_ENTITY_CLASS = "org.apache.openjpa.tools.maven.testentity.TestEntity"; diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/resources/reference_schema.orig_xml b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/resources/reference_schema.orig_xml index 6c604cc1c..0ae75b587 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/resources/reference_schema.orig_xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/src/test/resources/reference_schema.orig_xml @@ -4,7 +4,8 @@ +
- \ No newline at end of file + diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java index be2b1e485..026397276 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java +++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java @@ -22,6 +22,7 @@ package org.apache.openjpa.tools.maven; import java.io.File; import java.io.IOException; import java.sql.SQLException; +import java.util.Iterator; import java.util.List; import javax.persistence.Entity; @@ -130,8 +131,11 @@ public abstract class AbstractOpenJpaMappingToolMojo extends AbstractOpenJpaMojo MetaDataRepository repo = conf.newMetaDataRepositoryInstance(); ClassArgParser cap = repo.getMetaDataFactory().newClassArgParser(); - for(File classPath : files) { - Class[] classes = cap.parseTypes(classPath.getAbsolutePath()); + Iterator fileIt = files.iterator(); + while (fileIt.hasNext()) { + File classPath = fileIt.next(); + + Class[] classes = cap.parseTypes(classPath.getAbsolutePath()); if (classes == null) { getLog().info("Found no classes for " + classPath.getAbsolutePath()); @@ -146,6 +150,7 @@ public abstract class AbstractOpenJpaMappingToolMojo extends AbstractOpenJpaMojo + PersistenceCapable.class.getName()); } else { getLog().debug("Removing non-entity class " + classPath); + fileIt.remove(); } } }