You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/11/14 18:47:40 UTC

[39/50] [abbrv] cayenne git commit: Refactor TestMap Project

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
index d256c8d..0e33821 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
@@ -19,6 +19,11 @@
 
 package org.apache.cayenne.unit;
 
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.Procedure;
+
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.Statement;
@@ -27,11 +32,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.Procedure;
-
 /**
  */
 public class SybaseUnitDbAdapter extends UnitDbAdapter {
@@ -55,7 +55,7 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
 
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
-        Procedure proc = map.getProcedure("cayenne_tst_select_proc");
+        Procedure proc = map.getProcedure("cayenne_test_select_proc");
         if (proc != null && proc.getDataMap() == map) {
             executeDDL(con, "sybase", "create-select-sp.sql");
             executeDDL(con, "sybase", "create-update-sp.sql");
@@ -116,7 +116,7 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
     }
 
     protected void dropProcedures(Connection con, DataMap map) throws Exception {
-        Procedure proc = map.getProcedure("cayenne_tst_select_proc");
+        Procedure proc = map.getProcedure("cayenne_test_select_proc");
         if (proc != null && proc.getDataMap() == map) {
             executeDDL(con, "sybase", "drop-select-sp.sql");
             executeDDL(con, "sybase", "drop-update-sp.sql");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index 481b252..1b194ec 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -36,7 +36,7 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.MapLoader;
 import org.apache.cayenne.map.Procedure;
-import org.apache.cayenne.testdo.testmap.StringET1ExtendedType;
+import org.apache.cayenne.testdo.extended_type.StringET1ExtendedType;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -68,10 +68,11 @@ public class SchemaBuilder {
 
     public static final String SKIP_SCHEMA_KEY = "cayenne.test.schema.skip";
 
-    private static String[] MAPS_REQUIRING_SCHEMA_SETUP = { "tstmap.map.xml", "people.map.xml", "inheritance.map.xml",
+    private static String[] MAPS_REQUIRING_SCHEMA_SETUP = {"testmap.map.xml", "compound.map.xml", "misc-types.map.xml", "things.map.xml", "numeric-types.map.xml", "binary-pk.map.xml", "no-pk.map.xml",
+            "lob.map.xml", "date-time.map.xml", "enum.map.xml", "extended-type.map.xml", "generated.map.xml", "mixed-persistence-strategy.map.xml", "people.map.xml", "primitive.map.xml", "inheritance.map.xml",
             "locking.map.xml", "soft-delete.map.xml", "relationships.map.xml", "relationships-activity.map.xml", "relationships-delete-rules.map.xml",
             "relationships-collection-to-many.map.xml", "relationships-child-master.map.xml", "relationships-clob.map.xml",
-            "relationships-flattened.map.xml", "relationships-set-to-many.map.xml", "relationships-to-many-fk.map.xml", "relationships-to-one-fk.map.xml",
+            "relationships-flattened.map.xml", "relationships-set-to-many.map.xml", "relationships-to-many-fk.map.xml", "relationships-to-one-fk.map.xml", "return-types.map.xml", "uuid.map.xml",
             "multi-tier.map.xml", "persistent.map.xml", "reflexive.map.xml", "delete-rules.map.xml", "lifecycles.map.xml",
             "map-to-many.map.xml", "toone.map.xml", "meaningful-pk.map.xml", "table-primitives.map.xml",
             "generic.map.xml", "map-db1.map.xml", "map-db2.map.xml", "embeddable.map.xml", "qualified.map.xml",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
index b605e50..463c006 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
@@ -47,6 +47,22 @@ public class ServerCase extends DICase {
 	public static final String RELATIONSHIPS_SET_TO_MANY_PROJECT = "cayenne-relationships-set-to-many.xml";
 	public static final String RELATIONSHIPS_TO_MANY_FK_PROJECT = "cayenne-relationships-to-many-fk.xml";
 	public static final String RELATIONSHIPS_TO_ONE_FK_PROJECT = "cayenne-relationships-to-one-fk.xml";
+	public static final String MISC_TYPES_PROJECT = "cayenne-misc-types.xml";
+	public static final String THINGS_PROJECT = "cayenne-things.xml";
+	public static final String NUMERIC_TYPES_PROJECT = "cayenne-numeric-types.xml";
+	public static final String BINARY_PK_PROJECT = "cayenne-binary-pk.xml";
+	public static final String NO_PK_PROJECT = "cayenne-no-pk.xml";
+	public static final String LOB_PROJECT = "cayenne-lob.xml";
+	public static final String DATE_TIME_PROJECT = "cayenne-date-time.xml";
+	public static final String ENUM_PROJECT = "cayenne-enum.xml";
+	public static final String EXTENDED_TYPE_PROJECT = "cayenne-extended-type.xml";
+	public static final String GENERATED_PROJECT = "cayenne-generated.xml";
+	public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml";
+	public static final String MIXED_PERSISTENCE_STRATEGY_PROJECT = "cayenne-mixed-persistence-strategy.xml";
+	public static final String PRIMITIVE_PROJECT = "cayenne-primitive.xml";
+	public static final String RETURN_TYPES_PROJECT = "cayenne-return-types.xml";
+	public static final String UUID_PROJECT = "cayenne-uuid.xml";
+	public static final String COMPOUND_PROJECT = "cayenne-compound.xml";
 	public static final String TESTMAP_PROJECT = "cayenne-testmap.xml";
 	public static final String DEFAULT_PROJECT = "cayenne-default.xml";
 	public static final String MULTINODE_PROJECT = "cayenne-multinode.xml";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
index 8915ab2..449e33f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
@@ -44,7 +44,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 /**
- * Test for Result directive to check if we could use ResultDitrective
+ * Test for Result directive to check if we could use ResultDirective
  * optionally.
  */
 @UseServerRuntime(ServerCase.TESTMAP_PROJECT)

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/binary-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/binary-pk.map.xml b/cayenne-server/src/test/resources/binary-pk.map.xml
new file mode 100644
index 0000000..ce5ee57
--- /dev/null
+++ b/cayenne-server/src/test/resources/binary-pk.map.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.binary_pk"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="BINARY_PK_TEST1">
+        <db-attribute name="BIN_ID" type="VARBINARY" isPrimaryKey="true" isMandatory="true" length="32"/>
+        <db-attribute name="NAME" type="VARCHAR" length="10"/>
+    </db-entity>
+    <db-entity name="BINARY_PK_TEST2">
+        <db-attribute name="DETAIL_NAME" type="VARCHAR" length="10"/>
+        <db-attribute name="FK_ID" type="VARBINARY" length="32"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <obj-entity name="BinaryPKTest1" className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest1" dbEntityName="BINARY_PK_TEST1">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="BinaryPKTest2" className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest2" dbEntityName="BINARY_PK_TEST2">
+        <obj-attribute name="detailName" type="java.lang.String" db-attribute-path="DETAIL_NAME"/>
+    </obj-entity>
+    <db-relationship name="binaryPKDetails" source="BINARY_PK_TEST1" target="BINARY_PK_TEST2" toMany="true">
+        <db-attribute-pair source="BIN_ID" target="FK_ID"/>
+    </db-relationship>
+    <db-relationship name="toBinaryPKMaster" source="BINARY_PK_TEST2" target="BINARY_PK_TEST1" toMany="false">
+        <db-attribute-pair source="FK_ID" target="BIN_ID"/>
+    </db-relationship>
+    <obj-relationship name="binaryPKDetails" source="BinaryPKTest1" target="BinaryPKTest2" db-relationship-path="binaryPKDetails"/>
+    <obj-relationship name="toBinaryPKMaster" source="BinaryPKTest2" target="BinaryPKTest1" db-relationship-path="toBinaryPKMaster"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-binary-pk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-binary-pk.xml b/cayenne-server/src/test/resources/cayenne-binary-pk.xml
new file mode 100644
index 0000000..0922532
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-binary-pk.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="binary-pk"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-compound.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-compound.xml b/cayenne-server/src/test/resources/cayenne-compound.xml
new file mode 100644
index 0000000..28773ec
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-compound.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="compound"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-date-time.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-date-time.xml b/cayenne-server/src/test/resources/cayenne-date-time.xml
new file mode 100644
index 0000000..9c7e1d3
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-date-time.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="date-time"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-enum.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-enum.xml b/cayenne-server/src/test/resources/cayenne-enum.xml
new file mode 100644
index 0000000..4b94cd1
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-enum.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="enum"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-extended-type.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-extended-type.xml b/cayenne-server/src/test/resources/cayenne-extended-type.xml
new file mode 100644
index 0000000..84b0670
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-extended-type.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="extended-type"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-generated.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-generated.xml b/cayenne-server/src/test/resources/cayenne-generated.xml
new file mode 100644
index 0000000..57bd957
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-generated.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="generated"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-lob.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lob.xml b/cayenne-server/src/test/resources/cayenne-lob.xml
new file mode 100644
index 0000000..0bca9f9
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-lob.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="lob"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-misc-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-misc-types.xml b/cayenne-server/src/test/resources/cayenne-misc-types.xml
new file mode 100644
index 0000000..bbc06f2
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-misc-types.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="misc-types"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml b/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
new file mode 100644
index 0000000..84ebf37
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="mixed-persistence-strategy"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-no-pk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-no-pk.xml b/cayenne-server/src/test/resources/cayenne-no-pk.xml
new file mode 100644
index 0000000..3a65de0
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-no-pk.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="no-pk"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-numeric-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-numeric-types.xml b/cayenne-server/src/test/resources/cayenne-numeric-types.xml
new file mode 100644
index 0000000..52d63c3
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-numeric-types.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="numeric-types"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-primitive.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-primitive.xml b/cayenne-server/src/test/resources/cayenne-primitive.xml
new file mode 100644
index 0000000..a63d770
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-primitive.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="primitive"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-return-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-return-types.xml b/cayenne-server/src/test/resources/cayenne-return-types.xml
new file mode 100644
index 0000000..b03bf5d
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-return-types.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="return-types"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-testmap.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-testmap.xml b/cayenne-server/src/test/resources/cayenne-testmap.xml
index 9410b11..4028207 100644
--- a/cayenne-server/src/test/resources/cayenne-testmap.xml
+++ b/cayenne-server/src/test/resources/cayenne-testmap.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <domain project-version="7">
-	<map name="tstmap"/>
+	<map name="testmap"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-things.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-things.xml b/cayenne-server/src/test/resources/cayenne-things.xml
new file mode 100644
index 0000000..8e9e1de
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-things.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="things"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/cayenne-uuid.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-uuid.xml b/cayenne-server/src/test/resources/cayenne-uuid.xml
new file mode 100644
index 0000000..f3bd2e1
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-uuid.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="uuid"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/compound.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/compound.map.xml b/cayenne-server/src/test/resources/compound.map.xml
new file mode 100644
index 0000000..47ebbdb
--- /dev/null
+++ b/cayenne-server/src/test/resources/compound.map.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.compound"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="CHAR_FK_TEST">
+        <db-attribute name="FK_COL" type="CHAR" length="10"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+        <db-attribute name="PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="CHAR_PK_TEST">
+        <db-attribute name="OTHER_COL" type="CHAR" length="10"/>
+        <db-attribute name="PK_COL" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/>
+    </db-entity>
+    <db-entity name="COMPOUND_FK_TEST">
+        <db-attribute name="F_KEY1" type="VARCHAR" length="20"/>
+        <db-attribute name="F_KEY2" type="VARCHAR" length="20"/>
+        <db-attribute name="NAME" type="VARCHAR" length="255"/>
+        <db-attribute name="PKEY" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="COMPOUND_PK_TEST">
+        <db-attribute name="KEY1" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/>
+        <db-attribute name="KEY2" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/>
+        <db-attribute name="NAME" type="VARCHAR" length="255"/>
+    </db-entity>
+    <obj-entity name="CharFkTestEntity" className="org.apache.cayenne.testdo.compound.CharFkTestEntity" dbEntityName="CHAR_FK_TEST">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="CharPkTestEntity" className="org.apache.cayenne.testdo.compound.CharPkTestEntity" dbEntityName="CHAR_PK_TEST">
+        <obj-attribute name="otherCol" type="java.lang.String" db-attribute-path="OTHER_COL"/>
+        <obj-attribute name="pkCol" type="java.lang.String" db-attribute-path="PK_COL"/>
+    </obj-entity>
+    <obj-entity name="CompoundFkTestEntity" className="org.apache.cayenne.testdo.compound.CompoundFkTestEntity" dbEntityName="COMPOUND_FK_TEST">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="CompoundPkTestEntity" className="org.apache.cayenne.testdo.compound.CompoundPkTestEntity" dbEntityName="COMPOUND_PK_TEST">
+        <obj-attribute name="key1" type="java.lang.String" db-attribute-path="KEY1"/>
+        <obj-attribute name="key2" type="java.lang.String" db-attribute-path="KEY2"/>
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <db-relationship name="toCharPK" source="CHAR_FK_TEST" target="CHAR_PK_TEST" toMany="false">
+        <db-attribute-pair source="FK_COL" target="PK_COL"/>
+    </db-relationship>
+    <db-relationship name="charFKs" source="CHAR_PK_TEST" target="CHAR_FK_TEST" toMany="true">
+        <db-attribute-pair source="PK_COL" target="FK_COL"/>
+    </db-relationship>
+    <db-relationship name="toCompoundPk" source="COMPOUND_FK_TEST" target="COMPOUND_PK_TEST" toMany="false">
+        <db-attribute-pair source="F_KEY1" target="KEY1"/>
+        <db-attribute-pair source="F_KEY2" target="KEY2"/>
+    </db-relationship>
+    <db-relationship name="compoundFkArray" source="COMPOUND_PK_TEST" target="COMPOUND_FK_TEST" toMany="true">
+        <db-attribute-pair source="KEY1" target="F_KEY1"/>
+        <db-attribute-pair source="KEY2" target="F_KEY2"/>
+    </db-relationship>
+    <obj-relationship name="toCharPK" source="CharFkTestEntity" target="CharPkTestEntity" db-relationship-path="toCharPK"/>
+    <obj-relationship name="charFKs" source="CharPkTestEntity" target="CharFkTestEntity" db-relationship-path="charFKs"/>
+    <obj-relationship name="toCompoundPk" source="CompoundFkTestEntity" target="CompoundPkTestEntity" db-relationship-path="toCompoundPk"/>
+    <obj-relationship name="compoundFkArray" source="CompoundPkTestEntity" target="CompoundFkTestEntity" db-relationship-path="compoundFkArray"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/date-time.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/date-time.map.xml b/cayenne-server/src/test/resources/date-time.map.xml
new file mode 100644
index 0000000..4cf4d8b
--- /dev/null
+++ b/cayenne-server/src/test/resources/date-time.map.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.date_time"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="CALENDAR_TEST">
+        <db-attribute name="CALENDAR_FIELD" type="TIMESTAMP"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="DATE_TEST">
+        <db-attribute name="DATE_COLUMN" type="DATE"/>
+        <db-attribute name="DATE_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
+        <db-attribute name="TIME_COLUMN" type="TIME"/>
+    </db-entity>
+    <obj-entity name="CalendarEntity" className="org.apache.cayenne.testdo.date_time.CalendarEntity" dbEntityName="CALENDAR_TEST">
+        <obj-attribute name="calendarField" type="java.util.Calendar" db-attribute-path="CALENDAR_FIELD"/>
+    </obj-entity>
+    <obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.date_time.DateTestEntity" dbEntityName="DATE_TEST">
+        <obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/>
+        <obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/>
+        <obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/>
+    </obj-entity>
+    <query name="SelectDateTest" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="date-time">
+        <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+        <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/>
+        <sql><![CDATA[SELECT * FROM DATE_TEST]]></sql>
+    </query>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/enum.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/enum.map.xml b/cayenne-server/src/test/resources/enum.map.xml
new file mode 100644
index 0000000..9233e86
--- /dev/null
+++ b/cayenne-server/src/test/resources/enum.map.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.enum"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="ENUM_ENTITY">
+        <db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" length="250"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.enum_test.EnumEntity" dbEntityName="ENUM_ENTITY">
+        <obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.enum_test.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/extended-type.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/extended-type.map.xml b/cayenne-server/src/test/resources/extended-type.map.xml
new file mode 100644
index 0000000..cc2a5ee
--- /dev/null
+++ b/cayenne-server/src/test/resources/extended-type.map.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.extended_type"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="EXTENDED_TYPE_TEST">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <obj-entity name="ExtendedTypeEntity" className="org.apache.cayenne.testdo.extended_type.ExtendedTypeEntity" dbEntityName="EXTENDED_TYPE_TEST">
+        <obj-attribute name="name" type="org.apache.cayenne.testdo.extended_type.StringET1" db-attribute-path="NAME"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/generated.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/generated.map.xml b/cayenne-server/src/test/resources/generated.map.xml
new file mode 100644
index 0000000..8c0a947
--- /dev/null
+++ b/cayenne-server/src/test/resources/generated.map.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.generated"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="GENERATED_COLUMN_COMP_KEY">
+        <db-attribute name="AUTO_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+        <db-attribute name="PROPAGATED_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="GENERATED_COLUMN_COMP_M">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+    </db-entity>
+    <db-entity name="GENERATED_COLUMN_DEP">
+        <db-attribute name="GENERATED_COLUMN_FK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+    </db-entity>
+    <db-entity name="GENERATED_COLUMN_TEST">
+        <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="250"/>
+    </db-entity>
+    <db-entity name="GENERATED_COLUMN_TEST2">
+        <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+    </db-entity>
+    <db-entity name="GENERATED_F1">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="GENERATED_F2">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="GENERATED_JOIN">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+        <db-attribute name="ID1" type="INTEGER"/>
+        <db-attribute name="ID2" type="INTEGER"/>
+    </db-entity>
+    <obj-entity name="GeneratedColumnCompKey" className="org.apache.cayenne.testdo.generated.GeneratedColumnCompKey" dbEntityName="GENERATED_COLUMN_COMP_KEY">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="GeneratedColumnCompMaster" className="org.apache.cayenne.testdo.generated.GeneratedColumnCompMaster" dbEntityName="GENERATED_COLUMN_COMP_M">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="GeneratedColumnDep" className="org.apache.cayenne.testdo.generated.GeneratedColumnDep" dbEntityName="GENERATED_COLUMN_DEP">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="GeneratedColumnTest2" className="org.apache.cayenne.testdo.generated.GeneratedColumnTest2" dbEntityName="GENERATED_COLUMN_TEST2">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="GeneratedColumnTestEntity" className="org.apache.cayenne.testdo.generated.GeneratedColumnTestEntity" dbEntityName="GENERATED_COLUMN_TEST">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="GeneratedF1" className="org.apache.cayenne.testdo.generated.GeneratedF1" clientClassName="test.client.GeneratedF1" dbEntityName="GENERATED_F1" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject">
+    </obj-entity>
+    <obj-entity name="GeneratedF2" className="org.apache.cayenne.testdo.generated.GeneratedF2" clientClassName="test.client.GeneratedF2" dbEntityName="GENERATED_F2" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject">
+    </obj-entity>
+    <db-relationship name="toMaster" source="GENERATED_COLUMN_COMP_KEY" target="GENERATED_COLUMN_COMP_M" toMany="false">
+        <db-attribute-pair source="PROPAGATED_PK" target="ID"/>
+    </db-relationship>
+    <db-relationship name="toDetail" source="GENERATED_COLUMN_COMP_M" target="GENERATED_COLUMN_COMP_KEY" toDependentPK="true" toMany="true">
+        <db-attribute-pair source="ID" target="PROPAGATED_PK"/>
+    </db-relationship>
+    <db-relationship name="toMaster" source="GENERATED_COLUMN_DEP" target="GENERATED_COLUMN_TEST" toMany="false">
+        <db-attribute-pair source="GENERATED_COLUMN_FK" target="GENERATED_COLUMN"/>
+    </db-relationship>
+    <db-relationship name="toDep" source="GENERATED_COLUMN_TEST" target="GENERATED_COLUMN_DEP" toDependentPK="true" toMany="false">
+        <db-attribute-pair source="GENERATED_COLUMN" target="GENERATED_COLUMN_FK"/>
+    </db-relationship>
+    <db-relationship name="join" source="GENERATED_F1" target="GENERATED_JOIN" toMany="true">
+        <db-attribute-pair source="ID" target="ID1"/>
+    </db-relationship>
+    <db-relationship name="join" source="GENERATED_F2" target="GENERATED_JOIN" toMany="true">
+        <db-attribute-pair source="ID" target="ID2"/>
+    </db-relationship>
+    <db-relationship name="f1" source="GENERATED_JOIN" target="GENERATED_F1" toMany="false">
+        <db-attribute-pair source="ID1" target="ID"/>
+    </db-relationship>
+    <db-relationship name="f2" source="GENERATED_JOIN" target="GENERATED_F2" toMany="false">
+        <db-attribute-pair source="ID2" target="ID"/>
+    </db-relationship>
+    <obj-relationship name="toMaster" source="GeneratedColumnCompKey" target="GeneratedColumnCompMaster" db-relationship-path="toMaster"/>
+    <obj-relationship name="toDetail" source="GeneratedColumnCompMaster" target="GeneratedColumnCompKey" db-relationship-path="toDetail"/>
+    <obj-relationship name="toMaster" source="GeneratedColumnDep" target="GeneratedColumnTestEntity" db-relationship-path="toMaster"/>
+    <obj-relationship name="toDep" source="GeneratedColumnTestEntity" target="GeneratedColumnDep" db-relationship-path="toDep"/>
+    <obj-relationship name="f2" source="GeneratedF1" target="GeneratedF2" deleteRule="Nullify" db-relationship-path="join.f2"/>
+    <obj-relationship name="f1" source="GeneratedF2" target="GeneratedF1" deleteRule="Nullify" db-relationship-path="join.f1"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/lob.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/lob.map.xml b/cayenne-server/src/test/resources/lob.map.xml
new file mode 100644
index 0000000..1aae149
--- /dev/null
+++ b/cayenne-server/src/test/resources/lob.map.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.lob"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="BLOB_TEST">
+        <db-attribute name="BLOB_COL" type="BLOB"/>
+        <db-attribute name="BLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="CLOB_TEST">
+        <db-attribute name="CLOB_COL" type="CLOB"/>
+        <db-attribute name="CLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="CLOB_TEST_RELATION">
+        <db-attribute name="CVALUE" type="INTEGER"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="ID_CLOB" type="INTEGER" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="TEST">
+        <db-attribute name="TEST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="TEST_NAME" type="CHAR" isMandatory="true" length="254"/>
+    </db-entity>
+    <obj-entity name="BlobTestEntity" className="org.apache.cayenne.testdo.lob.BlobTestEntity" dbEntityName="BLOB_TEST">
+        <obj-attribute name="blobCol" type="byte[]" db-attribute-path="BLOB_COL"/>
+    </obj-entity>
+    <obj-entity name="ClobTestEntity" className="org.apache.cayenne.testdo.lob.ClobTestEntity" dbEntityName="CLOB_TEST">
+        <obj-attribute name="clobCol" type="java.lang.String" db-attribute-path="CLOB_COL"/>
+    </obj-entity>
+    <obj-entity name="ClobTestRelation" className="org.apache.cayenne.testdo.lob.ClobTestRelation" dbEntityName="CLOB_TEST_RELATION">
+        <obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/>
+        <obj-attribute name="value" type="java.lang.Integer" db-attribute-path="CVALUE"/>
+    </obj-entity>
+    <db-relationship name="clob" source="CLOB_TEST" target="CLOB_TEST_RELATION" toMany="true">
+        <db-attribute-pair source="CLOB_TEST_ID" target="ID_CLOB"/>
+    </db-relationship>
+    <db-relationship name="CLOB_REL" source="CLOB_TEST_RELATION" target="CLOB_TEST" toMany="false">
+        <db-attribute-pair source="ID_CLOB" target="CLOB_TEST_ID"/>
+    </db-relationship>
+    <obj-relationship name="clobValue" source="ClobTestEntity" target="ClobTestRelation" db-relationship-path="clob"/>
+    <obj-relationship name="clobId" source="ClobTestRelation" target="ClobTestEntity" db-relationship-path="CLOB_REL"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/meaningful-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/meaningful-pk.map.xml b/cayenne-server/src/test/resources/meaningful-pk.map.xml
index fdddca4..77237a2 100644
--- a/cayenne-server/src/test/resources/meaningful-pk.map.xml
+++ b/cayenne-server/src/test/resources/meaningful-pk.map.xml
@@ -9,7 +9,31 @@
     <db-entity name="MEANINGFUL_PK">
         <db-attribute name="PK" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="100"/>
     </db-entity>
+    <db-entity name="MEANINGFUL_PK_DEP">
+        <db-attribute name="DESCR" type="VARCHAR" length="50"/>
+        <db-attribute name="MASTER_PK" type="INTEGER"/>
+        <db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="MEANINGFUL_PK_TEST1">
+        <db-attribute name="DESCR" type="VARCHAR" length="50"/>
+        <db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
     <obj-entity name="MeaningfulPk" className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPk" clientClassName="org.apache.cayenne.testdo.meaningful_pk.ClientMeaningfulPk" dbEntityName="MEANINGFUL_PK">
         <obj-attribute name="pk" type="java.lang.String" db-attribute-path="PK"/>
     </obj-entity>
+    <obj-entity name="MeaningfulPKDep" className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKDep" dbEntityName="MEANINGFUL_PK_DEP">
+        <obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/>
+    </obj-entity>
+    <obj-entity name="MeaningfulPKTest1" className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKTest1" dbEntityName="MEANINGFUL_PK_TEST1">
+        <obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/>
+        <obj-attribute name="pkAttribute" type="java.lang.Integer" db-attribute-path="PK_ATTRIBUTE"/>
+    </obj-entity>
+    <db-relationship name="toMeaningfulPK" source="MEANINGFUL_PK_DEP" target="MEANINGFUL_PK_TEST1" toMany="false">
+        <db-attribute-pair source="MASTER_PK" target="PK_ATTRIBUTE"/>
+    </db-relationship>
+    <db-relationship name="meaningfulPKDepArray" source="MEANINGFUL_PK_TEST1" target="MEANINGFUL_PK_DEP" toMany="true">
+        <db-attribute-pair source="PK_ATTRIBUTE" target="MASTER_PK"/>
+    </db-relationship>
+    <obj-relationship name="toMeaningfulPK" source="MeaningfulPKDep" target="MeaningfulPKTest1" db-relationship-path="toMeaningfulPK"/>
+    <obj-relationship name="meaningfulPKDepArray" source="MeaningfulPKTest1" target="MeaningfulPKDep" db-relationship-path="meaningfulPKDepArray"/>
 </data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/misc-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/misc-types.map.xml b/cayenne-server/src/test/resources/misc-types.map.xml
new file mode 100644
index 0000000..56371e3
--- /dev/null
+++ b/cayenne-server/src/test/resources/misc-types.map.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.misc_types"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="ARRAYS_ENTITY">
+        <db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/>
+        <db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" length="200"/>
+        <db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/>
+        <db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" length="200"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="CHARACTER_ENTITY">
+        <db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="SERIALIZABLE_ENTITY">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="SERIALIZABLE_FIELD" type="BLOB"/>
+    </db-entity>
+    <obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.misc_types.ArraysEntity" dbEntityName="ARRAYS_ENTITY">
+        <obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/>
+        <obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/>
+        <obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/>
+        <obj-attribute name="charWrapperArray" type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/>
+    </obj-entity>
+    <obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.misc_types.CharacterEntity" dbEntityName="CHARACTER_ENTITY">
+        <obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/>
+    </obj-entity>
+    <obj-entity name="SerializableEntity" className="org.apache.cayenne.testdo.misc_types.SerializableEntity" dbEntityName="SERIALIZABLE_ENTITY">
+        <obj-attribute name="serializableField" type="org.apache.cayenne.MockSerializable" db-attribute-path="SERIALIZABLE_FIELD"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml b/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
new file mode 100644
index 0000000..494546d
--- /dev/null
+++ b/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.mixed_persistence_strategy"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="MIXED_PERSISTENCE_STRATEGY">
+        <db-attribute name="DESCRIPTION" type="VARCHAR" length="200"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <db-entity name="MIXED_PERSISTENCE_STRATEGY2">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="MASTER_ID" type="INTEGER"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <obj-entity name="MixedPersistenceStrategy" className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy" dbEntityName="MIXED_PERSISTENCE_STRATEGY">
+        <obj-attribute name="description" type="java.lang.String" db-attribute-path="DESCRIPTION"/>
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="MixedPersistenceStrategy2" className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy2" dbEntityName="MIXED_PERSISTENCE_STRATEGY2">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <db-relationship name="details" source="MIXED_PERSISTENCE_STRATEGY" target="MIXED_PERSISTENCE_STRATEGY2" toMany="true">
+        <db-attribute-pair source="ID" target="MASTER_ID"/>
+    </db-relationship>
+    <db-relationship name="master" source="MIXED_PERSISTENCE_STRATEGY2" target="MIXED_PERSISTENCE_STRATEGY" toMany="false">
+        <db-attribute-pair source="MASTER_ID" target="ID"/>
+    </db-relationship>
+    <obj-relationship name="details" source="MixedPersistenceStrategy" target="MixedPersistenceStrategy2" db-relationship-path="details"/>
+    <obj-relationship name="master" source="MixedPersistenceStrategy2" target="MixedPersistenceStrategy" db-relationship-path="master"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/no-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/no-pk.map.xml b/cayenne-server/src/test/resources/no-pk.map.xml
new file mode 100644
index 0000000..114d247
--- /dev/null
+++ b/cayenne-server/src/test/resources/no-pk.map.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.no_pk"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="NO_PK_TEST">
+        <db-attribute name="ATTRIBUTE1" type="INTEGER"/>
+    </db-entity>
+    <obj-entity name="NoPkTestEntity" className="org.apache.cayenne.testdo.no_pk.NoPkTestEntity" dbEntityName="NO_PK_TEST">
+        <obj-attribute name="attribute1" type="java.lang.Integer" db-attribute-path="ATTRIBUTE1"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/numeric-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/numeric-types.map.xml b/cayenne-server/src/test/resources/numeric-types.map.xml
new file mode 100644
index 0000000..c5a8e2e
--- /dev/null
+++ b/cayenne-server/src/test/resources/numeric-types.map.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.numeric_types"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="BIGDECIMAL_ENTITY">
+        <db-attribute name="BIGDECIMAL_FIELD" type="NUMERIC" length="12" scale="2"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="BIGINTEGER_ENTITY">
+        <db-attribute name="BIG_INTEGER_FIELD" type="BIGINT"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="BIT_TEST">
+        <db-attribute name="BIT_COLUMN" type="BIT" isMandatory="true"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="BOOLEAN_TEST">
+        <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN" isMandatory="true"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="DECIMAL_PK_TST">
+        <db-attribute name="DECIMAL_PK" type="DECIMAL" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="100"/>
+    </db-entity>
+    <db-entity name="FLOAT_TEST">
+        <db-attribute name="FLOAT_COL" type="FLOAT"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="LONG_ENTITY">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="LONG_FIELD" type="BIGINT"/>
+    </db-entity>
+    <db-entity name="SMALLINT_TEST">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="SMALLINT_COL" type="SMALLINT"/>
+    </db-entity>
+    <db-entity name="TINYINT_TEST">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="TINYINT_COL" type="TINYINT"/>
+    </db-entity>
+    <obj-entity name="BigDecimalEntity" className="org.apache.cayenne.testdo.numeric_types.BigDecimalEntity" dbEntityName="BIGDECIMAL_ENTITY">
+        <obj-attribute name="bigDecimalField" type="java.math.BigDecimal" db-attribute-path="BIGDECIMAL_FIELD"/>
+    </obj-entity>
+    <obj-entity name="BigIntegerEntity" className="org.apache.cayenne.testdo.numeric_types.BigIntegerEntity" dbEntityName="BIGINTEGER_ENTITY">
+        <obj-attribute name="bigIntegerField" type="java.math.BigInteger" db-attribute-path="BIG_INTEGER_FIELD"/>
+    </obj-entity>
+    <obj-entity name="BitNumberTestEntity" className="org.apache.cayenne.testdo.numeric_types.BitNumberTestEntity" dbEntityName="BIT_TEST">
+        <obj-attribute name="bitColumn" type="java.lang.Integer" db-attribute-path="BIT_COLUMN"/>
+    </obj-entity>
+    <obj-entity name="BitTestEntity" className="org.apache.cayenne.testdo.numeric_types.BitTestEntity" dbEntityName="BIT_TEST">
+        <obj-attribute name="bitColumn" type="java.lang.Boolean" db-attribute-path="BIT_COLUMN"/>
+    </obj-entity>
+    <obj-entity name="BooleanTestEntity" className="org.apache.cayenne.testdo.numeric_types.BooleanTestEntity" dbEntityName="BOOLEAN_TEST">
+        <obj-attribute name="booleanColumn" type="java.lang.Boolean" db-attribute-path="BOOLEAN_COLUMN"/>
+    </obj-entity>
+    <obj-entity name="DecimalPKTest1" className="org.apache.cayenne.testdo.numeric_types.DecimalPKTest1" dbEntityName="DECIMAL_PK_TST">
+        <obj-attribute name="decimalPK" type="java.lang.Double" db-attribute-path="DECIMAL_PK"/>
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="DecimalPKTestEntity" className="org.apache.cayenne.testdo.numeric_types.DecimalPKTestEntity" dbEntityName="DECIMAL_PK_TST">
+        <obj-attribute name="decimalPK" type="java.math.BigDecimal" db-attribute-path="DECIMAL_PK"/>
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="LongEntity" className="org.apache.cayenne.testdo.numeric_types.LongEntity" dbEntityName="LONG_ENTITY">
+        <obj-attribute name="longField" type="java.lang.Long" db-attribute-path="LONG_FIELD"/>
+    </obj-entity>
+    <obj-entity name="SmallintTestEntity" className="org.apache.cayenne.testdo.numeric_types.SmallintTestEntity" dbEntityName="SMALLINT_TEST">
+        <obj-attribute name="smallintCol" type="java.lang.Short" db-attribute-path="SMALLINT_COL"/>
+    </obj-entity>
+    <obj-entity name="TinyintTestEntity" className="org.apache.cayenne.testdo.numeric_types.TinyintTestEntity" dbEntityName="TINYINT_TEST">
+        <obj-attribute name="tinyintCol" type="java.lang.Byte" db-attribute-path="TINYINT_COL"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/primitive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/primitive.map.xml b/cayenne-server/src/test/resources/primitive.map.xml
new file mode 100644
index 0000000..db129dd
--- /dev/null
+++ b/cayenne-server/src/test/resources/primitive.map.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.primitive"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="PRIMITIVES_TEST">
+        <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="INT_COLUMN" type="INTEGER"/>
+    </db-entity>
+    <obj-entity name="PrimitivesTestEntity" className="org.apache.cayenne.testdo.primitive.PrimitivesTestEntity" dbEntityName="PRIMITIVES_TEST">
+        <obj-attribute name="booleanColumn" type="boolean" db-attribute-path="BOOLEAN_COLUMN"/>
+        <obj-attribute name="intColumn" type="int" db-attribute-path="INT_COLUMN"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/return-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/return-types.map.xml b/cayenne-server/src/test/resources/return-types.map.xml
new file mode 100644
index 0000000..217dc73
--- /dev/null
+++ b/cayenne-server/src/test/resources/return-types.map.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <property name="defaultPackage" value="org.apache.cayenne.testdo.return_types"/>
+    <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="test.client"/>
+    <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+    <db-entity name="TYPES_MAPPING_LOBS_TEST1">
+        <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="CLOB_COLUMN" type="CLOB"/>
+    </db-entity>
+    <db-entity name="TYPES_MAPPING_TEST1">
+        <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="BIGINT_COLUMN" type="BIGINT"/>
+        <db-attribute name="BIT_COLUMN" type="BIT"/>
+        <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
+        <db-attribute name="CHAR_COLUMN" type="CHAR" length="254"/>
+        <db-attribute name="DATE_COLUMN" type="DATE"/>
+        <db-attribute name="DECIMAL_COLUMN" type="DECIMAL" length="12" scale="5"/>
+        <db-attribute name="DOUBLE_COLUMN" type="DOUBLE" scale="7"/>
+        <db-attribute name="FLOAT_COLUMN" type="FLOAT" scale="3"/>
+        <db-attribute name="INTEGER_COLUMN" type="INTEGER"/>
+        <db-attribute name="LONGVARCHAR_COLUMN" type="LONGVARCHAR"/>
+        <db-attribute name="NUMERIC_COLUMN" type="NUMERIC" length="12" scale="5"/>
+        <db-attribute name="REAL_COLUMN" type="REAL" scale="5"/>
+        <db-attribute name="SMALLINT_COLUMN" type="SMALLINT"/>
+        <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
+        <db-attribute name="TIME_COLUMN" type="TIME"/>
+        <db-attribute name="TINYINT_COLUMN" type="TINYINT"/>
+        <db-attribute name="VARCHAR_COLUMN" type="VARCHAR" length="255"/>
+    </db-entity>
+    <db-entity name="TYPES_MAPPING_TEST2">
+        <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="BINARY_COLUMN" type="BINARY" length="14"/>
+        <db-attribute name="BLOB_COLUMN" type="BLOB"/>
+        <db-attribute name="LONGVARBINARY_COLUMN" type="LONGVARBINARY"/>
+        <db-attribute name="VARBINARY_COLUMN" type="VARBINARY" length="1000"/>
+    </db-entity>
+    <obj-entity name="ReturnTypesMap1" className="org.apache.cayenne.testdo.return_types.ReturnTypesMap1" clientClassName="test.client.ReturnTypesMap1" dbEntityName="TYPES_MAPPING_TEST1" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject">
+        <obj-attribute name="bigintColumn" type="java.lang.Long" db-attribute-path="BIGINT_COLUMN"/>
+        <obj-attribute name="bitColumn" type="java.lang.Boolean" db-attribute-path="BIT_COLUMN"/>
+        <obj-attribute name="booleanColumn" type="java.lang.Boolean" db-attribute-path="BOOLEAN_COLUMN"/>
+        <obj-attribute name="charColumn" type="java.lang.String" db-attribute-path="CHAR_COLUMN"/>
+        <obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/>
+        <obj-attribute name="decimalColumn" type="java.math.BigDecimal" db-attribute-path="DECIMAL_COLUMN"/>
+        <obj-attribute name="doubleColumn" type="java.lang.Double" db-attribute-path="DOUBLE_COLUMN"/>
+        <obj-attribute name="floatColumn" type="java.lang.Float" db-attribute-path="FLOAT_COLUMN"/>
+        <obj-attribute name="integerColumn" type="java.lang.Integer" db-attribute-path="INTEGER_COLUMN"/>
+        <obj-attribute name="longvarcharColumn" type="java.lang.String" db-attribute-path="LONGVARCHAR_COLUMN"/>
+        <obj-attribute name="numericColumn" type="java.math.BigDecimal" db-attribute-path="NUMERIC_COLUMN"/>
+        <obj-attribute name="realColumn" type="java.lang.Float" db-attribute-path="REAL_COLUMN"/>
+        <obj-attribute name="smallintColumn" type="java.lang.Short" db-attribute-path="SMALLINT_COLUMN"/>
+        <obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/>
+        <obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/>
+        <obj-attribute name="tinyintColumn" type="java.lang.Byte" db-attribute-path="TINYINT_COLUMN"/>
+        <obj-attribute name="varcharColumn" type="java.lang.String" db-attribute-path="VARCHAR_COLUMN"/>
+    </obj-entity>
+    <obj-entity name="ReturnTypesMap2" className="org.apache.cayenne.testdo.return_types.ReturnTypesMap2" clientClassName="test.client.ReturnTypesMap2" dbEntityName="TYPES_MAPPING_TEST2" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject">
+        <obj-attribute name="binaryColumn" type="byte[]" db-attribute-path="BINARY_COLUMN"/>
+        <obj-attribute name="blobColumn" type="byte[]" db-attribute-path="BLOB_COLUMN"/>
+        <obj-attribute name="longvarbinaryColumn" type="byte[]" db-attribute-path="LONGVARBINARY_COLUMN"/>
+        <obj-attribute name="varbinaryColumn" type="byte[]" db-attribute-path="VARBINARY_COLUMN"/>
+    </obj-entity>
+    <obj-entity name="ReturnTypesMapLobs1" className="org.apache.cayenne.testdo.return_types.ReturnTypesMapLobs1" clientClassName="test.client.ReturnTypesMapLobs1" dbEntityName="TYPES_MAPPING_LOBS_TEST1" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject">
+        <obj-attribute name="clobColumn" type="java.lang.String" db-attribute-path="CLOB_COLUMN"/>
+    </obj-entity>
+    <query name="SelectReturnTypesLobsMap1" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="return-types">
+        <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+        <sql><![CDATA[SELECT * FROM TYPES_MAPPING_LOBS_TEST1]]></sql>
+    </query>
+    <query name="SelectReturnTypesMap1" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="return-types">
+        <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+        <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/>
+        <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST1]]></sql>
+    </query>
+    <query name="SelectReturnTypesMap2" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="return-types">
+        <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+        <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/>
+        <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST2]]></sql>
+    </query>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/resources/small-testmap.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/small-testmap.map.xml b/cayenne-server/src/test/resources/small-testmap.map.xml
index 6174977..486256e 100644
--- a/cayenne-server/src/test/resources/small-testmap.map.xml
+++ b/cayenne-server/src/test/resources/small-testmap.map.xml
@@ -99,7 +99,7 @@
 		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 		<db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/>
 	</db-entity>
-	<obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.testmap.ArraysEntity" dbEntityName="ARRAYS_ENTITY">
+	<obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.misc_types.ArraysEntity" dbEntityName="ARRAYS_ENTITY">
 		<obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/>
 		<obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/>
 		<obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/>
@@ -114,16 +114,16 @@
 	</obj-entity>
 	<obj-entity name="ArtistExhibit" className="org.apache.cayenne.testdo.testmap.ArtistExhibit" dbEntityName="ARTIST_EXHIBIT">
 	</obj-entity>
-	<obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.testmap.CharacterEntity" dbEntityName="CHARACTER_ENTITY">
+	<obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.misc_types.CharacterEntity" dbEntityName="CHARACTER_ENTITY">
 		<obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/>
 	</obj-entity>
-	<obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.testmap.DateTestEntity" dbEntityName="DATE_TEST">
+	<obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.date_time.DateTestEntity" dbEntityName="DATE_TEST">
 		<obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/>
 		<obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/>
 		<obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/>
 	</obj-entity>
-	<obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.testmap.EnumEntity" dbEntityName="ENUM_ENTITY">
-		<obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.testmap.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/>
+	<obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.enum_test.EnumEntity" dbEntityName="ENUM_ENTITY">
+		<obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.enum_test.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/>
 	</obj-entity>
 	<obj-entity name="Exhibit" className="org.apache.cayenne.testdo.testmap.Exhibit" dbEntityName="EXHIBIT">
 		<obj-attribute name="closingDate" type="java.util.Date" db-attribute-path="CLOSING_DATE"/>