You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/02/02 13:55:00 UTC
cayenne git commit: CAY-2220 cdbimport: Java 8 date and time types -
new property in cdbimport (Maven and Ant) configuration - useJava7Types with
default false (i.e. Java 8 types will be used) - new flags in Reverse
Engineering GUI in modeler (use prim
Repository: cayenne
Updated Branches:
refs/heads/master 67282fb6d -> 99f4f21c1
CAY-2220 cdbimport: Java 8 date and time types
- new property in cdbimport (Maven and Ant) configuration - useJava7Types with default false (i.e. Java 8 types will be used)
- new flags in Reverse Engineering GUI in modeler (use primitives and use old java.util.Date types)
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/99f4f21c
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/99f4f21c
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/99f4f21c
Branch: refs/heads/master
Commit: 99f4f21c179da1abdaa8da2876f4da3991002b30
Parents: 67282fb
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Feb 2 16:40:45 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Feb 2 16:40:45 2017 +0300
----------------------------------------------------------------------
.../apache/cayenne/tools/DbImporterTask.java | 5 +++
.../tools/build-include-table.map.xml-result | 2 +-
.../merge/context/EntityMergeSupport.java | 22 ++++++++--
.../dbsync/merge/context/MergerContext.java | 9 +++-
.../reverse/dbimport/DbImportConfiguration.java | 9 ++++
.../reverse/dbimport/DefaultDbImportAction.java | 1 +
.../reverse/dbimport/ReverseEngineering.java | 9 ++++
.../dbsync/merge/EntityMergeSupportIT.java | 3 +-
.../apache/cayenne/tools/DbImporterMojo.java | 1 +
.../cayenne/tools/DbImporterMojoTest.java | 10 +++++
.../dbimport/testDefaultPackage.map.xml-result | 4 +-
.../testFilteringWithSchema.map.xml-result | 4 +-
.../testForceDataMapSchema.map.xml-result | 4 +-
.../testImportAddTableAndColumn.map.xml-result | 4 +-
.../testImportNewDataMap.map.xml-result | 2 +-
.../tools/dbimport/testJava7Types-pom.xml | 46 ++++++++++++++++++++
.../tools/dbimport/testJava7Types.map.xml | 26 +++++++++++
.../dbimport/testJava7Types.map.xml-result | 39 +++++++++++++++++
.../cayenne/tools/dbimport/testJava7Types.sql | 27 ++++++++++++
.../tools/dbimport/testJava8Types-pom.xml | 46 ++++++++++++++++++++
.../tools/dbimport/testJava8Types.map.xml | 26 +++++++++++
.../dbimport/testJava8Types.map.xml-result | 39 +++++++++++++++++
.../cayenne/tools/dbimport/testJava8Types.sql | 27 ++++++++++++
.../testSchemasAndTableExclude.map.xml-result | 2 +-
.../dbimport/testViewsExclude.map.xml-result | 2 +-
.../modeler/action/CreateObjEntityAction.java | 5 +--
.../modeler/dialog/db/load/DbLoaderContext.java | 2 +
.../dialog/db/load/DbLoaderOptionsDialog.java | 22 ++++++++++
.../dialog/objentity/EntitySyncController.java | 4 +-
29 files changed, 380 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
----------------------------------------------------------------------
diff --git a/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbImporterTask.java b/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
index 6c939c1..9a42ede 100644
--- a/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
+++ b/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
@@ -54,6 +54,7 @@ public class DbImporterTask extends Task {
public DbImporterTask() {
this.config = new DbImportConfiguration();
this.config.setUsePrimitives(true);
+ this.config.setUseJava7Types(false);
this.config.setNamingStrategy(DefaultObjectNameGenerator.class.getName());
// reverse engineering config is flattened into task...
@@ -215,6 +216,10 @@ public class DbImporterTask extends Task {
config.setUsePrimitives(flag);
}
+ public void setUseJava7Types(boolean flag) {
+ config.setUseJava7Types(flag);
+ }
+
public void setForceDataMapCatalog(boolean flag) {
config.setForceDataMapCatalog(flag);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-ant/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
----------------------------------------------------------------------
diff --git a/cayenne-ant/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result b/cayenne-ant/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
index 5c0d2b6..050561f 100644
--- a/cayenne-ant/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
+++ b/cayenne-ant/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
@@ -32,6 +32,6 @@
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
index 7f86dd2..72677c7 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
@@ -38,6 +38,7 @@ import org.apache.cayenne.util.EntityMergeListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.sql.Types;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -52,10 +53,14 @@ public class EntityMergeSupport {
private static final Log LOGGER = LogFactory.getLog(EntityMergeSupport.class);
- private static final Map<String, String> CLASS_TO_PRIMITIVE;
+ private static final Map<String, String> CLASS_TO_PRIMITIVE = new HashMap<>();
+
+ /**
+ * Type conversion to Java 8 types (now it's only java.time.* types)
+ */
+ private static final Map<Integer, String> SQL_TYPE_TO_JAVA8_TYPE = new HashMap<>();
static {
- CLASS_TO_PRIMITIVE = new HashMap<>();
CLASS_TO_PRIMITIVE.put(Byte.class.getName(), "byte");
CLASS_TO_PRIMITIVE.put(Long.class.getName(), "long");
CLASS_TO_PRIMITIVE.put(Double.class.getName(), "double");
@@ -63,6 +68,10 @@ public class EntityMergeSupport {
CLASS_TO_PRIMITIVE.put(Float.class.getName(), "float");
CLASS_TO_PRIMITIVE.put(Short.class.getName(), "short");
CLASS_TO_PRIMITIVE.put(Integer.class.getName(), "int");
+
+ SQL_TYPE_TO_JAVA8_TYPE.put(Types.DATE, "java.time.LocalDate");
+ SQL_TYPE_TO_JAVA8_TYPE.put(Types.TIME, "java.time.LocalTime");
+ SQL_TYPE_TO_JAVA8_TYPE.put(Types.TIMESTAMP, "java.time.LocalDateTime");
}
private final ObjectNameGenerator nameGenerator;
@@ -70,17 +79,20 @@ public class EntityMergeSupport {
private final boolean removingMeaningfulFKs;
private final NameFilter meaningfulPKsFilter;
private final boolean usingPrimitives;
+ private final boolean usingJava7Types;
public EntityMergeSupport(ObjectNameGenerator nameGenerator,
NameFilter meaningfulPKsFilter,
boolean removingMeaningfulFKs,
- boolean usingPrimitives) {
+ boolean usingPrimitives,
+ boolean usingJava7Types) {
this.listeners = new ArrayList<>();
this.nameGenerator = nameGenerator;
this.removingMeaningfulFKs = removingMeaningfulFKs;
this.meaningfulPKsFilter = meaningfulPKsFilter;
this.usingPrimitives = usingPrimitives;
+ this.usingJava7Types = usingJava7Types;
// will ensure that all created ObjRelationships would have
// default delete rule
@@ -269,6 +281,10 @@ public class EntityMergeSupport {
}
private String getTypeForObjAttribute(DbAttribute dbAttribute) {
+ String java8Type;
+ if(!usingJava7Types && (java8Type = SQL_TYPE_TO_JAVA8_TYPE.get(dbAttribute.getType())) != null) {
+ return java8Type;
+ }
String type = TypesMapping.getJavaBySqlType(dbAttribute.getType());
String primitiveType;
if (usingPrimitives && (primitiveType = CLASS_TO_PRIMITIVE.get(type)) != null) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/MergerContext.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/MergerContext.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/MergerContext.java
index b048952..6bc05fb 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/MergerContext.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/MergerContext.java
@@ -103,6 +103,7 @@ public class MergerContext {
private MergerContext context;
private boolean usingPrimitives;
+ private boolean usingJava7Types;
private NameFilter meaningfulPKsFilter;
private Builder(DataMap dataMap) {
@@ -134,7 +135,8 @@ public class MergerContext {
context.entityMergeSupport = new EntityMergeSupport(context.nameGenerator,
meaningfulPKsFilter,
true,
- usingPrimitives);
+ usingPrimitives,
+ usingJava7Types);
return context;
}
@@ -154,6 +156,11 @@ public class MergerContext {
return this;
}
+ public Builder usingJava7Types(boolean flag) {
+ this.usingJava7Types = flag;
+ return this;
+ }
+
public Builder dataNode(DataNode dataNode) {
this.context.dataNode = Objects.requireNonNull(dataNode);
return this;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
index 2e568cb..d7350e7 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
@@ -55,6 +55,7 @@ public class DbImportConfiguration {
private String meaningfulPkTables;
private String adapter;
private boolean usePrimitives;
+ private boolean useJava7Types;
private Log logger;
private String namingStrategy;
private String stripFromTableNames;
@@ -145,6 +146,14 @@ public class DbImportConfiguration {
this.usePrimitives = usePrimitives;
}
+ public boolean isUseJava7Types() {
+ return useJava7Types;
+ }
+
+ public void setUseJava7Types(boolean useJava7Types) {
+ this.useJava7Types = useJava7Types;
+ }
+
public NameFilter createMeaningfulPKFilter() {
if (meaningfulPkTables == null) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
index c7f9ceb..cd2838c 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
@@ -325,6 +325,7 @@ public class DefaultDbImportAction implements DbImportAction {
.delegate(mergeDelegate)
.nameGenerator(nameGenerator)
.usingPrimitives(config.isUsePrimitives())
+ .usingJava7Types(config.isUseJava7Types())
.meaningfulPKFilter(config.createMeaningfulPKFilter())
.build();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
index b42bc80..30a5e3d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
@@ -96,6 +96,11 @@ public class ReverseEngineering extends SchemaContainer implements Serializable
private boolean usePrimitives = true;
/**
+ * Use old Java 7 date types
+ */
+ private boolean useJava7Types = false;
+
+ /**
* Typical types are: <ul>
* <li> "TABLE"
* <li> "VIEW"
@@ -207,4 +212,8 @@ public class ReverseEngineering extends SchemaContainer implements Serializable
public boolean isUsePrimitives() {
return usePrimitives;
}
+
+ public boolean isUseJava7Types() {
+ return useJava7Types;
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
index 82d567e..76c1731 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
@@ -94,7 +94,8 @@ public class EntityMergeSupportIT extends MergeCase {
new DefaultObjectNameGenerator(NoStemStemmer.getInstance()),
NamePatternMatcher.EXCLUDE_ALL,
true,
- true);
+ true,
+ false);
assertTrue(entityMergeSupport.synchronizeWithDbEntities(Arrays.asList(objEntity1, objEntity2)));
assertNotNull(objEntity1.getAttribute("name"));
assertNotNull(objEntity1.getRelationship("newTable2s"));
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
index 8faf2ba..2d2d761 100644
--- a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
+++ b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
@@ -154,6 +154,7 @@ public class DbImporterMojo extends AbstractMojo {
config.setUrl(dataSource.getUrl());
config.setUsername(dataSource.getUsername());
config.setUsePrimitives(dbImportConfig.isUsePrimitives());
+ config.setUseJava7Types(dbImportConfig.isUseJava7Types());
return config;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index a99f309..eec1c18 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -247,6 +247,16 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
}
@Test
+ public void testJava7Types() throws Exception {
+ test("testJava7Types");
+ }
+
+ @Test
+ public void testJava8Types() throws Exception {
+ test("testJava8Types");
+ }
+
+ @Test
public void testFilteringConfig() throws Exception {
DbImporterMojo cdbImport = getCdbImport("config/pom-01.xml");
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
index 5373617..f581dc4 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
@@ -40,13 +40,13 @@
<obj-entity name="Child" className="com.example.test.Child" dbEntityName="CHILD">
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
<obj-attribute name="parentId" type="java.lang.String" db-attribute-path="PARENT_ID"/>
</obj-entity>
<obj-entity name="Parent" className="com.example.test.Parent" dbEntityName="PARENT">
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
index a65e271..d5d7849 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
@@ -39,13 +39,13 @@
<obj-entity name="Child" className="Child" dbEntityName="CHILD">
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
<obj-attribute name="parentId" type="java.lang.String" db-attribute-path="PARENT_ID"/>
</obj-entity>
<obj-entity name="Parent" className="Parent" dbEntityName="PARENT">
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml-result
index 0eaaffd..4a6e490 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml-result
@@ -40,13 +40,13 @@
<obj-entity name="Child" className="com.example.test.Child" dbEntityName="CHILD">
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
<obj-attribute name="parentId" type="java.lang.String" db-attribute-path="PARENT_ID"/>
</obj-entity>
<obj-entity name="Parent" className="com.example.test.Parent" dbEntityName="PARENT">
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
index a5dd466..42a8e15 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
@@ -38,13 +38,13 @@
<obj-entity name="Child" className="Child" dbEntityName="CHILD">
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
<obj-attribute name="parentId" type="java.lang.String" db-attribute-path="PARENT_ID"/>
</obj-entity>
<obj-entity name="Parent" className="Parent" dbEntityName="PARENT">
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
index 6133ac4..923f87b 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
@@ -32,6 +32,6 @@
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types-pom.xml
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types-pom.xml b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types-pom.xml
new file mode 100644
index 0000000..347ea13
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types-pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <name>DbImporterMojo Test1</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>cayenne-maven-plugin</artifactId>
+ <configuration>
+ <map>target/test-classes/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml</map>
+ <dataSource>
+ <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+ <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+ </dataSource>
+ <dbimport>
+ <schema>SCHEMA_01</schema>
+ <useJava7Types>true</useJava7Types>
+ </dbimport>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml
new file mode 100644
index 0000000..08ac7f7
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+ project-version="9">
+ <property name="defaultSchema" value="SCHEMA_01"/>
+</data-map>
+
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml-result
new file mode 100644
index 0000000..480c302
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.map.xml-result
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+ project-version="9">
+ <property name="defaultSchema" value="SCHEMA_01"/>
+
+ <db-entity name="CHILD" schema="SCHEMA_01">
+ <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
+ <db-attribute name="date" type="DATE" length="10" />
+ <db-attribute name="time" type="TIME" length="8" />
+ <db-attribute name="timestamp" type="TIMESTAMP" length="29" />
+ </db-entity>
+
+ <obj-entity name="Child" className="Child" dbEntityName="CHILD">
+ <obj-attribute name="date" type="java.util.Date" db-attribute-path="date"/>
+ <obj-attribute name="time" type="java.util.Date" db-attribute-path="time"/>
+ <obj-attribute name="timestamp" type="java.util.Date" db-attribute-path="timestamp"/>
+ </obj-entity>
+</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.sql
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.sql b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.sql
new file mode 100644
index 0000000..4a20013
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava7Types.sql
@@ -0,0 +1,27 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+CREATE SCHEMA schema_01;
+SET SCHEMA schema_01;
+
+CREATE TABLE schema_01.child (
+ "date" DATE,
+ "time" TIME,
+ "timestamp" TIMESTAMP,
+ id INTEGER NOT NULL,
+ PRIMARY KEY (id)
+);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types-pom.xml
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types-pom.xml b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types-pom.xml
new file mode 100644
index 0000000..ea39308
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types-pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <name>DbImporterMojo Test1</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>cayenne-maven-plugin</artifactId>
+ <configuration>
+ <map>target/test-classes/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml</map>
+ <dataSource>
+ <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+ <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+ </dataSource>
+ <dbimport>
+ <schema>SCHEMA_01</schema>
+ <useJava7Types>false</useJava7Types>
+ </dbimport>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml
new file mode 100644
index 0000000..08ac7f7
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+ project-version="9">
+ <property name="defaultSchema" value="SCHEMA_01"/>
+</data-map>
+
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml-result
new file mode 100644
index 0000000..687ac07
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.map.xml-result
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+ project-version="9">
+ <property name="defaultSchema" value="SCHEMA_01"/>
+
+ <db-entity name="CHILD" schema="SCHEMA_01">
+ <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
+ <db-attribute name="date" type="DATE" length="10" />
+ <db-attribute name="time" type="TIME" length="8" />
+ <db-attribute name="timestamp" type="TIMESTAMP" length="29" />
+ </db-entity>
+
+ <obj-entity name="Child" className="Child" dbEntityName="CHILD">
+ <obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="date"/>
+ <obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="time"/>
+ <obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="timestamp"/>
+ </obj-entity>
+</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.sql
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.sql b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.sql
new file mode 100644
index 0000000..4a20013
--- /dev/null
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testJava8Types.sql
@@ -0,0 +1,27 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+CREATE SCHEMA schema_01;
+SET SCHEMA schema_01;
+
+CREATE TABLE schema_01.child (
+ "date" DATE,
+ "time" TIME,
+ "timestamp" TIMESTAMP,
+ id INTEGER NOT NULL,
+ PRIMARY KEY (id)
+);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
index 1870f1b..24f69a4 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
@@ -33,6 +33,6 @@
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
index d24df6e..f3e21bf 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
+++ b/maven-plugins/cayenne-maven-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
@@ -38,6 +38,6 @@
<obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>
<obj-attribute name="col3" type="java.math.BigDecimal" db-attribute-path="COL3"/>
<obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
- <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
+ <obj-attribute name="col5" type="java.time.LocalDate" db-attribute-path="COL5"/>
</obj-entity>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
index 068bd7c..d4e745b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
@@ -113,14 +113,13 @@ public class CreateObjEntityAction extends CayenneAction {
// TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
EntityMergeSupport merger = new EntityMergeSupport(new DefaultObjectNameGenerator(NoStemStemmer.getInstance()),
- NamePatternMatcher.EXCLUDE_ALL, true, true);
+ NamePatternMatcher.EXCLUDE_ALL, true, true, false);
merger.addEntityMergeListener(DeleteRuleUpdater.getEntityMergeListener());
merger.synchronizeWithDbEntity(entity);
fireObjEntityEvent(this, mediator, dataMap, entity);
- application.getUndoManager().addEdit(
- new CreateObjEntityUndoableEdit(dataMap, entity));
+ application.getUndoManager().addEdit(new CreateObjEntityUndoableEdit(dataMap, entity));
}
public void createObjEntity(DataMap dataMap, ObjEntity entity) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java
index 2fb85a0..4a62244 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java
@@ -145,6 +145,8 @@ public class DbLoaderContext {
config.getDbLoaderConfig().setFiltersConfig(filtersConfigBuilder.build());
config.setMeaningfulPkTables(dialog.getMeaningfulPk());
config.setNamingStrategy(dialog.getNamingStrategy());
+ config.setUsePrimitives(dialog.isUsePrimitives());
+ config.setUseJava7Types(dialog.isUseJava7Typed());
setConfig(config);
prepareDataMap();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderOptionsDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderOptionsDialog.java
index 192a5aa..f42c359 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderOptionsDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderOptionsDialog.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
import java.util.Collection;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
+import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JTextField;
@@ -41,6 +42,8 @@ public class DbLoaderOptionsDialog extends DbActionOptionsDialog {
private JTextField procNamePatternField;
private JComboBox<String> strategyCombo;
protected String strategy;
+ private JCheckBox usePrimitives;
+ private JCheckBox useJava7Types;
/**
* Creates and initializes new ChooseSchemaDialog.
@@ -70,11 +73,22 @@ public class DbLoaderOptionsDialog extends DbActionOptionsDialog {
strategyCombo = new JComboBox<>();
strategyCombo.setEditable(true);
+ usePrimitives = new JCheckBox();
+ usePrimitives.setSelected(true);
+ usePrimitives.setToolTipText("<html>Use primitive types (e.g. int) or Object types (e.g. java.lang.Integer)</html>");
+
+ useJava7Types = new JCheckBox();
+ useJava7Types.setSelected(false);
+ useJava7Types.setToolTipText("<html>Use <b>java.util.Date</b> for all columns with <i>DATE/TIME/TIMESTAMP</i> types.<br>" +
+ "By default <b>java.time.*</b> types will be used.</html>");
+
builder.append("Table Name Include Pattern:", tableIncludePatternField);
builder.append("Table Name Exclude Pattern:", tableExcludePatternField);
builder.append("Procedure Name Pattern:", procNamePatternField);
builder.append("Naming Strategy:", strategyCombo);
builder.append("Tables with Meaningful PK Pattern:", meaningfulPk);
+ builder.append("Use Java primitive types:", usePrimitives);
+ builder.append("Use old java.util.Date type:", useJava7Types);
}
protected void initFromModel(Collection<String> catalogs, Collection<String> schemas, String currentCatalog, String currentSchema) {
@@ -111,6 +125,14 @@ public class DbLoaderOptionsDialog extends DbActionOptionsDialog {
.getText();
}
+ boolean isUsePrimitives() {
+ return usePrimitives.isSelected();
+ }
+
+ boolean isUseJava7Typed() {
+ return useJava7Types.isSelected();
+ }
+
String getNamingStrategy() {
return (String) strategyCombo.getSelectedItem();
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/99f4f21c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
index e7134d0..2c68fd2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
@@ -70,7 +70,7 @@ public class EntitySyncController extends CayenneController {
}
// TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
- EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, NamePatternMatcher.EXCLUDE_ALL, true, true);
+ EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, NamePatternMatcher.EXCLUDE_ALL, true, true, false);
// see if we need to remove meaningful attributes...
for (ObjEntity entity : entities) {
@@ -116,7 +116,7 @@ public class EntitySyncController extends CayenneController {
view.setVisible(true);
// TODO: Modeler-controlled defaults for all the hardcoded flags here.
- return cancel[0] ? null : new EntityMergeSupport(namingStrategy, NamePatternMatcher.EXCLUDE_ALL, removeFKs[0], true);
+ return cancel[0] ? null : new EntityMergeSupport(namingStrategy, NamePatternMatcher.EXCLUDE_ALL, removeFKs[0], true, false);
}
@Override