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/01/30 11:09:42 UTC

[1/2] cayenne git commit: CAY-2213 cdbimport: new configuration schema

Repository: cayenne
Updated Branches:
  refs/heads/master f78497418 -> 5d7507f64


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges-pom.xml
index 44ffa0c..c1affd7 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges-pom.xml
@@ -29,8 +29,10 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne-pom.xml
index bee8671..418fd59 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne-pom.xml
@@ -29,8 +29,10 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
index bdaf9be..203c001 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
@@ -33,7 +33,7 @@
 		<db-attribute name="PLAYER_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 	</db-entity>
 	<obj-entity name="PickSchedule" className="PickSchedule" dbEntityName="PICK_SCHEDULE">
-		<obj-attribute name="ownerId" type="java.lang.Integer" db-attribute-path="OWNER_ID"/>
+		<obj-attribute name="ownerId" type="int" db-attribute-path="OWNER_ID"/>
 	</obj-entity>
 	<obj-entity name="Player" className="Player" dbEntityName="PLAYER">
 	</obj-entity>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings-pom.xml
index 8abae0d..ea24dc8 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings-pom.xml
@@ -30,14 +30,15 @@
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml
                     </map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+                    <dbimport>
                         <schema>
                             <name>SCHEMA_01</name>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships-pom.xml
index 038044a..8056381 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships-pom.xml
@@ -29,13 +29,14 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-
-                    <reverseEngineering>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
+                    <dbimport>
                         <!-- it doesn't matter true or false, but initial question was about this flag -->
                         <skipRelationshipsLoading>true</skipRelationshipsLoading>
-                    </reverseEngineering>
+                    </dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude-pom.xml
index 20411f4..488a560 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude-pom.xml
@@ -29,15 +29,17 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <schema>
                             <name>SCHEMA_01</name>
                         </schema>
                         <excludeTable>Child</excludeTable>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading-pom.xml
index 5b78108..e8f41ea 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading-pom.xml
@@ -29,12 +29,14 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <skipPrimaryKeyLoading>true</skipPrimaryKeyLoading>
-                    </reverseEngineering>
+                    </dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
index ae701e6..4da960f 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
@@ -36,6 +36,6 @@
     <obj-entity name="B" className="B" dbEntityName="B">
     </obj-entity>
 	<obj-entity name="C" className="com.my.home.C" dbEntityName="C">
-		<obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/>
+		<obj-attribute name="id" type="int" db-attribute-path="ID"/>
     </obj-entity>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading-pom.xml
index 45a76e2..df9d7d5 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading-pom.xml
@@ -29,12 +29,14 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <skipRelationshipsLoading>true</skipRelationshipsLoading>
-                    </reverseEngineering>
+                    </dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering-pom.xml
index 1e07a50..f3409fa 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering-pom.xml
@@ -31,13 +31,17 @@
                     <map>
                         target/test-classes/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml
                     </map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+
                     <adapter>org.apache.cayenne.dba.postgres.PostgresAdapter</adapter>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <catalog>DbImporterMojoTest1</catalog>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes-pom.xml
index 4f7bbb7..2f60ff5 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes-pom.xml
@@ -29,12 +29,14 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <tableType>TABLE</tableType>
-                    </reverseEngineering>
+                    </dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany-pom.xml
index ebc2647..bd43bb0 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany-pom.xml
@@ -29,9 +29,13 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-                    <defaultPackage>org.not.my.home</defaultPackage>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
+					<dbimport>
+                    	<defaultPackage>org.not.my.home</defaultPackage>
+					</dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude-pom.xml
index 1045482..749b309 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude-pom.xml
@@ -29,12 +29,14 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <excludeTable>^V_.*</excludeTable>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
index 3b49289..d24df6e 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
@@ -32,7 +32,7 @@
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
     </db-entity>
     <obj-entity name="Girl" className="Girl" dbEntityName="GIRL">
-        <obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/>
+        <obj-attribute name="id" type="int" db-attribute-path="ID"/>
     </obj-entity>
     <obj-entity name="Person" className="Person" dbEntityName="PERSON">
         <obj-attribute name="col2" type="java.lang.String" db-attribute-path="COL2"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
index 80a3a92..24c065a 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
@@ -28,7 +28,9 @@
 			<plugin>
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
-					<meaningfulPkTables>x,b*</meaningfulPkTables>
+					<dbimport>
+						<meaningfulPkTables>x,b*</meaningfulPkTables>
+					</dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
index 71d8d56..73e65c5 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
@@ -28,7 +28,9 @@
 			<plugin>
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
-					<meaningfulPkTables>*</meaningfulPkTables>
+					<dbimport>
+						<meaningfulPkTables>*</meaningfulPkTables>
+					</dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 4edb066..43239e5 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -31,12 +31,12 @@
 			<dependency>
 				<groupId>org.apache.maven</groupId>
 				<artifactId>maven-plugin-api</artifactId>
-				<version>3.2.3</version>
+				<version>3.3.9</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.maven</groupId>
 				<artifactId>maven-artifact</artifactId>
-				<version>3.2.3</version>
+				<version>3.3.9</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.maven</groupId>
@@ -46,22 +46,27 @@
 			<dependency>
 				<groupId>org.apache.maven.plugin-tools</groupId>
 				<artifactId>maven-plugin-tools-api</artifactId>
-				<version>3.3</version>
+				<version>3.5</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.maven.plugin-tools</groupId>
+				<artifactId>maven-plugin-annotations</artifactId>
+				<version>3.5</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.maven.plugin-testing</groupId>
 				<artifactId>maven-plugin-testing-harness</artifactId>
-				<version>3.2.0</version>
+				<version>3.3.0</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.maven</groupId>
 				<artifactId>maven-core</artifactId>
-				<version>3.2.3</version>
+				<version>3.3.9</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.maven</groupId>
 				<artifactId>maven-compat</artifactId>
-				<version>3.2.3</version>
+				<version>3.3.9</version>
 			</dependency>
 			<dependency>
 				<groupId>org.codehaus.plexus</groupId>


[2/2] cayenne git commit: CAY-2213 cdbimport: new configuration schema

Posted by nt...@apache.org.
CAY-2213 cdbimport: new configuration schema


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

Branch: refs/heads/master
Commit: 5d7507f640627aa058fe2e2756296eaf459e3fdf
Parents: f784974
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Jan 30 14:09:29 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Jan 30 14:09:29 2017 +0300

----------------------------------------------------------------------
 .../reverse/filters/FiltersConfigBuilder.java   |  26 +-
 .../org/apache/cayenne/dbimport/Catalog.java    |   6 +-
 .../DefaultReverseEngineeringLoader.java        |   1 +
 .../DefaultReverseEngineeringWriter.java        |   3 +-
 .../cayenne/dbimport/FilterContainer.java       |  25 +-
 .../apache/cayenne/dbimport/IncludeTable.java   |  10 +-
 .../apache/cayenne/dbimport/PatternParam.java   |  17 +-
 .../cayenne/dbimport/ReverseEngineering.java    | 147 +++++++----
 .../dbimport/ReverseEngineeringLoader.java      |   1 +
 .../ReverseEngineeringLoaderException.java      |   1 +
 .../dbimport/ReverseEngineeringWriter.java      |   1 +
 .../org/apache/cayenne/dbimport/Schema.java     |   6 -
 .../DefaultReverseEngineeringWriterTest.java    |   8 +-
 .../tools/DbImportConfigurationValidator.java   |  22 +-
 plugins/maven-cayenne-plugin/pom.xml            |   5 +
 .../cayenne/tools/CayenneGeneratorMojo.java     |  38 +--
 .../cayenne/tools/DbImportDataSourceConfig.java |  62 +++++
 .../apache/cayenne/tools/DbImporterMojo.java    | 248 +++++++++++--------
 .../cayenne/tools/DbImporterMojoTest.java       |  24 +-
 .../org/apache/cayenne/tools/config/pom-01.xml  |   4 +-
 .../tools/config/pom-catalog-and-schema.xml     |   4 +-
 .../apache/cayenne/tools/config/pom-catalog.xml |   4 +-
 .../tools/config/pom-default-package.xml        |   4 +-
 .../apache/cayenne/tools/config/pom-flat.xml    |   4 +-
 .../cayenne/tools/config/pom-schema-2.xml       |   4 +-
 .../apache/cayenne/tools/config/pom-schema.xml  |   4 +-
 .../config/pom-skip-primary-key-loading.xml     |   4 +-
 .../config/pom-skip-relationships-loading.xml   |   4 +-
 .../cayenne/tools/config/pom-table-types.xml    |   4 +-
 .../dbimport/testComplexChangeOrder-pom.xml     |  10 +-
 .../testCustomObjectLayerSettings-pom.xml       |  20 +-
 .../dbimport/testDbAttributeChange-pom.xml      |  10 +-
 .../tools/dbimport/testDefaultPackage-pom.xml   |  13 +-
 .../dbimport/testFilteringWithSchema-pom.xml    |  10 +-
 .../dbimport/testFkAttributeRename-pom.xml      |  11 +-
 ...tFlattensManyToManyWithRecursiveLink-pom.xml |  10 +-
 .../dbimport/testForceDataMapSchema-pom.xml     |  18 +-
 .../testImportAddTableAndColumn-pom.xml         |   6 +-
 .../tools/dbimport/testImportNewDataMap-pom.xml |   6 +-
 .../dbimport/testImportWithoutChanges-pom.xml   |   6 +-
 .../cayenne/tools/dbimport/testOneToOne-pom.xml |   6 +-
 .../tools/dbimport/testOneToOne.map.xml-result  |   2 +-
 .../testPreserveCustomObjMappings-pom.xml       |  11 +-
 .../dbimport/testPreserveRelationships-pom.xml  |  11 +-
 .../dbimport/testSchemasAndTableExclude-pom.xml |  10 +-
 .../dbimport/testSkipPrimaryKeyLoading-pom.xml  |  10 +-
 .../testSkipPrimaryKeyLoading.map.xml-result    |   2 +-
 .../testSkipRelationshipsLoading-pom.xml        |  10 +-
 ...SupportsCatalogsOnReverseEngineering-pom.xml |  12 +-
 .../tools/dbimport/testTableTypes-pom.xml       |  10 +-
 .../dbimport/testUnFlattensManyToMany-pom.xml   |  10 +-
 .../tools/dbimport/testViewsExclude-pom.xml     |  10 +-
 .../dbimport/testViewsExclude.map.xml-result    |   2 +-
 .../apache/cayenne/tools/dbimporter-pom2.xml    |   4 +-
 .../apache/cayenne/tools/dbimporter-pom3.xml    |   4 +-
 plugins/pom.xml                                 |  17 +-
 56 files changed, 555 insertions(+), 387 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilder.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilder.java
index ae6b1ee..18af876 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilder.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilder.java
@@ -78,7 +78,7 @@ public final class FiltersConfigBuilder {
     }
 
     private SortedSet<Pattern> transformExcludeTable(Collection<ExcludeTable> excludeTables) {
-        SortedSet<Pattern> res = new TreeSet<Pattern>(PatternFilter.PATTERN_COMPARATOR);
+        SortedSet<Pattern> res = new TreeSet<>(PatternFilter.PATTERN_COMPARATOR);
         for (ExcludeTable exclude : excludeTables) {
             res.add(PatternFilter.pattern(exclude.getPattern()));
         }
@@ -86,7 +86,7 @@ public final class FiltersConfigBuilder {
     }
 
     private SortedSet<IncludeTableFilter> transformIncludeTable(Collection<IncludeTable> includeTables) {
-        SortedSet<IncludeTableFilter> includeTableFilters = new TreeSet<IncludeTableFilter>();
+        SortedSet<IncludeTableFilter> includeTableFilters = new TreeSet<>();
         for (IncludeTable includeTable : includeTables) {
             includeTableFilters.add(new IncludeTableFilter(includeTable.getPattern(),
                     transform(includeTable.getIncludeColumns(), includeTable.getExcludeColumns())));
@@ -266,18 +266,16 @@ public final class FiltersConfigBuilder {
                 schema.setIncludeColumns(null);
                 schema.setExcludeColumns(null);
 
-                if (schema != null) {
-                    for (IncludeTable includeTable : schema.getIncludeTables()) {
-                        if (engIncludeColumns != null) {
-                            includeTable.getIncludeColumns().addAll(engIncludeColumns);
-                            includeTable.getIncludeColumns().addAll(catalogIncludeColumns);
-                            includeTable.getIncludeColumns().addAll(schemaIncludeColumns);
-                        }
-                        if (engExcludeColumns != null) {
-                            includeTable.getExcludeColumns().addAll(engExcludeColumns);
-                            includeTable.getExcludeColumns().addAll(catalogExcludeColumns);
-                            includeTable.getExcludeColumns().addAll(schemaExcludeColumns);
-                        }
+                for (IncludeTable includeTable : schema.getIncludeTables()) {
+                    if (engIncludeColumns != null) {
+                        includeTable.getIncludeColumns().addAll(engIncludeColumns);
+                        includeTable.getIncludeColumns().addAll(catalogIncludeColumns);
+                        includeTable.getIncludeColumns().addAll(schemaIncludeColumns);
+                    }
+                    if (engExcludeColumns != null) {
+                        includeTable.getExcludeColumns().addAll(engExcludeColumns);
+                        includeTable.getExcludeColumns().addAll(catalogExcludeColumns);
+                        includeTable.getExcludeColumns().addAll(schemaExcludeColumns);
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Catalog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Catalog.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Catalog.java
index 99cf4cc..a6fb4de 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Catalog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Catalog.java
@@ -18,21 +18,17 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-import javax.xml.bind.annotation.*;
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
  * @since 4.0.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
 public class Catalog extends FilterContainer {
 
-    @XmlAttribute(name = "name")
     private String name;
 
-    @XmlElement(name = "schema")
-    private Collection<Schema> schemas = new LinkedList<Schema>();
+    private Collection<Schema> schemas = new LinkedList<>();
 
     public Catalog() {
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringLoader.java
index cb63ff9..ce3154e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringLoader.java
@@ -37,6 +37,7 @@ import java.util.List;
 
 /**
  * @since 4.0.
+ * @deprecated
  */
 public class DefaultReverseEngineeringLoader implements ReverseEngineeringLoader {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriter.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriter.java
index ce1d583..b9fc745 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriter.java
@@ -31,6 +31,7 @@ import java.io.Writer;
 
 /**
  * @since 4.0
+ * @deprecated
  */
 public class DefaultReverseEngineeringWriter implements ReverseEngineeringWriter {
     private final static Log LOGGER = LogFactory.getLog(DefaultReverseEngineeringWriter.class);
@@ -49,7 +50,7 @@ public class DefaultReverseEngineeringWriter implements ReverseEngineeringWriter
             marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
             marshaller.marshal(reverseEngineering, writer);
             writer.close();
-            return reverseEngineering.getConfigurationSource();
+            return null;//reverseEngineering.getConfigurationSource();
         } catch (JAXBException | IOException e) {
             LOGGER.error(e.getMessage(), e);
             throw new CayenneRuntimeException(e);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/FilterContainer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/FilterContainer.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/FilterContainer.java
index 5a42d3b..ee7bf36 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/FilterContainer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/FilterContainer.java
@@ -18,35 +18,25 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
  * @since 4.0.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
 public abstract class FilterContainer {
 
-    @XmlElement(name = "includeTable")
-    private Collection<IncludeTable> includeTables = new LinkedList<IncludeTable>();
+    private Collection<IncludeTable> includeTables = new LinkedList<>();
 
-    @XmlElement(name = "excludeTable")
-    private Collection<ExcludeTable> excludeTables = new LinkedList<ExcludeTable>();
+    private Collection<ExcludeTable> excludeTables = new LinkedList<>();
 
-    @XmlElement(name = "includeColumn")
-    private Collection<IncludeColumn> includeColumns = new LinkedList<IncludeColumn>();
+    private Collection<IncludeColumn> includeColumns = new LinkedList<>();
 
-    @XmlElement(name = "excludeColumn")
-    private Collection<ExcludeColumn> excludeColumns = new LinkedList<ExcludeColumn>();
+    private Collection<ExcludeColumn> excludeColumns = new LinkedList<>();
 
-    @XmlElement(name = "includeProcedure")
-    private Collection<IncludeProcedure> includeProcedures = new LinkedList<IncludeProcedure>();
+    private Collection<IncludeProcedure> includeProcedures = new LinkedList<>();
 
-    @XmlElement(name = "excludeProcedure")
-    private Collection<ExcludeProcedure> excludeProcedures = new LinkedList<ExcludeProcedure>();
+    private Collection<ExcludeProcedure> excludeProcedures = new LinkedList<>();
 
     public Collection<IncludeTable> getIncludeTables() {
         return includeTables;
@@ -96,7 +86,6 @@ public abstract class FilterContainer {
         this.excludeProcedures = excludeProcedures;
     }
 
-
     public void addIncludeColumn(IncludeColumn includeColumn) {
         this.includeColumns.add(includeColumn);
     }
@@ -154,6 +143,4 @@ public abstract class FilterContainer {
             }
         }
     }
-
-
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/IncludeTable.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/IncludeTable.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/IncludeTable.java
index c25701f..d4ed08a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/IncludeTable.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/IncludeTable.java
@@ -18,23 +18,17 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
  * @since 4.0.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
 public class IncludeTable extends PatternParam {
 
-    @XmlElement(name = "includeColumn")
-    private Collection<IncludeColumn> includeColumns = new LinkedList<IncludeColumn>();
+    private Collection<IncludeColumn> includeColumns = new LinkedList<>();
 
-    @XmlElement(name = "excludeColumn")
-    private Collection<ExcludeColumn> excludeColumns = new LinkedList<ExcludeColumn>();
+    private Collection<ExcludeColumn> excludeColumns = new LinkedList<>();
 
     public IncludeTable() {
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/PatternParam.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/PatternParam.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/PatternParam.java
index 9573232..162c718 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/PatternParam.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/PatternParam.java
@@ -18,17 +18,11 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-
 /**
  * @since 4.0.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
 public class PatternParam {
 
-    @XmlAttribute(name = "pattern")
     private String pattern;
 
     public PatternParam() {
@@ -47,9 +41,7 @@ public class PatternParam {
     }
 
     /**
-     * used my maven
-     *
-     * @param pattern
+     * Used by Maven plugin
      */
     public void set(String pattern) {
         setPattern(pattern);
@@ -57,9 +49,7 @@ public class PatternParam {
 
 
     /**
-     * used my ant
-     *
-     * @param pattern
+     * Used by Ant task
      */
     public void addText(String pattern) {
         if (pattern.trim().isEmpty()) {
@@ -69,6 +59,9 @@ public class PatternParam {
         setPattern(pattern);
     }
 
+    /**
+     * used by Ant?
+     */
     public void addConfiguredPattern(AntNestedElement pattern) {
         set(pattern.getName());
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
index 5781561..7d66ceb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
@@ -18,46 +18,99 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-
-import org.apache.cayenne.resource.Resource;
-
-import javax.xml.bind.annotation.*;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
- * @since 4.0.
+ * @since 4.0
  */
-@XmlRootElement(name = "reverseEngineering")
-@XmlAccessorType(XmlAccessType.FIELD)
 public class ReverseEngineering extends FilterContainer implements Serializable {
 
-    @XmlTransient
-    protected Resource configurationSource;
-    @XmlTransient
-    private String name;
-
     private Boolean skipRelationshipsLoading;
+
     private Boolean skipPrimaryKeyLoading;
 
     /*
-     * Typical types are "TABLE",
-     * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
-     * "LOCAL TEMPORARY", "ALIAS", "SYNONYM"., etc.
+     * <p>
+     * A default package for ObjEntity Java classes.
+     * </p>
+     * <p>
+     * If not specified, and the existing DataMap already has the default package,
+     * the existing package will be used.
+     * </p>
      */
-    @XmlElement(name = "tableType")
-    private Collection<String> tableTypes = new LinkedList<String>();
+    private String defaultPackage;
 
-    @XmlElement(name = "catalog")
-    private Collection<Catalog> catalogs = new LinkedList<Catalog>();
+    /**
+     * <p>
+     * Automatically tagging each DbEntity with the actual DB catalog/schema (default behavior) may sometimes be undesirable.
+     * If this is the case then setting forceDataMapCatalog to true will set DbEntity catalog to one in the DataMap.
+     * </p>
+     * <p>
+     * Default value is <b>false</b>.
+     * </p>
+     */
+    private boolean forceDataMapCatalog;
 
-    @XmlElement(name = "schema")
-    private Collection<Schema> schemas = new LinkedList<Schema>();
+    /**
+     * <p>
+     * Automatically tagging each DbEntity with the actual DB catalog/schema (default behavior) may sometimes be undesirable.
+     * If this is the case then setting forceDataMapSchema to true will set DbEntity schema to one in the DataMap.
+     * </p>
+     * <p>
+     * Default value is <b>false</b>.
+     * </p>
+     */
+    private boolean forceDataMapSchema;
 
-    public ReverseEngineering(String name) {
-        this.name = name;
-    }
+    /**
+     * <p>
+     * A comma-separated list of Perl5 patterns that defines which imported tables should have their primary key columns
+     * mapped as ObjAttributes.
+     * </p>
+     * <p><b>"*"</b> would indicate all tables.</p>
+     */
+    private String meaningfulPkTables;
+
+    /**
+     * <p>
+     * Object layer naming generator implementation.
+     * Should be fully qualified Java class name implementing "org.apache.cayenne.dbsync.naming.ObjectNameGenerator".
+     * </p>
+     * <p>
+     * The default is "org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator".
+     * </p>
+     */
+    private String namingStrategy = "org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator";
+
+    /**
+     * A regular expression that should match the part of the table name to strip before generating DB names.
+     */
+    private String stripFromTableNames = "";
+
+    /**
+     * <p>If true, would use primitives instead of numeric and boolean classes.</p>
+     * <p>Default is <b>"true"</b>, i.e. primitives will be used.</p>
+     */
+    private boolean usePrimitives = true;
+
+    /**
+     * Typical types are: <ul>
+     * <li> "TABLE"
+     * <li> "VIEW"
+     * <li> "SYSTEM TABLE"
+     * <li> "GLOBAL TEMPORARY",
+     * <li> "LOCAL TEMPORARY"
+     * <li> "ALIAS"
+     * <li> "SYNONYM"
+     * </ul>
+     */
+    private Collection<String> tableTypes = new LinkedList<>();
+
+    private Collection<Catalog> catalogs = new LinkedList<>();
+
+    private Collection<Schema> schemas = new LinkedList<>();
 
     public ReverseEngineering() {
     }
@@ -78,14 +131,6 @@ public class ReverseEngineering extends FilterContainer implements Serializable
         this.skipPrimaryKeyLoading = skipPrimaryKeyLoading;
     }
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
     public Collection<Catalog> getCatalogs() {
         return catalogs;
     }
@@ -150,26 +195,40 @@ public class ReverseEngineering extends FilterContainer implements Serializable
         }
 
         if (skipRelationshipsLoading != null && skipRelationshipsLoading) {
-            res.append("\n").append("        Skip Relationships Loading");
+            res.append("\n        Skip Relationships Loading");
         }
         if (skipPrimaryKeyLoading != null && skipPrimaryKeyLoading) {
-            res.append("\n").append("        Skip PrimaryKey Loading");
+            res.append("\n        Skip PrimaryKey Loading");
         }
 
         return super.toString(res, "  ").toString();
     }
 
-    /**
-     * @since 4.0
-     */
-    public Resource getConfigurationSource() {
-        return configurationSource;
+    public String getDefaultPackage() {
+        return defaultPackage;
     }
 
-    /**
-     * @since 4.0
-     */
-    public void setConfigurationSource(Resource configurationSource) {
-        this.configurationSource = configurationSource;
+    public boolean isForceDataMapCatalog() {
+        return forceDataMapCatalog;
+    }
+
+    public boolean isForceDataMapSchema() {
+        return forceDataMapSchema;
+    }
+
+    public String getMeaningfulPkTables() {
+        return meaningfulPkTables;
+    }
+
+    public String getNamingStrategy() {
+        return namingStrategy;
+    }
+
+    public String getStripFromTableNames() {
+        return stripFromTableNames;
+    }
+
+    public boolean isUsePrimitives() {
+        return usePrimitives;
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoader.java
index 83d0f45..291594d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoader.java
@@ -28,6 +28,7 @@ import java.net.URL;
 
 /**
  * @since 4.0.
+ * @deprecated
  */
 public interface ReverseEngineeringLoader {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoaderException.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoaderException.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoaderException.java
index 2becf65..92c3801 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoaderException.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringLoaderException.java
@@ -25,6 +25,7 @@ import javax.xml.parsers.ParserConfigurationException;
 
 /**
  * @since 4.0
+ * @deprecated
  */
 public class ReverseEngineeringLoaderException extends CayenneRuntimeException {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringWriter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringWriter.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringWriter.java
index 41b80f6..3022fd3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringWriter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineeringWriter.java
@@ -25,6 +25,7 @@ import java.io.Writer;
 
 /**
  * @since 4.0
+ * @deprecated
  */
 public interface ReverseEngineeringWriter {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Schema.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Schema.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Schema.java
index 8667891..e572433 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Schema.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/Schema.java
@@ -18,17 +18,11 @@
  ****************************************************************/
 package org.apache.cayenne.dbimport;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-
 /**
  * @since 4.0.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
 public class Schema extends FilterContainer {
 
-    @XmlAttribute(name = "name")
     private String name;
 
     public Schema() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java b/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java
index 68a214d..7d46c4a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java
@@ -23,6 +23,7 @@ package org.apache.cayenne.dbimport;
 import org.apache.cayenne.resource.Resource;
 import org.apache.cayenne.resource.URLResource;
 import org.custommonkey.xmlunit.Diff;
+import org.junit.Ignore;
 import org.junit.Test;
 import java.io.*;
 import java.net.MalformedURLException;
@@ -33,6 +34,7 @@ import static org.junit.Assert.assertTrue;
 
 public class DefaultReverseEngineeringWriterTest {
 
+    @Ignore("reverseEngineering.xml is depreceted")
     @Test
     public void testWriteReverseEngineering() throws Exception {
         ReverseEngineeringWriter engineering = new DefaultReverseEngineeringWriter();
@@ -70,9 +72,9 @@ public class DefaultReverseEngineeringWriterTest {
         String decodedURL = URLDecoder.decode(url.getPath(), "UTF-8");
         Writer printWriter = new PrintWriter(decodedURL);
 
-        reverseEngineering.setConfigurationSource(new URLResource(url));
-        Resource reverseEngineeringResource = engineering.write(reverseEngineering, printWriter);
-        assertReverseEngineering(reverseEngineeringResource);
+//        reverseEngineering.setConfigurationSource(new URLResource(url));
+//        Resource reverseEngineeringResource = engineering.write(reverseEngineering, printWriter);
+//        assertReverseEngineering(reverseEngineeringResource);
     }
 
     public void assertReverseEngineering(Resource resource) throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImportConfigurationValidator.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImportConfigurationValidator.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImportConfigurationValidator.java
index 888fca2..8a92705 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImportConfigurationValidator.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImportConfigurationValidator.java
@@ -43,36 +43,26 @@ class DbImportConfigurationValidator implements Cloneable {
 
     void validate() throws Exception {
         DataNodeDescriptor dataNodeDescriptor = config.createDataNodeDescriptor();
-        DataSource dataSource;
         DbAdapter adapter;
 
         try {
-            dataSource = injector.getInstance(DataSourceFactory.class)
-                    .getDataSource(dataNodeDescriptor);
-            adapter = injector.getInstance(DbAdapterFactory.class)
-                    .createAdapter(dataNodeDescriptor, dataSource);
+            DataSource dataSource = injector.getInstance(DataSourceFactory.class).getDataSource(dataNodeDescriptor);
+            adapter = injector.getInstance(DbAdapterFactory.class).createAdapter(dataNodeDescriptor, dataSource);
         } catch (Exception ex) {
-            throw new Exception("Error creating DataSource or DbAdapter " +
-                    "for DataNodeDescriptor (" + dataNodeDescriptor + ")", ex);
+            throw new Exception("Error creating DataSource or DbAdapter for DataNodeDescriptor (" + dataNodeDescriptor + ")", ex);
         }
 
-        if (adapter != null
-                && !adapter.supportsCatalogsOnReverseEngineering()
-                && !isReverseEngineeringCatalogsEmpty()) {
+        if (adapter != null && !adapter.supportsCatalogsOnReverseEngineering() && !isReverseEngineeringCatalogsEmpty()) {
             String message = "Your database does not support catalogs on reverse engineering. " +
                     "It allows to connect to only one at the moment. " +
-                    "Please don't note catalogs as param.";
+                    "Please don't note catalogs in <dbimport> configuration.";
             throw new Exception(message);
         }
     }
 
     private boolean isReverseEngineeringCatalogsEmpty() {
         Collection<Catalog> catalogs = reverseEngineering.getCatalogs();
-        if (catalogs == null) {
-            return true;
-        }
-
-        if (catalogs.isEmpty()) {
+        if (catalogs == null || catalogs.isEmpty()) {
             return true;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/pom.xml b/plugins/maven-cayenne-plugin/pom.xml
index 3c0a5f2..bebdcf4 100644
--- a/plugins/maven-cayenne-plugin/pom.xml
+++ b/plugins/maven-cayenne-plugin/pom.xml
@@ -45,6 +45,11 @@
 		</dependency>
 
 		<dependency>
+			<groupId>org.apache.maven.plugin-tools</groupId>
+			<artifactId>maven-plugin-annotations</artifactId>
+		</dependency>
+
+		<dependency>
 			<groupId>org.apache.maven</groupId>
 			<artifactId>maven-compat</artifactId>
 		</dependency>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/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 4ef5013..f2bd4ff 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
@@ -36,7 +36,7 @@ import java.io.FilenameFilter;
  * adapter to DefaultClassGenerator class.
  * 
  * @since 3.0
- * 
+ *
  * @phase generate-sources
  * @goal cgen
  */
@@ -45,7 +45,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
     public static final File[] NO_FILES = new File[0];
     /**
 	 * Path to additional DataMap XML files to use for class generation.
-	 * 
+	 *
 	 * @parameter additionalMaps="additionalMaps"
 	 */
 	private File additionalMaps;
@@ -53,14 +53,14 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * Whether we are generating classes for the client tier in a Remote Object
 	 * Persistence application. Default is <code>false</code>.
-	 * 
+	 *
 	 * @parameter client="client" default-value="false"
 	 */
 	private boolean client;
 
 	/**
 	 * Destination directory for Java classes (ignoring their package names).
-	 * 
+	 *
 	 * @parameter destDir="destDir" default-value="${project.build.sourceDirectory}"
 	 */
 	private File destDir;
@@ -71,7 +71,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * build. Standard encodings supported by Java on all platforms are
 	 * US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16. See Sun Java
 	 * Docs for java.nio.charset.Charset for more information.
-	 * 
+	 *
 	 * @parameter encoding="encoding"
 	 */
 	private String encoding;
@@ -79,7 +79,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * Entities (expressed as a perl5 regex) to exclude from template
 	 * generation. (Default is to include all entities in the DataMap).
-	 * 
+	 *
 	 * @parameter excludeEntities="excludeEntities"
 	 */
 	private String excludeEntities;
@@ -87,7 +87,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * Entities (expressed as a perl5 regex) to include in template generation.
 	 * (Default is to include all entities in the DataMap).
-	 * 
+	 *
 	 * @parameter includeEntities="includeEntities"
 	 */
 	private String includeEntities;
@@ -96,14 +96,14 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * If set to <code>true</code>, will generate subclass/superclass pairs,
 	 * with all generated code included in superclass (default is
 	 * <code>true</code>).
-	 * 
+	 *
 	 * @parameter makePairs="makePairs" default-value="true"
 	 */
 	private boolean makePairs;
 
 	/**
 	 * DataMap XML file to use as a base for class generation.
-	 * 
+	 *
 	 * @parameter map="map"
 	 * @required
 	 */
@@ -115,14 +115,14 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * iteration per datamap (This is always one iteration since cgen currently
 	 * supports specifying one-and-only-one datamap). (Default is
 	 * &quot;entity&quot;)
-	 * 
+	 *
 	 * @parameter mode="mode" default-value="entity"
 	 */
 	private String mode;
 
 	/**
 	 * Name of file for generated output. (Default is &quot;*.java&quot;)
-	 * 
+	 *
 	 * @parameter outputPattern="outputPattern" default-value="*.java"
 	 */
 	private String outputPattern;
@@ -130,7 +130,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * If set to <code>true</code>, will overwrite older versions of generated
 	 * classes. Ignored unless makepairs is set to <code>false</code>.
-	 * 
+	 *
 	 * @parameter overwrite="overwrite" default-value="false"
 	 */
 	private boolean overwrite;
@@ -142,8 +142,8 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * having superclass in a different package would only make sense when
 	 * <code>usepkgpath</code> is set to <code>true</code>. Otherwise classes
 	 * from different packages will end up in the same directory.
-	 * 
-	 * @parameter superPkg="superPkg" 
+	 *
+	 * @parameter superPkg="superPkg"
 	 */
 	private String superPkg;
 
@@ -151,7 +151,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * Location of Velocity template file for Entity superclass generation.
 	 * Ignored unless <code>makepairs</code> set to <code>true</code>. If
 	 * omitted, default template is used.
-	 * 
+	 *
 	 * @parameter superTemplate="superTemplate"
 	 */
 	private String superTemplate;
@@ -159,7 +159,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * Location of Velocity template file for Entity class generation. If
 	 * omitted, default template is used.
-	 * 
+	 *
 	 * @parameter template="template"
 	 */
 	private String template;
@@ -168,7 +168,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * Location of Velocity template file for Embeddable superclass generation.
 	 * Ignored unless <code>makepairs</code> set to <code>true</code>. If
 	 * omitted, default template is used.
-	 * 
+	 *
 	 * @parameter embeddableSuperTemplate="embeddableSuperTemplate"
 	 */
 	private String embeddableSuperTemplate;
@@ -176,7 +176,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	/**
 	 * Location of Velocity template file for Embeddable class generation. If
 	 * omitted, default template is used.
-	 * 
+	 *
 	 * @parameter embeddableTemplate="embeddableTemplate"
 	 */
 	private String embeddableTemplate;
@@ -186,7 +186,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
 	 * in "destDir" corresponding to the class package structure, if set to
 	 * <code>false</code>, classes will be generated in &quot;destDir&quot;
 	 * ignoring their package.
-	 * 
+	 *
 	 * @parameter usePkgPath="usePkgPath" default-value="true"
 	 */
 	private boolean usePkgPath;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImportDataSourceConfig.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImportDataSourceConfig.java b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImportDataSourceConfig.java
new file mode 100644
index 0000000..8fa4b56
--- /dev/null
+++ b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImportDataSourceConfig.java
@@ -0,0 +1,62 @@
+/*****************************************************************
+ *   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.
+ ****************************************************************/
+
+package org.apache.cayenne.tools;
+
+/**
+ * @since 4.0
+ */
+public class DbImportDataSourceConfig {
+
+    /**
+     * A class of JDBC driver to use for the target database.
+     */
+    private String driver;
+
+    /**
+     * JDBC connection URL of a target database.
+     */
+    private String url;
+
+    /**
+     * Database user name.
+     */
+    private String username;
+
+    /**
+     * Database user password.
+     */
+    private String password;
+
+    public String getDriver() {
+        return driver;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
index 469798b..088bb52 100644
--- a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
+++ b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
@@ -32,127 +32,49 @@ import org.apache.commons.logging.Log;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 
 import java.io.File;
 
 /**
  * Maven mojo to reverse engineer datamap from DB.
  *
- * @phase generate-sources
- * @goal cdbimport
  * @since 3.0
  */
+@Mojo(name = "cdbimport", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
 public class DbImporterMojo extends AbstractMojo {
 
     /**
      * Java class implementing org.apache.cayenne.dba.DbAdapter. This attribute
      * is optional, the default is AutoAdapter, i.e. Cayenne would try to guess
      * the DB type.
-     *
-     * @parameter adapter="adapter"
-     * default-value="org.apache.cayenne.dba.AutoAdapter"
      */
+    @Parameter(defaultValue = "org.apache.cayenne.dba.AutoAdapter")
     private String adapter;
 
     /**
-     * A default package for ObjEntity Java classes. If not specified, and the
-     * existing DataMap already has the default package, the existing package
-     * will be used.
+     * Connection properties.
      *
-     * @parameter defaultPackage="defaultPackage"
+     * @see DbImportDataSourceConfig
      * @since 4.0
      */
-    private String defaultPackage;
-
-    /**
-     * A class of JDBC driver to use for the target database.
-     *
-     * @parameter driver="driver"
-     * @required
-     */
-    private String driver;
-
-    /**
-     * @parameter forceDataMapCatalog="forceDataMapCatalog"  default-value="false"
-     */
-    private boolean forceDataMapCatalog;
-
-    /**
-     * @parameter forceDataMapSchema="forceDataMapSchema"  default-value="false"
-     */
-    private boolean forceDataMapSchema;
+    @Parameter(required = true)
+    private DbImportDataSourceConfig dataSource = new DbImportDataSourceConfig();
 
     /**
      * DataMap XML file to use as a base for DB importing.
-     *
-     * @parameter map="map"
-     * @required
      */
+    @Parameter(required = true)
     private File map;
 
     /**
-     * A comma-separated list of Perl5 patterns that defines which imported tables should have their primary key columns
-     * mapped as ObjAttributes. "*" would indicate all tables.
-     *
-     * @parameter meaningfulPkTables="meaningfulPkTables"
-     * @since 4.0
-     */
-    private String meaningfulPkTables;
-
-    /**
-     * Object layer naming generator implementation. Should be fully qualified Java class name implementing
-     * "org.apache.cayenne.dbsync.naming.ObjectNameGenerator". The default is
-     * "org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator".
-     *
-     * @parameter namingStrategy="namingStrategy"
-     * default-value="org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator"
-     */
-    private String namingStrategy;
-
-    /**
-     * Database user password.
-     *
-     * @parameter password="password"
-     */
-    private String password;
-
-    /**
      * An object that contains reverse engineering rules.
-     *
-     * @parameter reverseEngineering="reverseEngineering"
      */
+    @Parameter(property = "dbimport", alias = "dbImport")
     private ReverseEngineering reverseEngineering = new ReverseEngineering();
 
-    /**
-     * A regular expression that should match the part of the table name to strip before generating DB names.
-     *
-     * @parameter stripFromTableNames="stripFromTableNames"
-     * default-value=""
-     */
-    private String stripFromTableNames;
-
-    /**
-     * JDBC connection URL of a target database.
-     *
-     * @parameter url="url"
-     * @required
-     */
-    private String url;
-
-    /**
-     * If true, would use primitives instead of numeric and boolean classes.
-     *
-     * @parameter usePrimitives="usePrimitives" default-value="true"
-     */
-    private boolean usePrimitives;
-
-    /**
-     * Database user name.
-     *
-     * @parameter username="username"
-     */
-    private String username;
-
     public void execute() throws MojoExecutionException, MojoFailureException {
 
         Log logger = new MavenLogger(this);
@@ -189,23 +111,23 @@ public class DbImporterMojo extends AbstractMojo {
 
         DbImportConfiguration config = new DbImportConfiguration();
         config.setAdapter(adapter);
-        config.setDefaultPackage(defaultPackage);
-        config.setDriver(driver);
+        config.setDefaultPackage(reverseEngineering.getDefaultPackage());
+        config.setDriver(dataSource.getDriver());
         config.setFiltersConfig(new FiltersConfigBuilder(reverseEngineering).build());
-        config.setForceDataMapCatalog(forceDataMapCatalog);
-        config.setForceDataMapSchema(forceDataMapSchema);
+        config.setForceDataMapCatalog(reverseEngineering.isForceDataMapCatalog());
+        config.setForceDataMapSchema(reverseEngineering.isForceDataMapSchema());
         config.setLogger(logger);
-        config.setMeaningfulPkTables(meaningfulPkTables);
-        config.setNamingStrategy(namingStrategy);
-        config.setPassword(password);
+        config.setMeaningfulPkTables(reverseEngineering.getMeaningfulPkTables());
+        config.setNamingStrategy(reverseEngineering.getNamingStrategy());
+        config.setPassword(dataSource.getPassword());
         config.setSkipRelationshipsLoading(reverseEngineering.getSkipRelationshipsLoading());
         config.setSkipPrimaryKeyLoading(reverseEngineering.getSkipPrimaryKeyLoading());
-        config.setStripFromTableNames(stripFromTableNames);
+        config.setStripFromTableNames(reverseEngineering.getStripFromTableNames());
         config.setTableTypes(reverseEngineering.getTableTypes());
         config.setTargetDataMap(map);
-        config.setUrl(url);
-        config.setUsername(username);
-        config.setUsePrimitives(usePrimitives);
+        config.setUrl(dataSource.getUrl());
+        config.setUsername(dataSource.getUsername());
+        config.setUsePrimitives(reverseEngineering.isUsePrimitives());
 
         return config;
     }
@@ -218,24 +140,132 @@ public class DbImporterMojo extends AbstractMojo {
         this.map = map;
     }
 
-    public String getDriver() {
-        return driver;
+    /**
+     * This setter is used by Maven
+     */
+    public void setDbimport(ReverseEngineering reverseEngineering) {
+        this.reverseEngineering = reverseEngineering;
     }
 
-    public void setDriver(String driver) {
-        this.driver = driver;
+    /**
+     * This setter is used by Maven
+     */
+    public void setDbImport(ReverseEngineering reverseEngineering) {
+        this.reverseEngineering = reverseEngineering;
     }
 
-    public String getUrl() {
-        return url;
+    public ReverseEngineering getReverseEngineering() {
+        return reverseEngineering;
     }
 
+    // \u2b07\u2b07\u2b07 All following setters should be removed in 4.0.BETA \u2b07\u2b07\u2b07 //
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
     public void setUrl(String url) {
-        this.url = url;
+        throw new UnsupportedOperationException("Connection properties were replaced with <dataSource> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
     }
 
-    public ReverseEngineering getReverseEngineering() {
-        return reverseEngineering;
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setUser(String user) {
+        throw new UnsupportedOperationException("Connection properties were replaced with <dataSource> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setPassword(String password) {
+        throw new UnsupportedOperationException("Connection properties were replaced with <dataSource> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setDriver(String driver) {
+        throw new UnsupportedOperationException("Connection properties were replaced with <dataSource> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setForceDataMapCatalog(boolean forceDataMapCatalog) {
+        throw new UnsupportedOperationException("forceDataMapCatalog property has been moved to <dbimport> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setForceDataMapSchema(boolean forceDataMapSchema) {
+        throw new UnsupportedOperationException("forceDataMapSchema property has been moved to <dbimport> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setMeaningfulPkTables(String meaningfulPkTables) {
+        throw new UnsupportedOperationException("meaningfulPkTables property has been moved to <dbimport> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setNamingStrategy(String namingStrategy) {
+        throw new UnsupportedOperationException("namingStrategy property has been moved to <dbimport> tag since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setDefaultPackage(String defaultPackage) {
+        throw new UnsupportedOperationException("defaultPackage property has been deprecated since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setStripFromTableNames(String stripFromTableNames) {
+        throw new UnsupportedOperationException("stripFromTableNames property has been deprecated since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setUsePrimitives(boolean usePrimitives) {
+        throw new UnsupportedOperationException("usePrimitives property has been deprecated since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
+    }
+
+    /**
+     * Setter to catch old styled configuration
+     * @deprecated to be removed in 4.0.BETA
+     */
+    @Deprecated
+    public void setReverseEngineering(ReverseEngineering reverseEngineering) {
+        throw new UnsupportedOperationException("<reverseEngineering> tag has been replaced with <dbimport> since 4.0.M5.\n\tFor additional information see http://cayenne.apache.org/docs/4.0/cayenne-guide/including-cayenne-in-project.html#maven-projects");
     }
 }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index f8ca8f3..7d8cbfe 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -36,7 +36,6 @@ import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.xml.sax.SAXException;
 
 import java.io.File;
 import java.io.FileReader;
@@ -47,9 +46,7 @@ import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Objects;
 
 import static org.apache.commons.lang.StringUtils.isBlank;
@@ -310,7 +307,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
 
         Exception exceptedException = null;
         String exceptedMessage = "Your database does not support catalogs on reverse engineering. " +
-                "It allows to connect to only one at the moment. Please don't note catalogs as param.";
+                "It allows to connect to only one at the moment. Please don't note catalogs in <dbimport> configuration.";
 
         try {
             cdbImport.execute();
@@ -319,7 +316,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
         }
 
         assertNotNull(exceptedException);
-        assertEquals(exceptedException.getCause().getMessage(), exceptedMessage);
+        assertEquals(exceptedMessage, exceptedException.getCause().getMessage());
     }
 
     private void test(String name) throws Exception {
@@ -344,8 +341,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
         }
     }
 
-    private void cleanDb(DbImportConfiguration dbImportConfiguration) throws ClassNotFoundException,
-            IllegalAccessException, InstantiationException, SQLException {
+    private void cleanDb(DbImportConfiguration dbImportConfiguration) throws Exception {
 
         // TODO: refactor to common DB management code... E.g. bootique-jdbc-test?
         // TODO: with in-memory Derby, it is easier to just stop and delete the database.. again see bootique-jdbc-test
@@ -354,16 +350,16 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
 
         try (Connection connection = DriverManager.getConnection(dbImportConfiguration.getUrl())) {
 
-            try (Statement stmt = connection.createStatement();) {
+            try (Statement stmt = connection.createStatement()) {
 
-                try (ResultSet views = connection.getMetaData().getTables(null, null, null, new String[]{"VIEW"});) {
+                try (ResultSet views = connection.getMetaData().getTables(null, null, null, new String[]{"VIEW"})) {
                     while (views.next()) {
                         String schema = views.getString("TABLE_SCHEM");
                         execute(stmt, "DROP VIEW " + (isBlank(schema) ? "" : schema + ".") + views.getString("TABLE_NAME"));
                     }
                 }
 
-                try (ResultSet tables = connection.getMetaData().getTables(null, null, null, new String[]{"TABLE"});) {
+                try (ResultSet tables = connection.getMetaData().getTables(null, null, null, new String[]{"TABLE"})) {
                     while (tables.next()) {
                         String schema = tables.getString("TABLE_SCHEM");
                         String tableName = tables.getString("TABLE_NAME");
@@ -382,7 +378,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
                     }
                 }
 
-                try (ResultSet schemas = connection.getMetaData().getSchemas();) {
+                try (ResultSet schemas = connection.getMetaData().getSchemas()) {
                     while (schemas.next()) {
                         String schem = schemas.getString("TABLE_SCHEM");
                         if (schem.startsWith("SCHEMA")) {
@@ -410,11 +406,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
             if (!diff.similar()) {
                 fail(diff.toString());
             }
-
-        } catch (SAXException e) {
-            e.printStackTrace();
-            fail();
-        } catch (IOException e) {
+        } catch (Exception e) {
             e.printStackTrace();
             fail();
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-01.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-01.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-01.xml
index b16afd8..a4a6955 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-01.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-01.xml
@@ -30,7 +30,7 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <catalog>catalog-name-01</catalog>
 
                         <catalog>
@@ -90,7 +90,7 @@
 
                         <includeColumn>includeColumn-05</includeColumn>
                         <excludeColumn>excludeColumn-05</excludeColumn>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog-and-schema.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog-and-schema.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog-and-schema.xml
index 185c280..d3828ce 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog-and-schema.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog-and-schema.xml
@@ -28,7 +28,7 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <catalog>
                             <name>catalog-name</name>
                             <schema>
@@ -75,7 +75,7 @@
                                 <excludeProcedure>excludeProcedure-03</excludeProcedure>
                             </schema>
                         </catalog>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog.xml
index b47f49d..9c919e8 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-catalog.xml
@@ -28,7 +28,7 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <catalog>catalog-name-01</catalog>
 
                         <catalog>
@@ -78,7 +78,7 @@
                             </excludeProcedure>
                             <excludeProcedure>excludeProcedure-03</excludeProcedure>
                         </catalog>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
index 81acfb3..7f09b88 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
@@ -27,7 +27,9 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
-                    <defaultPackage>com.example.test</defaultPackage>
+                    <dbimport>
+                        <defaultPackage>com.example.test</defaultPackage>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-flat.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-flat.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-flat.xml
index e245f94..6987454 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-flat.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-flat.xml
@@ -28,7 +28,7 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <includeTable>includeTable-01</includeTable>
 
                         <includeTable>
@@ -69,7 +69,7 @@
                             <pattern>excludeProcedure-02</pattern>
                         </excludeProcedure>
                         <excludeProcedure>excludeProcedure-03</excludeProcedure>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema-2.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema-2.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema-2.xml
index 02f05c6..05342fd 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema-2.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema-2.xml
@@ -26,13 +26,13 @@
             <plugin>
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
-                    <reverseEngineering>
+                    <dbimport>
                         <schema>
                             <name>NHL_STATS</name>
                             <excludeTable>^ETL_.*</excludeTable>
                             <excludeColumn>^ETL_.*</excludeColumn>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema.xml
index c355fb8..11804fc 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-schema.xml
@@ -28,7 +28,7 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <schema>schema-name-01</schema>
 
                         <schema>
@@ -78,7 +78,7 @@
                             </excludeProcedure>
                             <excludeProcedure>excludeProcedure-03</excludeProcedure>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-primary-key-loading.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-primary-key-loading.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-primary-key-loading.xml
index bd11c5f..2c3e6c5 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-primary-key-loading.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-primary-key-loading.xml
@@ -28,9 +28,9 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <skipPrimaryKeyLoading>true</skipPrimaryKeyLoading>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-relationships-loading.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-relationships-loading.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-relationships-loading.xml
index 892752c..9291871 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-relationships-loading.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-skip-relationships-loading.xml
@@ -28,9 +28,9 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <skipRelationshipsLoading>true</skipRelationshipsLoading>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-table-types.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-table-types.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-table-types.xml
index 60aed11..b8d3ad3 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-table-types.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-table-types.xml
@@ -28,11 +28,11 @@
                 <configuration>
                     <map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <tableType>type1</tableType>
                         <tableType>type2</tableType>
                         <tableType>type3</tableType>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder-pom.xml
index 994fffe..6e09d8a 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testComplexChangeOrder-pom.xml
@@ -29,11 +29,13 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testComplexChangeOrder.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+                    <dbimport>
                         <schema>SCHEMA_01</schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings-pom.xml
index 47ca90d..8d31eaf 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings-pom.xml
@@ -28,19 +28,21 @@
             <plugin>
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
-                    <map>target/test-classes/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
+                    <map>
+                        target/test-classes/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
                     </map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-                    <meaningfulPkTables>^*$</meaningfulPkTables>
-                    <usePrimitives>true</usePrimitives>
-                    <stripFromTableNames>^xyz_</stripFromTableNames>
-
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+                    <dbimport>
+                        <meaningfulPkTables>^*$</meaningfulPkTables>
+                        <usePrimitives>true</usePrimitives>
+                        <stripFromTableNames>^xyz_</stripFromTableNames>
                         <schema>
                             <name>SCHEMA_01</name>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDbAttributeChange-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDbAttributeChange-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDbAttributeChange-pom.xml
index 0ae2de3..ad0f98f 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDbAttributeChange-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDbAttributeChange-pom.xml
@@ -29,14 +29,16 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testDbAttributeChange.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <schema>
                             <name>SCHEMA_01</name>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
index 0c70eb7..2a6828f 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
@@ -29,13 +29,16 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml</map>
-                    <defaultPackage>com.example.test</defaultPackage>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
 
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+
+                    <dbimport>
+                        <defaultPackage>com.example.test</defaultPackage>
                         <schema>SCHEMA_01</schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema-pom.xml
index cc92813..de84543 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema-pom.xml
@@ -29,12 +29,14 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
 
-                    <reverseEngineering>
+                    <dbimport>
                         <schema>SCHEMA_01</schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFkAttributeRename-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFkAttributeRename-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFkAttributeRename-pom.xml
index ed78d00..dd50897 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFkAttributeRename-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFkAttributeRename-pom.xml
@@ -30,14 +30,17 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testFkAttributeRename.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
 
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+
+                    <dbimport>
                         <schema>
                             <name>SCHEMA_01</name>
                         </schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink-pom.xml
index 4e5b10b..1bcefa6 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink-pom.xml
@@ -29,9 +29,13 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-                    <defaultPackage>org.not.my.home</defaultPackage>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
+					<dbimport>
+                    	<defaultPackage>org.not.my.home</defaultPackage>
+					</dbimport>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema-pom.xml
index ca3d419..e1bbd50 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testForceDataMapSchema-pom.xml
@@ -29,15 +29,19 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <configuration>
                     <map>target/test-classes/org/apache/cayenne/tools/dbimport/testForceDataMapSchema.map.xml</map>
-                    <defaultPackage>com.example.test</defaultPackage>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
-                    <forceDataMapCatalog>true</forceDataMapCatalog>
-                    <forceDataMapSchema>true</forceDataMapSchema>
 
-                    <reverseEngineering>
+                    <dataSource>
+                        <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                        <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+                    </dataSource>
+
+                    <dbimport>
+                        <defaultPackage>com.example.test</defaultPackage>
+                        <forceDataMapCatalog>true</forceDataMapCatalog>
+                        <forceDataMapSchema>true</forceDataMapSchema>
+
                         <schema>SCHEMA_01</schema>
-                    </reverseEngineering>
+                    </dbimport>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn-pom.xml
index 1f3903f..598607d 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn-pom.xml
@@ -29,8 +29,10 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+						<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+						<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 				</configuration>
 			</plugin>
 		</plugins>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5d7507f6/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap-pom.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap-pom.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap-pom.xml
index 5214084..440d340 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap-pom.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap-pom.xml
@@ -29,8 +29,10 @@
 				<artifactId>maven-cayenne-plugin</artifactId>
 				<configuration>
 					<map>target/test-classes/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml</map>
-                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
-                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					<dataSource>
+                    	<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                    	<url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+					</dataSource>
 				</configuration>
 			</plugin>
 		</plugins>