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/08 09:37:31 UTC

[1/4] cayenne git commit: Refactor Multi Tier Project

Repository: cayenne
Updated Branches:
  refs/heads/master 49dd10410 -> fb8660e76


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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/delete-rules.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/delete-rules.map.xml b/cayenne-server/src/test/resources/delete-rules.map.xml
new file mode 100644
index 0000000..9d6f5ed
--- /dev/null
+++ b/cayenne-server/src/test/resources/delete-rules.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.deleterules"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.deleterules"/>
+    <db-entity name="DELETE_CASCADE">
+        <db-attribute name="DELETE_CASCADE_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <db-entity name="DELETE_DENY">
+        <db-attribute name="DELETE_DENY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <db-entity name="DELETE_NULLIFY">
+        <db-attribute name="DELETE_NULLIFY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <db-entity name="DELETE_RULE">
+        <db-attribute name="DELETE_RULE_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" length="200"/>
+    </db-entity>
+    <obj-entity name="DeleteCascade" className="org.apache.cayenne.testdo.deleterules.DeleteCascade" clientClassName="org.apache.cayenne.testdo.deleterules.ClientDeleteCascade" dbEntityName="DELETE_CASCADE">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="DeleteDeny" className="org.apache.cayenne.testdo.deleterules.DeleteDeny" clientClassName="org.apache.cayenne.testdo.deleterules.ClientDeleteDeny" dbEntityName="DELETE_DENY">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="DeleteNullify" className="org.apache.cayenne.testdo.deleterules.DeleteNullify" clientClassName="org.apache.cayenne.testdo.deleterules.ClientDeleteNullify" dbEntityName="DELETE_NULLIFY">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <obj-entity name="DeleteRule" className="org.apache.cayenne.testdo.deleterules.DeleteRule" clientClassName="org.apache.cayenne.testdo.deleterules.ClientDeleteRule" dbEntityName="DELETE_RULE">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <db-relationship name="cascade" source="DELETE_CASCADE" target="DELETE_RULE" toMany="false">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <db-relationship name="deny" source="DELETE_DENY" target="DELETE_RULE" toMany="false">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <db-relationship name="nullify" source="DELETE_NULLIFY" target="DELETE_RULE" toMany="false">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <db-relationship name="fromCascade" source="DELETE_RULE" target="DELETE_CASCADE" toMany="true">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <db-relationship name="fromDeny" source="DELETE_RULE" target="DELETE_DENY" toMany="true">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <db-relationship name="fromNullify" source="DELETE_RULE" target="DELETE_NULLIFY" toMany="true">
+        <db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
+    </db-relationship>
+    <obj-relationship name="cascade" source="DeleteCascade" target="DeleteRule" deleteRule="Cascade" db-relationship-path="cascade"/>
+    <obj-relationship name="deny" source="DeleteDeny" target="DeleteRule" deleteRule="Deny" db-relationship-path="deny"/>
+    <obj-relationship name="nullify" source="DeleteNullify" target="DeleteRule" deleteRule="Nullify" db-relationship-path="nullify"/>
+    <obj-relationship name="fromCascade" source="DeleteRule" target="DeleteCascade" db-relationship-path="fromCascade"/>
+    <obj-relationship name="fromDeny" source="DeleteRule" target="DeleteDeny" db-relationship-path="fromDeny"/>
+    <obj-relationship name="fromNullify" source="DeleteRule" target="DeleteNullify" db-relationship-path="fromNullify"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/lifecycles.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/lifecycles.map.xml b/cayenne-server/src/test/resources/lifecycles.map.xml
new file mode 100644
index 0000000..fdbfc7e
--- /dev/null
+++ b/cayenne-server/src/test/resources/lifecycles.map.xml
@@ -0,0 +1,16 @@
+<?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.lifecycles"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.lifecycles"/>
+    <db-entity name="LIFECYCLES">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
+    </db-entity>
+    <obj-entity name="Lifecycles" className="org.apache.cayenne.testdo.lifecycles.Lifecycles" clientClassName="org.apache.cayenne.testdo.lifecycles.ClientLifecycles" dbEntityName="LIFECYCLES">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/map-to-many.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/map-to-many.map.xml b/cayenne-server/src/test/resources/map-to-many.map.xml
new file mode 100644
index 0000000..bdfd5a4
--- /dev/null
+++ b/cayenne-server/src/test/resources/map-to-many.map.xml
@@ -0,0 +1,57 @@
+<?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.map_to_many"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.map_to_many"/>
+
+    <db-entity name="ID_MAP_TO_MANY">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="ID_MAP_TO_MANY_TARGET">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="MAP_TO_MANY_ID" type="INTEGER"/>
+    </db-entity>
+
+    <db-entity name="MAP_TO_MANY">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="MAP_TO_MANY_TARGET">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="MAP_TO_MANY_ID" type="INTEGER"/>
+        <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
+    </db-entity>
+
+    <obj-entity name="IdMapToMany" className="org.apache.cayenne.testdo.map_to_many.IdMapToMany" clientClassName="org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany" dbEntityName="ID_MAP_TO_MANY">
+    </obj-entity>
+    <obj-entity name="IdMapToManyTarget" className="org.apache.cayenne.testdo.map_to_many.IdMapToManyTarget" clientClassName="org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget" dbEntityName="ID_MAP_TO_MANY_TARGET">
+    </obj-entity>
+
+    <obj-entity name="MapToMany" className="org.apache.cayenne.testdo.map_to_many.MapToMany" dbEntityName="MAP_TO_MANY">
+    </obj-entity>
+    <obj-entity name="MapToManyTarget" className="org.apache.cayenne.testdo.map_to_many.MapToManyTarget" dbEntityName="MAP_TO_MANY_TARGET">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+
+    <db-relationship name="targets" source="ID_MAP_TO_MANY" target="ID_MAP_TO_MANY_TARGET" toMany="true">
+        <db-attribute-pair source="ID" target="MAP_TO_MANY_ID"/>
+    </db-relationship>
+    <db-relationship name="mapToMany" source="ID_MAP_TO_MANY_TARGET" target="ID_MAP_TO_MANY" toMany="false">
+        <db-attribute-pair source="MAP_TO_MANY_ID" target="ID"/>
+    </db-relationship>
+
+    <db-relationship name="targets" source="MAP_TO_MANY" target="MAP_TO_MANY_TARGET" toMany="true">
+        <db-attribute-pair source="ID" target="MAP_TO_MANY_ID"/>
+    </db-relationship>
+    <db-relationship name="mapToMany" source="MAP_TO_MANY_TARGET" target="MAP_TO_MANY" toMany="false">
+        <db-attribute-pair source="MAP_TO_MANY_ID" target="ID"/>
+    </db-relationship>
+
+    <obj-relationship name="targets" source="IdMapToMany" target="IdMapToManyTarget" collection-type="java.util.Map" db-relationship-path="targets"/>
+    <obj-relationship name="mapToMany" source="IdMapToManyTarget" target="IdMapToMany" db-relationship-path="mapToMany"/>
+
+    <obj-relationship name="targets" source="MapToMany" target="MapToManyTarget" collection-type="java.util.Map" map-key="name" db-relationship-path="targets"/>
+    <obj-relationship name="mapToMany" source="MapToManyTarget" target="MapToMany" db-relationship-path="mapToMany"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/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
new file mode 100644
index 0000000..fdddca4
--- /dev/null
+++ b/cayenne-server/src/test/resources/meaningful-pk.map.xml
@@ -0,0 +1,15 @@
+<?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.meaningful_pk"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.meaningful_pk"/>
+    <db-entity name="MEANINGFUL_PK">
+        <db-attribute name="PK" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="100"/>
+    </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>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/multi-tier.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/multi-tier.map.xml b/cayenne-server/src/test/resources/multi-tier.map.xml
index ce494ac..04257c6 100644
--- a/cayenne-server/src/test/resources/multi-tier.map.xml
+++ b/cayenne-server/src/test/resources/multi-tier.map.xml
@@ -6,57 +6,10 @@
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.mt"/>
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="org.apache.cayenne.testdo.mt"/>
-	<db-entity name="CONTINENT">
-		<db-attribute name="CONTINENTD" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
-	</db-entity>
-	<db-entity name="COUNTRY">
-		<db-attribute name="CONTINENTID" type="BIGINT" isMandatory="true"/>
-		<db-attribute name="COUNTRYID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
-	</db-entity>
-	<db-entity name="MT_DELETE_CASCADE">
-		<db-attribute name="DELETE_CASCADE_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
-		<db-attribute name="NAME" type="VARCHAR" length="200"/>
-	</db-entity>
-	<db-entity name="MT_DELETE_DENY">
-		<db-attribute name="DELETE_DENY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
-		<db-attribute name="NAME" type="VARCHAR" length="200"/>
-	</db-entity>
-	<db-entity name="MT_DELETE_NULLIFY">
-		<db-attribute name="DELETE_NULLIFY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="DELETE_RULE_ID" type="INTEGER"/>
-		<db-attribute name="NAME" type="VARCHAR" length="200"/>
-	</db-entity>
-	<db-entity name="MT_DELETE_RULE">
-		<db-attribute name="DELETE_RULE_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" length="200"/>
-	</db-entity>
 	<db-entity name="MT_JOIN45">
 		<db-attribute name="TABLE4_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 		<db-attribute name="TABLE5_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 	</db-entity>
-	<db-entity name="MT_LIFECYCLES">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
-	</db-entity>
-	<db-entity name="MT_MAP_TO_MANY">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="MT_MAP_TO_MANY_TARGET">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="MAP_TO_MANY_ID" type="INTEGER"/>
-	</db-entity>
-	<db-entity name="MT_MEANINGFUL_PK">
-		<db-attribute name="PK" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="100"/>
-	</db-entity>
-	<db-entity name="MT_REFLEXIVE">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="200"/>
-		<db-attribute name="PARENT_ID" type="INTEGER"/>
-	</db-entity>
 	<db-entity name="MT_TABLE1">
 		<db-attribute name="GLOBAL_ATTRIBUTE1" type="VARCHAR" length="100"/>
 		<db-attribute name="SERVER_ATTRIBUTE1" type="VARCHAR" length="100"/>
@@ -81,48 +34,6 @@
 	<db-entity name="MT_TABLE5">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 	</db-entity>
-	<db-entity name="MT_TABLE_PRIMITIVES">
-		<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>
-	<db-entity name="MT_TOONE_DEP">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="MT_TOONE_MASTER">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<obj-entity name="Continent" className="org.apache.cayenne.testdo.persistent.Continent" clientClassName="org.apache.cayenne.testdo.persistent.Continent" dbEntityName="CONTINENT" superClassName="org.apache.cayenne.PersistentObject">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="Country" className="org.apache.cayenne.testdo.persistent.Country" clientClassName="org.apache.cayenne.testdo.persistent.Country" dbEntityName="COUNTRY" superClassName="org.apache.cayenne.PersistentObject">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtDeleteCascade" className="org.apache.cayenne.testdo.mt.MtDeleteCascade" clientClassName="org.apache.cayenne.testdo.mt.ClientMtDeleteCascade" dbEntityName="MT_DELETE_CASCADE">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtDeleteDeny" className="org.apache.cayenne.testdo.mt.MtDeleteDeny" clientClassName="org.apache.cayenne.testdo.mt.ClientMtDeleteDeny" dbEntityName="MT_DELETE_DENY">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtDeleteNullify" className="org.apache.cayenne.testdo.mt.MtDeleteNullify" clientClassName="org.apache.cayenne.testdo.mt.ClientMtDeleteNullify" dbEntityName="MT_DELETE_NULLIFY">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtDeleteRule" className="org.apache.cayenne.testdo.mt.MtDeleteRule" clientClassName="org.apache.cayenne.testdo.mt.ClientMtDeleteRule" dbEntityName="MT_DELETE_RULE">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtLifecycles" className="org.apache.cayenne.testdo.mt.MtLifecycles" clientClassName="org.apache.cayenne.testdo.mt.ClientMtLifecycles" dbEntityName="MT_LIFECYCLES">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="MtMapToMany" className="org.apache.cayenne.testdo.mt.MtMapToMany" clientClassName="org.apache.cayenne.testdo.mt.ClientMtMapToMany" dbEntityName="MT_MAP_TO_MANY">
-	</obj-entity>
-	<obj-entity name="MtMapToManyTarget" className="org.apache.cayenne.testdo.mt.MtMapToManyTarget" clientClassName="org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget" dbEntityName="MT_MAP_TO_MANY_TARGET">
-	</obj-entity>
-	<obj-entity name="MtMeaningfulPk" className="org.apache.cayenne.testdo.mt.MtMeaningfulPk" clientClassName="org.apache.cayenne.testdo.mt.ClientMtMeaningfulPk" dbEntityName="MT_MEANINGFUL_PK">
-		<obj-attribute name="pk" type="java.lang.String" db-attribute-path="PK"/>
-	</obj-entity>
-	<obj-entity name="MtReflexive" className="org.apache.cayenne.testdo.mt.MtReflexive" clientClassName="org.apache.cayenne.testdo.mt.ClientMtReflexive" dbEntityName="MT_REFLEXIVE">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
 	<obj-entity name="MtTable1" className="org.apache.cayenne.testdo.mt.MtTable1" clientClassName="org.apache.cayenne.testdo.mt.ClientMtTable1" dbEntityName="MT_TABLE1">
 		<obj-attribute name="globalAttribute1" type="java.lang.String" db-attribute-path="GLOBAL_ATTRIBUTE1"/>
 		<obj-attribute name="serverAttribute1" type="java.lang.String" db-attribute-path="SERVER_ATTRIBUTE1"/>
@@ -147,56 +58,12 @@
 	</obj-entity>
 	<obj-entity name="MtTable5" className="org.apache.cayenne.testdo.mt.MtTable5" clientClassName="org.apache.cayenne.testdo.mt.ClientMtTable5" dbEntityName="MT_TABLE5">
 	</obj-entity>
-	<obj-entity name="MtTablePrimitives" className="org.apache.cayenne.testdo.mt.MtTablePrimitives" clientClassName="org.apache.cayenne.testdo.mt.ClientMtTablePrimitives" dbEntityName="MT_TABLE_PRIMITIVES">
-		<obj-attribute name="booleanColumn" type="boolean" db-attribute-path="BOOLEAN_COLUMN"/>
-		<obj-attribute name="intColumn" type="int" db-attribute-path="INT_COLUMN"/>
-	</obj-entity>
-	<obj-entity name="MtTooneDep" className="org.apache.cayenne.testdo.mt.MtTooneDep" clientClassName="org.apache.cayenne.testdo.mt.ClientMtTooneDep" dbEntityName="MT_TOONE_DEP">
-	</obj-entity>
-	<obj-entity name="MtTooneMaster" className="org.apache.cayenne.testdo.mt.MtTooneMaster" clientClassName="org.apache.cayenne.testdo.mt.ClientMtTooneMaster" dbEntityName="MT_TOONE_MASTER">
-	</obj-entity>
-	<db-relationship name="countries" source="CONTINENT" target="COUNTRY" toMany="true">
-		<db-attribute-pair source="CONTINENTD" target="CONTINENTID"/>
-	</db-relationship>
-	<db-relationship name="continent" source="COUNTRY" target="CONTINENT" toMany="false">
-		<db-attribute-pair source="CONTINENTID" target="CONTINENTD"/>
-	</db-relationship>
-	<db-relationship name="cascade" source="MT_DELETE_CASCADE" target="MT_DELETE_RULE" toMany="false">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
-	<db-relationship name="deny" source="MT_DELETE_DENY" target="MT_DELETE_RULE" toMany="false">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
-	<db-relationship name="nullify" source="MT_DELETE_NULLIFY" target="MT_DELETE_RULE" toMany="false">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
-	<db-relationship name="fromCascade" source="MT_DELETE_RULE" target="MT_DELETE_CASCADE" toMany="true">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
-	<db-relationship name="fromDeny" source="MT_DELETE_RULE" target="MT_DELETE_DENY" toMany="true">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
-	<db-relationship name="fromNullify" source="MT_DELETE_RULE" target="MT_DELETE_NULLIFY" toMany="true">
-		<db-attribute-pair source="DELETE_RULE_ID" target="DELETE_RULE_ID"/>
-	</db-relationship>
 	<db-relationship name="toTable4" source="MT_JOIN45" target="MT_TABLE4" toMany="false">
 		<db-attribute-pair source="TABLE4_ID" target="ID"/>
 	</db-relationship>
 	<db-relationship name="toTable5" source="MT_JOIN45" target="MT_TABLE5" toMany="false">
 		<db-attribute-pair source="TABLE5_ID" target="ID"/>
 	</db-relationship>
-	<db-relationship name="targets" source="MT_MAP_TO_MANY" target="MT_MAP_TO_MANY_TARGET" toMany="true">
-		<db-attribute-pair source="ID" target="MAP_TO_MANY_ID"/>
-	</db-relationship>
-	<db-relationship name="mapToMany" source="MT_MAP_TO_MANY_TARGET" target="MT_MAP_TO_MANY" toMany="false">
-		<db-attribute-pair source="MAP_TO_MANY_ID" target="ID"/>
-	</db-relationship>
-	<db-relationship name="children" source="MT_REFLEXIVE" target="MT_REFLEXIVE" toMany="true">
-		<db-attribute-pair source="ID" target="PARENT_ID"/>
-	</db-relationship>
-	<db-relationship name="toParent" source="MT_REFLEXIVE" target="MT_REFLEXIVE" toMany="false">
-		<db-attribute-pair source="PARENT_ID" target="ID"/>
-	</db-relationship>
 	<db-relationship name="table2Array" source="MT_TABLE1" target="MT_TABLE2" toMany="true">
 		<db-attribute-pair source="TABLE1_ID" target="TABLE1_ID"/>
 	</db-relationship>
@@ -215,32 +82,12 @@
 	<db-relationship name="joins" source="MT_TABLE5" target="MT_JOIN45" toMany="true">
 		<db-attribute-pair source="ID" target="TABLE5_ID"/>
 	</db-relationship>
-	<db-relationship name="toMaster" source="MT_TOONE_DEP" target="MT_TOONE_MASTER" toMany="false">
-		<db-attribute-pair source="ID" target="ID"/>
-	</db-relationship>
-	<db-relationship name="toDependent" source="MT_TOONE_MASTER" target="MT_TOONE_DEP" toDependentPK="true" toMany="false">
-		<db-attribute-pair source="ID" target="ID"/>
-	</db-relationship>
-	<obj-relationship name="countries" source="Continent" target="Country" deleteRule="Cascade" db-relationship-path="countries"/>
-	<obj-relationship name="continent" source="Country" target="Continent" deleteRule="Nullify" db-relationship-path="continent"/>
-	<obj-relationship name="cascade" source="MtDeleteCascade" target="MtDeleteRule" deleteRule="Cascade" db-relationship-path="cascade"/>
-	<obj-relationship name="deny" source="MtDeleteDeny" target="MtDeleteRule" deleteRule="Deny" db-relationship-path="deny"/>
-	<obj-relationship name="nullify" source="MtDeleteNullify" target="MtDeleteRule" deleteRule="Nullify" db-relationship-path="nullify"/>
-	<obj-relationship name="fromCascade" source="MtDeleteRule" target="MtDeleteCascade" db-relationship-path="fromCascade"/>
-	<obj-relationship name="fromDeny" source="MtDeleteRule" target="MtDeleteDeny" db-relationship-path="fromDeny"/>
-	<obj-relationship name="fromNullify" source="MtDeleteRule" target="MtDeleteNullify" db-relationship-path="fromNullify"/>
-	<obj-relationship name="targets" source="MtMapToMany" target="MtMapToManyTarget" collection-type="java.util.Map" db-relationship-path="targets"/>
-	<obj-relationship name="mapToMany" source="MtMapToManyTarget" target="MtMapToMany" db-relationship-path="mapToMany"/>
-	<obj-relationship name="children" source="MtReflexive" target="MtReflexive" db-relationship-path="children"/>
-	<obj-relationship name="toParent" source="MtReflexive" target="MtReflexive" db-relationship-path="toParent"/>
 	<obj-relationship name="table2Array" source="MtTable1" target="MtTable2" db-relationship-path="table2Array"/>
 	<obj-relationship name="table1" source="MtTable2" target="MtTable1" db-relationship-path="table1"/>
 	<obj-relationship name="table3" source="MtTable2" target="MtTable3" deleteRule="Nullify" db-relationship-path="table3"/>
 	<obj-relationship name="table2Array" source="MtTable3" target="MtTable2" deleteRule="Deny" db-relationship-path="table2Array"/>
 	<obj-relationship name="table5s" source="MtTable4" target="MtTable5" db-relationship-path="joins.toTable5"/>
 	<obj-relationship name="table4s" source="MtTable5" target="MtTable4" db-relationship-path="joins.toTable4"/>
-	<obj-relationship name="toMaster" source="MtTooneDep" target="MtTooneMaster" deleteRule="Nullify" db-relationship-path="toMaster"/>
-	<obj-relationship name="toDependent" source="MtTooneMaster" target="MtTooneDep" deleteRule="Cascade" db-relationship-path="toDependent"/>
 	<query name="AllMtTable1" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="MtTable1">
 	</query>
 	<query name="MtQueryWithLocalCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="MtTable1">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/persistent.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/persistent.map.xml b/cayenne-server/src/test/resources/persistent.map.xml
new file mode 100644
index 0000000..7e50534
--- /dev/null
+++ b/cayenne-server/src/test/resources/persistent.map.xml
@@ -0,0 +1,32 @@
+<?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.persistent"/>
+	<property name="clientSupported" value="true"/>
+	<property name="defaultClientPackage" value="org.apache.cayenne.testdo.persistent"/>
+	<db-entity name="CONTINENT">
+		<db-attribute name="CONTINENTD" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
+	</db-entity>
+	<db-entity name="COUNTRY">
+		<db-attribute name="CONTINENTID" type="BIGINT" isMandatory="true"/>
+		<db-attribute name="COUNTRYID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
+	</db-entity>
+	<obj-entity name="Continent" className="org.apache.cayenne.testdo.persistent.Continent" clientClassName="org.apache.cayenne.testdo.persistent.Continent" dbEntityName="CONTINENT" superClassName="org.apache.cayenne.PersistentObject">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="Country" className="org.apache.cayenne.testdo.persistent.Country" clientClassName="org.apache.cayenne.testdo.persistent.Country" dbEntityName="COUNTRY" superClassName="org.apache.cayenne.PersistentObject">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<db-relationship name="countries" source="CONTINENT" target="COUNTRY" toMany="true">
+		<db-attribute-pair source="CONTINENTD" target="CONTINENTID"/>
+	</db-relationship>
+	<db-relationship name="continent" source="COUNTRY" target="CONTINENT" toMany="false">
+		<db-attribute-pair source="CONTINENTID" target="CONTINENTD"/>
+	</db-relationship>
+	<obj-relationship name="countries" source="Continent" target="Country" deleteRule="Cascade" db-relationship-path="countries"/>
+	<obj-relationship name="continent" source="Country" target="Continent" deleteRule="Nullify" db-relationship-path="continent"/>
+</data-map>	
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/reflexive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/reflexive.map.xml b/cayenne-server/src/test/resources/reflexive.map.xml
new file mode 100644
index 0000000..28fbf77
--- /dev/null
+++ b/cayenne-server/src/test/resources/reflexive.map.xml
@@ -0,0 +1,25 @@
+<?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.reflexive"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.reflexive"/>
+    <db-entity name="REFLEXIVE">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+        <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="200"/>
+        <db-attribute name="PARENT_ID" type="INTEGER"/>
+    </db-entity>
+    <obj-entity name="Reflexive" className="org.apache.cayenne.testdo.reflexive.Reflexive" clientClassName="org.apache.cayenne.testdo.reflexive.ClientReflexive" dbEntityName="REFLEXIVE">
+        <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+    </obj-entity>
+    <db-relationship name="children" source="REFLEXIVE" target="REFLEXIVE" toMany="true">
+        <db-attribute-pair source="ID" target="PARENT_ID"/>
+    </db-relationship>
+    <db-relationship name="toParent" source="REFLEXIVE" target="REFLEXIVE" toMany="false">
+        <db-attribute-pair source="PARENT_ID" target="ID"/>
+    </db-relationship>
+    <obj-relationship name="children" source="Reflexive" target="Reflexive" db-relationship-path="children"/>
+    <obj-relationship name="toParent" source="Reflexive" target="Reflexive" db-relationship-path="toParent"/>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/relationships.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships.map.xml b/cayenne-server/src/test/resources/relationships.map.xml
index d1fc117..85ce607 100644
--- a/cayenne-server/src/test/resources/relationships.map.xml
+++ b/cayenne-server/src/test/resources/relationships.map.xml
@@ -82,21 +82,6 @@
 		<db-attribute name="FT4_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
 	</db-entity>
-	<db-entity name="ID_MAP_TO_MANY">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="ID_MAP_TO_MANY_TARGET">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="MAP_TO_MANY_ID" type="INTEGER"/>
-	</db-entity>
-	<db-entity name="MAP_TO_MANY">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="MAP_TO_MANY_TARGET">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="MAP_TO_MANY_ID" type="INTEGER"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
-	</db-entity>
 	<db-entity name="MASTER">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 		<db-attribute name="NAME" type="VARCHAR" length="100"/>
@@ -182,15 +167,6 @@
 	<obj-entity name="FlattenedTest4" className="org.apache.cayenne.testdo.relationship.FlattenedTest4" dbEntityName="FLATTENED_TEST_4">
 		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
 	</obj-entity>
-	<obj-entity name="IdMapToMany" className="org.apache.cayenne.testdo.relationship.IdMapToMany" dbEntityName="ID_MAP_TO_MANY">
-	</obj-entity>
-	<obj-entity name="IdMapToManyTarget" className="org.apache.cayenne.testdo.relationship.IdMapToManyTarget" dbEntityName="ID_MAP_TO_MANY_TARGET">
-	</obj-entity>
-	<obj-entity name="MapToMany" className="org.apache.cayenne.testdo.relationship.MapToMany" dbEntityName="MAP_TO_MANY">
-	</obj-entity>
-	<obj-entity name="MapToManyTarget" className="org.apache.cayenne.testdo.relationship.MapToManyTarget" dbEntityName="MAP_TO_MANY_TARGET">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
 	<obj-entity name="Master" className="org.apache.cayenne.testdo.relationship.Master" dbEntityName="MASTER">
 		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
 	</obj-entity>
@@ -309,18 +285,6 @@
 	<db-relationship name="toFT3" source="FLATTENED_TEST_4" target="FLATTENED_TEST_3" toMany="false">
 		<db-attribute-pair source="FT3_ID" target="FT3_ID"/>
 	</db-relationship>
-	<db-relationship name="targets" source="ID_MAP_TO_MANY" target="ID_MAP_TO_MANY_TARGET" toMany="true">
-		<db-attribute-pair source="ID" target="MAP_TO_MANY_ID"/>
-	</db-relationship>
-	<db-relationship name="mapToMany" source="ID_MAP_TO_MANY_TARGET" target="ID_MAP_TO_MANY" toMany="false">
-		<db-attribute-pair source="MAP_TO_MANY_ID" target="ID"/>
-	</db-relationship>
-	<db-relationship name="targets" source="MAP_TO_MANY" target="MAP_TO_MANY_TARGET" toMany="true">
-		<db-attribute-pair source="ID" target="MAP_TO_MANY_ID"/>
-	</db-relationship>
-	<db-relationship name="mapToMany" source="MAP_TO_MANY_TARGET" target="MAP_TO_MANY" toMany="false">
-		<db-attribute-pair source="MAP_TO_MANY_ID" target="ID"/>
-	</db-relationship>
 	<db-relationship name="children" source="MASTER" target="CHILD" toMany="true">
 		<db-attribute-pair source="ID" target="MASTER_ID"/>
 	</db-relationship>
@@ -393,10 +357,6 @@
 	<obj-relationship name="toFT1" source="FlattenedTest3" target="FlattenedTest1" db-relationship-path="toFT2.toFT1"/>
 	<obj-relationship name="toFT2" source="FlattenedTest3" target="FlattenedTest2" db-relationship-path="toFT2"/>
 	<obj-relationship name="toFT3" source="FlattenedTest4" target="FlattenedTest3" db-relationship-path="toFT3"/>
-	<obj-relationship name="targets" source="IdMapToMany" target="IdMapToManyTarget" collection-type="java.util.Map" db-relationship-path="targets"/>
-	<obj-relationship name="mapToMany" source="IdMapToManyTarget" target="IdMapToMany" db-relationship-path="mapToMany"/>
-	<obj-relationship name="targets" source="MapToMany" target="MapToManyTarget" collection-type="java.util.Map" map-key="name" db-relationship-path="targets"/>
-	<obj-relationship name="mapToMany" source="MapToManyTarget" target="MapToMany" db-relationship-path="mapToMany"/>
 	<obj-relationship name="children" source="Master" target="Child" deleteRule="Deny" db-relationship-path="children"/>
 	<obj-relationship name="toRelationshipHelper" source="MeaningfulFK" target="RelationshipHelper" db-relationship-path="toRelationshipHelper"/>
 	<obj-relationship name="children" source="ReflexiveAndToOne" target="ReflexiveAndToOne" db-relationship-path="children"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/table-primitives.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/table-primitives.map.xml b/cayenne-server/src/test/resources/table-primitives.map.xml
new file mode 100644
index 0000000..a2c3c23
--- /dev/null
+++ b/cayenne-server/src/test/resources/table-primitives.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.table_primitives"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.table_primitives"/>
+    <db-entity name="TABLE_PRIMITIVES">
+        <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="TablePrimitives" className="org.apache.cayenne.testdo.table_primitives.TablePrimitives" clientClassName="org.apache.cayenne.testdo.table_primitives.ClientTablePrimitives" dbEntityName="TABLE_PRIMITIVES">
+        <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/fb8660e7/cayenne-server/src/test/resources/toone.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/toone.map.xml b/cayenne-server/src/test/resources/toone.map.xml
new file mode 100644
index 0000000..5a30192
--- /dev/null
+++ b/cayenne-server/src/test/resources/toone.map.xml
@@ -0,0 +1,27 @@
+<?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.toone"/>
+    <property name="clientSupported" value="true"/>
+    <property name="defaultClientPackage" value="org.apache.cayenne.testdo.toone"/>
+    <db-entity name="TOONE_DEP">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <db-entity name="TOONE_MASTER">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+    <obj-entity name="TooneDep" className="org.apache.cayenne.testdo.toone.TooneDep" clientClassName="org.apache.cayenne.testdo.toone.ClientTooneDep" dbEntityName="TOONE_DEP">
+    </obj-entity>
+    <obj-entity name="TooneMaster" className="org.apache.cayenne.testdo.toone.TooneMaster" clientClassName="org.apache.cayenne.testdo.toone.ClientTooneMaster" dbEntityName="TOONE_MASTER">
+    </obj-entity>
+    <db-relationship name="toMaster" source="TOONE_DEP" target="TOONE_MASTER" toMany="false">
+        <db-attribute-pair source="ID" target="ID"/>
+    </db-relationship>
+    <db-relationship name="toDependent" source="TOONE_MASTER" target="TOONE_DEP" toDependentPK="true" toMany="false">
+        <db-attribute-pair source="ID" target="ID"/>
+    </db-relationship>
+    <obj-relationship name="toMaster" source="TooneDep" target="TooneMaster" deleteRule="Nullify" db-relationship-path="toMaster"/>
+    <obj-relationship name="toDependent" source="TooneMaster" target="TooneDep" deleteRule="Cascade" db-relationship-path="toDependent"/>
+</data-map>
\ No newline at end of file


[3/4] cayenne git commit: Refactor Multi Tier Project

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteDeny.java
new file mode 100644
index 0000000..4b5069c
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteDeny.java
@@ -0,0 +1,35 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.deleterules.DeleteRule;
+
+/**
+ * Class _DeleteDeny was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _DeleteDeny extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String DENY_PROPERTY = "deny";
+
+    public static final String DELETE_DENY_ID_PK_COLUMN = "DELETE_DENY_ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void setDeny(DeleteRule deny) {
+        setToOneTarget(DENY_PROPERTY, deny, true);
+    }
+
+    public DeleteRule getDeny() {
+        return (DeleteRule)readProperty(DENY_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteNullify.java
new file mode 100644
index 0000000..10906cb
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteNullify.java
@@ -0,0 +1,35 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.deleterules.DeleteRule;
+
+/**
+ * Class _DeleteNullify was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _DeleteNullify extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String NULLIFY_PROPERTY = "nullify";
+
+    public static final String DELETE_NULLIFY_ID_PK_COLUMN = "DELETE_NULLIFY_ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void setNullify(DeleteRule nullify) {
+        setToOneTarget(NULLIFY_PROPERTY, nullify, true);
+    }
+
+    public DeleteRule getNullify() {
+        return (DeleteRule)readProperty(NULLIFY_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteRule.java
new file mode 100644
index 0000000..6dedf75
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteRule.java
@@ -0,0 +1,68 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.deleterules.DeleteCascade;
+import org.apache.cayenne.testdo.deleterules.DeleteDeny;
+import org.apache.cayenne.testdo.deleterules.DeleteNullify;
+
+import java.util.List;
+
+/**
+ * Class _DeleteRule was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _DeleteRule extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
+    public static final String FROM_DENY_PROPERTY = "fromDeny";
+    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
+
+    public static final String DELETE_RULE_ID_PK_COLUMN = "DELETE_RULE_ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void addToFromCascade(DeleteCascade obj) {
+        addToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
+    }
+    public void removeFromFromCascade(DeleteCascade obj) {
+        removeToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public List<DeleteCascade> getFromCascade() {
+        return (List<DeleteCascade>)readProperty(FROM_CASCADE_PROPERTY);
+    }
+
+
+    public void addToFromDeny(DeleteDeny obj) {
+        addToManyTarget(FROM_DENY_PROPERTY, obj, true);
+    }
+    public void removeFromFromDeny(DeleteDeny obj) {
+        removeToManyTarget(FROM_DENY_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public List<DeleteDeny> getFromDeny() {
+        return (List<DeleteDeny>)readProperty(FROM_DENY_PROPERTY);
+    }
+
+
+    public void addToFromNullify(DeleteNullify obj) {
+        addToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
+    }
+    public void removeFromFromNullify(DeleteNullify obj) {
+        removeToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public List<DeleteNullify> getFromNullify() {
+        return (List<DeleteNullify>)readProperty(FROM_NULLIFY_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/ClientLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/ClientLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/ClientLifecycles.java
new file mode 100644
index 0000000..766cdc6
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/ClientLifecycles.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.lifecycles;
+
+import org.apache.cayenne.testdo.lifecycles.auto._ClientLifecycles;
+
+/**
+ * A persistent class mapped as "Lifecycles" Cayenne entity.
+ */
+public class ClientLifecycles extends _ClientLifecycles {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/Lifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/Lifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/Lifecycles.java
new file mode 100644
index 0000000..23d34d4
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/Lifecycles.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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.testdo.lifecycles;
+
+import org.apache.cayenne.testdo.lifecycles.auto._Lifecycles;
+
+public class Lifecycles extends _Lifecycles {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_ClientLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_ClientLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_ClientLifecycles.java
new file mode 100644
index 0000000..fa9ccd2
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_ClientLifecycles.java
@@ -0,0 +1,37 @@
+package org.apache.cayenne.testdo.lifecycles.auto;
+
+import org.apache.cayenne.PersistentObject;
+
+/**
+ * A generated persistent class mapped as "Lifecycles" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientLifecycles extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+
+    protected String name;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_Lifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_Lifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_Lifecycles.java
new file mode 100644
index 0000000..a101cd9
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycles/auto/_Lifecycles.java
@@ -0,0 +1,24 @@
+package org.apache.cayenne.testdo.lifecycles.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _Lifecycles was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _Lifecycles extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToMany.java
new file mode 100644
index 0000000..c52355e
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToMany.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._ClientIdMapToMany;
+
+/**
+ * A persistent class mapped as "IdMapToMany" Cayenne entity.
+ */
+public class ClientIdMapToMany extends _ClientIdMapToMany {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToManyTarget.java
new file mode 100644
index 0000000..2c93399
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/ClientIdMapToManyTarget.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._ClientIdMapToManyTarget;
+
+/**
+ * A persistent class mapped as "IdMapToManyTarget" Cayenne entity.
+ */
+public class ClientIdMapToManyTarget extends _ClientIdMapToManyTarget {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToMany.java
new file mode 100644
index 0000000..6552782
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToMany.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._IdMapToMany;
+
+public class IdMapToMany extends _IdMapToMany {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToManyTarget.java
new file mode 100644
index 0000000..9feabdf
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/IdMapToManyTarget.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._IdMapToManyTarget;
+
+public class IdMapToManyTarget extends _IdMapToManyTarget {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToMany.java
new file mode 100644
index 0000000..5fdca59
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToMany.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._MapToMany;
+
+public class MapToMany extends _MapToMany {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToManyTarget.java
new file mode 100644
index 0000000..2834513
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/MapToManyTarget.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.map_to_many;
+
+import org.apache.cayenne.testdo.map_to_many.auto._MapToManyTarget;
+
+public class MapToManyTarget extends _MapToManyTarget {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToMany.java
new file mode 100644
index 0000000..43ca171
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToMany.java
@@ -0,0 +1,41 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget;
+
+import java.util.Map;
+
+/**
+ * A generated persistent class mapped as "IdMapToMany" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientIdMapToMany extends PersistentObject {
+
+    public static final String TARGETS_PROPERTY = "targets";
+
+    protected Map<Object, ClientIdMapToManyTarget> targets;
+
+    public Map<Object, ClientIdMapToManyTarget> getTargets() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "targets", true);
+        }
+
+        return targets;
+    }
+	public void addToTargets(ClientIdMapToManyTarget object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "targets", true);
+        }
+
+        this.targets.put(getMapKey("targets", object), object);
+    }
+    public void removeFromTargets(ClientIdMapToManyTarget object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "targets", true);
+        }
+
+        this.targets.remove(getMapKey("targets", object));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToManyTarget.java
new file mode 100644
index 0000000..e194447
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_ClientIdMapToManyTarget.java
@@ -0,0 +1,33 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany;
+
+/**
+ * A generated persistent class mapped as "IdMapToManyTarget" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientIdMapToManyTarget extends PersistentObject {
+
+    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
+
+    protected ValueHolder mapToMany;
+
+    public ClientIdMapToMany getMapToMany() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "mapToMany", true);
+        }
+
+        return (ClientIdMapToMany) mapToMany.getValue();
+    }
+    public void setMapToMany(ClientIdMapToMany mapToMany) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "mapToMany", true);
+        }
+
+        this.mapToMany.setValue(mapToMany);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToMany.java
new file mode 100644
index 0000000..bbe1040
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToMany.java
@@ -0,0 +1,32 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.map_to_many.IdMapToManyTarget;
+
+import java.util.Map;
+
+/**
+ * Class _IdMapToMany was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _IdMapToMany extends CayenneDataObject {
+
+    public static final String TARGETS_PROPERTY = "targets";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void addToTargets(IdMapToManyTarget obj) {
+        addToManyTarget(TARGETS_PROPERTY, obj, true);
+    }
+    public void removeFromTargets(IdMapToManyTarget obj) {
+        removeToManyTarget(TARGETS_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public Map<Object, IdMapToManyTarget> getTargets() {
+        return (Map<Object, IdMapToManyTarget>)readProperty(TARGETS_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToManyTarget.java
new file mode 100644
index 0000000..b03e6c0
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_IdMapToManyTarget.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.map_to_many.IdMapToMany;
+
+/**
+ * Class _IdMapToManyTarget was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _IdMapToManyTarget extends CayenneDataObject {
+
+    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setMapToMany(IdMapToMany idMapToMany) {
+        setToOneTarget(MAP_TO_MANY_PROPERTY, idMapToMany, true);
+    }
+
+    public IdMapToMany getMapToMany() {
+        return (IdMapToMany)readProperty(MAP_TO_MANY_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToMany.java
new file mode 100644
index 0000000..063c365
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToMany.java
@@ -0,0 +1,32 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.map_to_many.MapToManyTarget;
+
+import java.util.Map;
+
+/**
+ * Class _MapToMany was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _MapToMany extends CayenneDataObject {
+
+    public static final String TARGETS_PROPERTY = "targets";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void addToTargets(MapToManyTarget obj) {
+        addToManyTarget(TARGETS_PROPERTY, obj, true);
+    }
+    public void removeFromTargets(MapToManyTarget obj) {
+        removeToManyTarget(TARGETS_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public Map<String, MapToManyTarget> getTargets() {
+        return (Map<String, MapToManyTarget>)readProperty(TARGETS_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToManyTarget.java
new file mode 100644
index 0000000..66c8e90
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/map_to_many/auto/_MapToManyTarget.java
@@ -0,0 +1,35 @@
+package org.apache.cayenne.testdo.map_to_many.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.map_to_many.MapToMany;
+
+/**
+ * Class _MapToManyTarget was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _MapToManyTarget extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void setMapToMany(MapToMany mapToMany) {
+        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
+    }
+
+    public MapToMany getMapToMany() {
+        return (MapToMany)readProperty(MAP_TO_MANY_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/ClientMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/ClientMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/ClientMeaningfulPk.java
new file mode 100644
index 0000000..4ff76ee
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/ClientMeaningfulPk.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.meaningful_pk;
+
+import org.apache.cayenne.testdo.meaningful_pk.auto._ClientMeaningfulPk;
+
+/**
+ * A persistent class mapped as "MeaningfulPk" Cayenne entity.
+ */
+public class ClientMeaningfulPk extends _ClientMeaningfulPk {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/MeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/MeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/MeaningfulPk.java
new file mode 100644
index 0000000..01f7006
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/MeaningfulPk.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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.testdo.meaningful_pk;
+
+import org.apache.cayenne.testdo.meaningful_pk.auto._MeaningfulPk;
+
+public class MeaningfulPk extends _MeaningfulPk {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_ClientMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_ClientMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_ClientMeaningfulPk.java
new file mode 100644
index 0000000..6c9be4b
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_ClientMeaningfulPk.java
@@ -0,0 +1,37 @@
+package org.apache.cayenne.testdo.meaningful_pk.auto;
+
+import org.apache.cayenne.PersistentObject;
+
+/**
+ * A generated persistent class mapped as "MeaningfulPk" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientMeaningfulPk extends PersistentObject {
+
+    public static final String PK_PROPERTY = "pk";
+
+    protected String pk;
+
+    public String getPk() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "pk", false);
+        }
+
+        return pk;
+    }
+    public void setPk(String pk) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "pk", false);
+        }
+
+        Object oldValue = this.pk;
+        this.pk = pk;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "pk", oldValue, pk);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPk.java
new file mode 100644
index 0000000..8e53c38
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPk.java
@@ -0,0 +1,24 @@
+package org.apache.cayenne.testdo.meaningful_pk.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _MeaningfulPk was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _MeaningfulPk extends CayenneDataObject {
+
+    public static final String PK_PROPERTY = "pk";
+
+    public static final String PK_PK_COLUMN = "PK";
+
+    public void setPk(String pk) {
+        writeProperty(PK_PROPERTY, pk);
+    }
+    public String getPk() {
+        return (String)readProperty(PK_PROPERTY);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteCascade.java
deleted file mode 100644
index 65f9ce1..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteCascade.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtDeleteCascade;
-
-/**
- * A persistent class mapped as "MtDeleteCascade" Cayenne entity.
- */
-public class ClientMtDeleteCascade extends _ClientMtDeleteCascade {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteDeny.java
deleted file mode 100644
index 099070d..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteDeny.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtDeleteDeny;
-
-/**
- * A persistent class mapped as "MtDeleteDeny" Cayenne entity.
- */
-public class ClientMtDeleteDeny extends _ClientMtDeleteDeny {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteNullify.java
deleted file mode 100644
index 6a8ffa2..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteNullify.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtDeleteNullify;
-
-/**
- * A persistent class mapped as "MtDeleteNullify" Cayenne entity.
- */
-public class ClientMtDeleteNullify extends _ClientMtDeleteNullify {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteRule.java
deleted file mode 100644
index 975f56a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtDeleteRule.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtDeleteRule;
-
-/**
- * A persistent class mapped as "MtDeleteRule" Cayenne entity.
- */
-public class ClientMtDeleteRule extends _ClientMtDeleteRule {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtLifecycles.java
deleted file mode 100644
index 2c708a0..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtLifecycles.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtLifecycles;
-
-/**
- * A persistent class mapped as "MtLifecycles" Cayenne entity.
- */
-public class ClientMtLifecycles extends _ClientMtLifecycles {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToMany.java
deleted file mode 100644
index cafec31..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtMapToMany;
-
-/**
- * A persistent class mapped as "MtMapToMany" Cayenne entity.
- */
-public class ClientMtMapToMany extends _ClientMtMapToMany {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToManyTarget.java
deleted file mode 100644
index 46bd1a9..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtMapToManyTarget;
-
-/**
- * A persistent class mapped as "MtMapToManyTarget" Cayenne entity.
- */
-public class ClientMtMapToManyTarget extends _ClientMtMapToManyTarget {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMeaningfulPk.java
deleted file mode 100644
index ef45003..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtMeaningfulPk.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtMeaningfulPk;
-
-/**
- * A persistent class mapped as "MtMeaningfulPk" Cayenne entity.
- */
-public class ClientMtMeaningfulPk extends _ClientMtMeaningfulPk {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtReflexive.java
deleted file mode 100644
index 5c42b96..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtReflexive.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtReflexive;
-
-/**
- * A persistent class mapped as "MtReflexive" Cayenne entity.
- */
-public class ClientMtReflexive extends _ClientMtReflexive {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTablePrimitives.java
deleted file mode 100644
index 3cb4e60..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTablePrimitives.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtTablePrimitives;
-
-/**
- * A persistent class mapped as "MtTablePrimitives" Cayenne entity.
- */
-public class ClientMtTablePrimitives extends _ClientMtTablePrimitives {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneDep.java
deleted file mode 100644
index ae671e4..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneDep.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtTooneDep;
-
-/**
- * A persistent class mapped as "MtTooneDep" Cayenne entity.
- */
-public class ClientMtTooneDep extends _ClientMtTooneDep {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneMaster.java
deleted file mode 100644
index 4a1baba..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/ClientMtTooneMaster.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._ClientMtTooneMaster;
-
-/**
- * A persistent class mapped as "MtTooneMaster" Cayenne entity.
- */
-public class ClientMtTooneMaster extends _ClientMtTooneMaster {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteCascade.java
deleted file mode 100644
index c5485bf..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteCascade.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtDeleteCascade;
-
-public class MtDeleteCascade extends _MtDeleteCascade {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteDeny.java
deleted file mode 100644
index 61bd550..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteDeny.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtDeleteDeny;
-
-public class MtDeleteDeny extends _MtDeleteDeny {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteNullify.java
deleted file mode 100644
index ac97d66..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteNullify.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtDeleteNullify;
-
-public class MtDeleteNullify extends _MtDeleteNullify {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteRule.java
deleted file mode 100644
index da98680..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtDeleteRule.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtDeleteRule;
-
-public class MtDeleteRule extends _MtDeleteRule {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtLifecycles.java
deleted file mode 100644
index d694496..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtLifecycles.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtLifecycles;
-
-public class MtLifecycles extends _MtLifecycles {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToMany.java
deleted file mode 100644
index a53bdc9..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtMapToMany;
-
-public class MtMapToMany extends _MtMapToMany {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToManyTarget.java
deleted file mode 100644
index 1f6a4ed..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtMapToManyTarget;
-
-public class MtMapToManyTarget extends _MtMapToManyTarget {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMeaningfulPk.java
deleted file mode 100644
index 3e56dc2..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtMeaningfulPk.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtMeaningfulPk;
-
-public class MtMeaningfulPk extends _MtMeaningfulPk {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtReflexive.java
deleted file mode 100644
index ed94c9c..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtReflexive.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtReflexive;
-
-public class MtReflexive extends _MtReflexive {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTablePrimitives.java
deleted file mode 100644
index 0ca23c1..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTablePrimitives.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtTablePrimitives;
-
-public class MtTablePrimitives extends _MtTablePrimitives {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneDep.java
deleted file mode 100644
index 4b1dbd0..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneDep.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtTooneDep;
-
-public class MtTooneDep extends _MtTooneDep {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneMaster.java
deleted file mode 100644
index 885ab76..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/MtTooneMaster.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************
- *   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.testdo.mt;
-
-import org.apache.cayenne.testdo.mt.auto._MtTooneMaster;
-
-public class MtTooneMaster extends _MtTooneMaster {
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteCascade.java
deleted file mode 100644
index 20d10b5..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteCascade.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteRule;
-
-/**
- * A generated persistent class mapped as "MtDeleteCascade" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtDeleteCascade extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CASCADE_PROPERTY = "cascade";
-
-    protected String name;
-    protected ValueHolder cascade;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public ClientMtDeleteRule getCascade() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "cascade", true);
-        }
-
-        return (ClientMtDeleteRule) cascade.getValue();
-    }
-    public void setCascade(ClientMtDeleteRule cascade) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "cascade", true);
-        }
-
-        this.cascade.setValue(cascade);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteDeny.java
deleted file mode 100644
index 97119d0..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteDeny.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteRule;
-
-/**
- * A generated persistent class mapped as "MtDeleteDeny" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtDeleteDeny extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String DENY_PROPERTY = "deny";
-
-    protected String name;
-    protected ValueHolder deny;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public ClientMtDeleteRule getDeny() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "deny", true);
-        }
-
-        return (ClientMtDeleteRule) deny.getValue();
-    }
-    public void setDeny(ClientMtDeleteRule deny) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "deny", true);
-        }
-
-        this.deny.setValue(deny);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteNullify.java
deleted file mode 100644
index a0a3fbc..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteNullify.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteRule;
-
-/**
- * A generated persistent class mapped as "MtDeleteNullify" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtDeleteNullify extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String NULLIFY_PROPERTY = "nullify";
-
-    protected String name;
-    protected ValueHolder nullify;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public ClientMtDeleteRule getNullify() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "nullify", true);
-        }
-
-        return (ClientMtDeleteRule) nullify.getValue();
-    }
-    public void setNullify(ClientMtDeleteRule nullify) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "nullify", true);
-        }
-
-        this.nullify.setValue(nullify);
-    }
-
-}


[4/4] cayenne git commit: Refactor Multi Tier Project

Posted by aa...@apache.org.
Refactor Multi Tier Project


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

Branch: refs/heads/master
Commit: fb8660e76986335b9c77ffbe3cc15b78e2d7be96
Parents: 49dd104
Author: Savva Kolbechev <s....@gmail.com>
Authored: Thu Nov 6 16:37:14 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Thu Nov 6 16:37:15 2014 +0300

----------------------------------------------------------------------
 .../cayenne/CayenneContextDeleteRulesIT.java    |  26 +--
 .../CayenneContextMapRelationshipIT.java        |  44 ++--
 .../cayenne/CayenneContextMeaningfulPKIT.java   |  53 +++++
 .../cayenne/CayenneContextPrimitiveIT.java      |  34 ++--
 .../cayenne/CayenneContextReflexiveIT.java      |  74 +++++++
 .../CayenneContextWithDataContextIT.java        |  79 -------
 .../apache/cayenne/NestedCayenneContextIT.java  | 156 --------------
 .../cayenne/NestedCayenneContextTooneIT.java    | 204 +++++++++++++++++++
 .../cayenne/map/ClientEntityResolverIT.java     |  69 -------
 .../cayenne/map/ClientEntityResolverTest.java   |  66 ++++++
 .../cayenne/remote/LightSuperClassIT.java       |   2 +-
 .../cayenne/remote/ROPPrefetchToManyMapIT.java  |  19 +-
 .../cayenne/remote/RemoteCallbacksIT.java       |   8 +-
 .../cayenne/unit/di/client/ClientCase.java      |   8 +
 .../apache/cayenne/CDOMapRelationshipIT.java    |   8 +-
 .../testdo/deleterules/ClientDeleteCascade.java |  28 +++
 .../testdo/deleterules/ClientDeleteDeny.java    |  28 +++
 .../testdo/deleterules/ClientDeleteNullify.java |  28 +++
 .../testdo/deleterules/ClientDeleteRule.java    |  28 +++
 .../testdo/deleterules/DeleteCascade.java       |  28 +++
 .../cayenne/testdo/deleterules/DeleteDeny.java  |  28 +++
 .../testdo/deleterules/DeleteNullify.java       |  28 +++
 .../cayenne/testdo/deleterules/DeleteRule.java  |  28 +++
 .../deleterules/auto/_ClientDeleteCascade.java  |  56 +++++
 .../deleterules/auto/_ClientDeleteDeny.java     |  56 +++++
 .../deleterules/auto/_ClientDeleteNullify.java  |  56 +++++
 .../deleterules/auto/_ClientDeleteRule.java     | 114 +++++++++++
 .../testdo/deleterules/auto/_DeleteCascade.java |  35 ++++
 .../testdo/deleterules/auto/_DeleteDeny.java    |  35 ++++
 .../testdo/deleterules/auto/_DeleteNullify.java |  35 ++++
 .../testdo/deleterules/auto/_DeleteRule.java    |  68 +++++++
 .../testdo/lifecycles/ClientLifecycles.java     |  28 +++
 .../cayenne/testdo/lifecycles/Lifecycles.java   |  25 +++
 .../lifecycles/auto/_ClientLifecycles.java      |  37 ++++
 .../testdo/lifecycles/auto/_Lifecycles.java     |  24 +++
 .../testdo/map_to_many/ClientIdMapToMany.java   |  28 +++
 .../map_to_many/ClientIdMapToManyTarget.java    |  28 +++
 .../cayenne/testdo/map_to_many/IdMapToMany.java |  28 +++
 .../testdo/map_to_many/IdMapToManyTarget.java   |  28 +++
 .../cayenne/testdo/map_to_many/MapToMany.java   |  28 +++
 .../testdo/map_to_many/MapToManyTarget.java     |  28 +++
 .../map_to_many/auto/_ClientIdMapToMany.java    |  41 ++++
 .../auto/_ClientIdMapToManyTarget.java          |  33 +++
 .../testdo/map_to_many/auto/_IdMapToMany.java   |  32 +++
 .../map_to_many/auto/_IdMapToManyTarget.java    |  27 +++
 .../testdo/map_to_many/auto/_MapToMany.java     |  32 +++
 .../map_to_many/auto/_MapToManyTarget.java      |  35 ++++
 .../meaningful_pk/ClientMeaningfulPk.java       |  28 +++
 .../testdo/meaningful_pk/MeaningfulPk.java      |  25 +++
 .../meaningful_pk/auto/_ClientMeaningfulPk.java |  37 ++++
 .../meaningful_pk/auto/_MeaningfulPk.java       |  24 +++
 .../testdo/mt/ClientMtDeleteCascade.java        |  28 ---
 .../cayenne/testdo/mt/ClientMtDeleteDeny.java   |  28 ---
 .../testdo/mt/ClientMtDeleteNullify.java        |  28 ---
 .../cayenne/testdo/mt/ClientMtDeleteRule.java   |  28 ---
 .../cayenne/testdo/mt/ClientMtLifecycles.java   |  28 ---
 .../cayenne/testdo/mt/ClientMtMapToMany.java    |  28 ---
 .../testdo/mt/ClientMtMapToManyTarget.java      |  28 ---
 .../cayenne/testdo/mt/ClientMtMeaningfulPk.java |  28 ---
 .../cayenne/testdo/mt/ClientMtReflexive.java    |  28 ---
 .../testdo/mt/ClientMtTablePrimitives.java      |  28 ---
 .../cayenne/testdo/mt/ClientMtTooneDep.java     |  28 ---
 .../cayenne/testdo/mt/ClientMtTooneMaster.java  |  28 ---
 .../cayenne/testdo/mt/MtDeleteCascade.java      |  28 ---
 .../apache/cayenne/testdo/mt/MtDeleteDeny.java  |  28 ---
 .../cayenne/testdo/mt/MtDeleteNullify.java      |  28 ---
 .../apache/cayenne/testdo/mt/MtDeleteRule.java  |  28 ---
 .../apache/cayenne/testdo/mt/MtLifecycles.java  |  25 ---
 .../apache/cayenne/testdo/mt/MtMapToMany.java   |  28 ---
 .../cayenne/testdo/mt/MtMapToManyTarget.java    |  28 ---
 .../cayenne/testdo/mt/MtMeaningfulPk.java       |  25 ---
 .../apache/cayenne/testdo/mt/MtReflexive.java   |  28 ---
 .../cayenne/testdo/mt/MtTablePrimitives.java    |  25 ---
 .../apache/cayenne/testdo/mt/MtTooneDep.java    |  25 ---
 .../apache/cayenne/testdo/mt/MtTooneMaster.java |  25 ---
 .../testdo/mt/auto/_ClientMtDeleteCascade.java  |  56 -----
 .../testdo/mt/auto/_ClientMtDeleteDeny.java     |  56 -----
 .../testdo/mt/auto/_ClientMtDeleteNullify.java  |  56 -----
 .../testdo/mt/auto/_ClientMtDeleteRule.java     | 114 -----------
 .../testdo/mt/auto/_ClientMtLifecycles.java     |  37 ----
 .../testdo/mt/auto/_ClientMtMapToMany.java      |  41 ----
 .../mt/auto/_ClientMtMapToManyTarget.java       |  33 ---
 .../testdo/mt/auto/_ClientMtMeaningfulPk.java   |  37 ----
 .../testdo/mt/auto/_ClientMtReflexive.java      |  82 --------
 .../mt/auto/_ClientMtTablePrimitives.java       |  60 ------
 .../testdo/mt/auto/_ClientMtTooneDep.java       |  33 ---
 .../testdo/mt/auto/_ClientMtTooneMaster.java    |  33 ---
 .../testdo/mt/auto/_MtDeleteCascade.java        |  35 ----
 .../cayenne/testdo/mt/auto/_MtDeleteDeny.java   |  35 ----
 .../testdo/mt/auto/_MtDeleteNullify.java        |  35 ----
 .../cayenne/testdo/mt/auto/_MtDeleteRule.java   |  68 -------
 .../cayenne/testdo/mt/auto/_MtLifecycles.java   |  24 ---
 .../cayenne/testdo/mt/auto/_MtMapToMany.java    |  32 ---
 .../testdo/mt/auto/_MtMapToManyTarget.java      |  27 ---
 .../cayenne/testdo/mt/auto/_MtMeaningfulPk.java |  24 ---
 .../cayenne/testdo/mt/auto/_MtReflexive.java    |  50 -----
 .../testdo/mt/auto/_MtTablePrimitives.java      |  34 ----
 .../cayenne/testdo/mt/auto/_MtTooneDep.java     |  27 ---
 .../cayenne/testdo/mt/auto/_MtTooneMaster.java  |  27 ---
 .../testdo/reflexive/ClientReflexive.java       |  28 +++
 .../cayenne/testdo/reflexive/Reflexive.java     |  28 +++
 .../testdo/reflexive/auto/_ClientReflexive.java |  82 ++++++++
 .../testdo/reflexive/auto/_Reflexive.java       |  50 +++++
 .../testdo/relationship/IdMapToMany.java        |  28 ---
 .../testdo/relationship/IdMapToManyTarget.java  |  28 ---
 .../cayenne/testdo/relationship/MapToMany.java  |  28 ---
 .../testdo/relationship/MapToManyTarget.java    |  28 ---
 .../testdo/relationship/auto/_IdMapToMany.java  |  32 ---
 .../relationship/auto/_IdMapToManyTarget.java   |  27 ---
 .../testdo/relationship/auto/_MapToMany.java    |  32 ---
 .../relationship/auto/_MapToManyTarget.java     |  35 ----
 .../table_primitives/ClientTablePrimitives.java |  28 +++
 .../table_primitives/TablePrimitives.java       |  25 +++
 .../auto/_ClientTablePrimitives.java            |  60 ++++++
 .../table_primitives/auto/_TablePrimitives.java |  34 ++++
 .../cayenne/testdo/toone/ClientTooneDep.java    |  28 +++
 .../cayenne/testdo/toone/ClientTooneMaster.java |  28 +++
 .../apache/cayenne/testdo/toone/TooneDep.java   |  25 +++
 .../cayenne/testdo/toone/TooneMaster.java       |  25 +++
 .../testdo/toone/auto/_ClientTooneDep.java      |  33 +++
 .../testdo/toone/auto/_ClientTooneMaster.java   |  33 +++
 .../cayenne/testdo/toone/auto/_TooneDep.java    |  27 +++
 .../cayenne/testdo/toone/auto/_TooneMaster.java |  27 +++
 .../cayenne/unit/di/server/SchemaBuilder.java   |  28 +--
 .../cayenne/unit/di/server/ServerCase.java      |   1 +
 .../src/test/resources/cayenne-delete-rules.xml |   4 +
 .../src/test/resources/cayenne-lifecycles.xml   |   4 +
 .../src/test/resources/cayenne-map-to-many.xml  |   4 +
 .../test/resources/cayenne-meaningful-pk.xml    |   4 +
 .../src/test/resources/cayenne-persistent.xml   |   4 +
 .../src/test/resources/cayenne-reflexive.xml    |   4 +
 .../test/resources/cayenne-table-primitives.xml |   4 +
 .../src/test/resources/cayenne-toone.xml        |   4 +
 .../src/test/resources/delete-rules.map.xml     |  64 ++++++
 .../src/test/resources/lifecycles.map.xml       |  16 ++
 .../src/test/resources/map-to-many.map.xml      |  57 ++++++
 .../src/test/resources/meaningful-pk.map.xml    |  15 ++
 .../src/test/resources/multi-tier.map.xml       | 153 --------------
 .../src/test/resources/persistent.map.xml       |  32 +++
 .../src/test/resources/reflexive.map.xml        |  25 +++
 .../src/test/resources/relationships.map.xml    |  40 ----
 .../src/test/resources/table-primitives.map.xml |  18 ++
 cayenne-server/src/test/resources/toone.map.xml |  27 +++
 143 files changed, 2614 insertions(+), 2531 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
index c4d6bc5..c43bac9 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
@@ -20,10 +20,10 @@
 package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteCascade;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteDeny;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteNullify;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteRule;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteCascade;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteDeny;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteNullify;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteRule;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(ClientCase.DELETE_RULES_PROJECT)
 public class CayenneContextDeleteRulesIT extends ClientCase {
 
     @Inject
@@ -43,10 +43,10 @@ public class CayenneContextDeleteRulesIT extends ClientCase {
     @Test
     public void testNullifyToOne() {
 
-        ClientMtDeleteNullify object = context.newObject(ClientMtDeleteNullify.class);
+        ClientDeleteNullify object = context.newObject(ClientDeleteNullify.class);
         object.setName("object");
 
-        ClientMtDeleteRule related = context.newObject(ClientMtDeleteRule.class);
+        ClientDeleteRule related = context.newObject(ClientDeleteRule.class);
         object.setName("related");
 
         object.setNullify(related);
@@ -63,8 +63,8 @@ public class CayenneContextDeleteRulesIT extends ClientCase {
     @Test
     public void testDenyToOne() {
 
-        ClientMtDeleteDeny object = context.newObject(ClientMtDeleteDeny.class);
-        ClientMtDeleteRule related = context.newObject(ClientMtDeleteRule.class);
+        ClientDeleteDeny object = context.newObject(ClientDeleteDeny.class);
+        ClientDeleteRule related = context.newObject(ClientDeleteRule.class);
         object.setDeny(related);
         context.commitChanges();
 
@@ -84,10 +84,10 @@ public class CayenneContextDeleteRulesIT extends ClientCase {
     @Test
     public void testCascadeToOne() {
 
-        ClientMtDeleteCascade object = context.newObject(ClientMtDeleteCascade.class);
+        ClientDeleteCascade object = context.newObject(ClientDeleteCascade.class);
         object.setName("object");
 
-        ClientMtDeleteRule related = context.newObject(ClientMtDeleteRule.class);
+        ClientDeleteRule related = context.newObject(ClientDeleteRule.class);
         object.setName("related");
 
         object.setCascade(related);
@@ -104,10 +104,10 @@ public class CayenneContextDeleteRulesIT extends ClientCase {
     @Test
     public void testCascadeToOneNewObject() {
 
-        ClientMtDeleteRule related = context.newObject(ClientMtDeleteRule.class);
+        ClientDeleteRule related = context.newObject(ClientDeleteRule.class);
         context.commitChanges();
 
-        ClientMtDeleteCascade object = context.newObject(ClientMtDeleteCascade.class);
+        ClientDeleteCascade object = context.newObject(ClientDeleteCascade.class);
         object.setName("object");
         object.setCascade(related);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
index 46fd918..7ae2dee 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
@@ -23,9 +23,9 @@ import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.mt.ClientMtMapToMany;
-import org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget;
-import org.apache.cayenne.testdo.mt.MtMapToMany;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget;
+import org.apache.cayenne.testdo.map_to_many.IdMapToMany;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(ClientCase.MAP_TO_MANY_PROJECT)
 public class CayenneContextMapRelationshipIT extends ClientCase {
 
     @Inject
@@ -46,36 +46,36 @@ public class CayenneContextMapRelationshipIT extends ClientCase {
     @Inject
     private DBHelper dbHelper;
 
-    private TableHelper tMtMapToMany;
-    private TableHelper tMtMapToManyTarget;
+    private TableHelper tMapToMany;
+    private TableHelper tMapToManyTarget;
 
     @Override
     protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("MT_MAP_TO_MANY");
+        dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
+        dbHelper.deleteAll("ID_MAP_TO_MANY");
 
-        tMtMapToMany = new TableHelper(dbHelper, "MT_MAP_TO_MANY");
-        tMtMapToMany.setColumns("ID");
+        tMapToMany = new TableHelper(dbHelper, "ID_MAP_TO_MANY");
+        tMapToMany.setColumns("ID");
 
-        tMtMapToManyTarget = new TableHelper(dbHelper, "MT_MAP_TO_MANY_TARGET");
-        tMtMapToManyTarget.setColumns("ID", "MAP_TO_MANY_ID");
+        tMapToManyTarget = new TableHelper(dbHelper, "ID_MAP_TO_MANY_TARGET");
+        tMapToManyTarget.setColumns("ID", "MAP_TO_MANY_ID");
     }
 
     private void createTwoMapToManysWithTargetsDataSet() throws Exception {
-        tMtMapToMany.insert(1).insert(2);
-        tMtMapToManyTarget.insert(1, 1).insert(2, 1).insert(3, 1).insert(4, 2);
+        tMapToMany.insert(1).insert(2);
+        tMapToManyTarget.insert(1, 1).insert(2, 1).insert(3, 1).insert(4, 2);
     }
 
     @Test
     public void testReadToMany() throws Exception {
         createTwoMapToManysWithTargetsDataSet();
 
-        ObjectId id = new ObjectId("MtMapToMany", MtMapToMany.ID_PK_COLUMN, 1);
-        ClientMtMapToMany o1 = (ClientMtMapToMany) Cayenne.objectForQuery(
+        ObjectId id = new ObjectId("IdMapToMany", IdMapToMany.ID_PK_COLUMN, 1);
+        ClientIdMapToMany o1 = (ClientIdMapToMany) Cayenne.objectForQuery(
                 context,
                 new ObjectIdQuery(id));
 
-        Map<Object, ClientMtMapToManyTarget> targets = o1.getTargets();
+        Map<Object, ClientIdMapToManyTarget> targets = o1.getTargets();
 
         assertTrue(((ValueHolder) targets).isFault());
 
@@ -90,17 +90,17 @@ public class CayenneContextMapRelationshipIT extends ClientCase {
     public void testAddToMany() throws Exception {
         createTwoMapToManysWithTargetsDataSet();
 
-        ObjectId id = new ObjectId("MtMapToMany", MtMapToMany.ID_PK_COLUMN, 1);
-        ClientMtMapToMany o1 = (ClientMtMapToMany) Cayenne.objectForQuery(
+        ObjectId id = new ObjectId("IdMapToMany", IdMapToMany.ID_PK_COLUMN, 1);
+        ClientIdMapToMany o1 = (ClientIdMapToMany) Cayenne.objectForQuery(
                 context,
                 new ObjectIdQuery(id));
 
-        Map<Object, ClientMtMapToManyTarget> targets = o1.getTargets();
+        Map<Object, ClientIdMapToManyTarget> targets = o1.getTargets();
         assertNotNull(targets);
         assertEquals(3, targets.size());
 
-        ClientMtMapToManyTarget newTarget = o1.getObjectContext().newObject(
-                ClientMtMapToManyTarget.class);
+        ClientIdMapToManyTarget newTarget = o1.getObjectContext().newObject(
+                ClientIdMapToManyTarget.class);
 
         o1.addToTargets(newTarget);
         assertEquals(4, targets.size());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
new file mode 100644
index 0000000..89dd47e
--- /dev/null
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
@@ -0,0 +1,53 @@
+package org.apache.cayenne;
+
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.query.SortOrder;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.testdo.meaningful_pk.ClientMeaningfulPk;
+import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+@UseServerRuntime(ClientCase.MEANINGFUL_PK_PROJECT)
+public class CayenneContextMeaningfulPKIT extends ClientCase {
+
+    @Inject
+    private CayenneContext clientContext;
+
+    @Inject
+    private DBHelper dbHelper;
+
+    private TableHelper tMeaningfulPK;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("MEANINGFUL_PK");
+
+        tMeaningfulPK = new TableHelper(dbHelper, "MEANINGFUL_PK");
+        tMeaningfulPK.setColumns("PK");
+    }
+
+    private void deleteAndCreateTwoMeaningfulPKsDataSet() throws Exception {
+        tMeaningfulPK.deleteAll();
+        tMeaningfulPK.insert("A");
+        tMeaningfulPK.insert("B");
+    }
+
+    @Test
+    public void testMeaningfulPK() throws Exception {
+        deleteAndCreateTwoMeaningfulPKsDataSet();
+
+        SelectQuery query = new SelectQuery(ClientMeaningfulPk.class);
+        query.addOrdering(ClientMeaningfulPk.PK_PROPERTY, SortOrder.DESCENDING);
+
+        List<?> results = clientContext.performQuery(query);
+        assertEquals(2, results.size());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
index f75111c..0c402d5 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
@@ -23,8 +23,8 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.mt.ClientMtTablePrimitives;
-import org.apache.cayenne.testdo.mt.MtTablePrimitives;
+import org.apache.cayenne.testdo.table_primitives.ClientTablePrimitives;
+import org.apache.cayenne.testdo.table_primitives.TablePrimitives;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(ClientCase.TABLE_PRIMITIVES_PROJECT)
 public class CayenneContextPrimitiveIT extends ClientCase {
 
     @Inject
@@ -49,34 +49,34 @@ public class CayenneContextPrimitiveIT extends ClientCase {
     @Inject
     private DBHelper dbHelper;
 
-    private TableHelper tMtTablePrimitives;
+    private TableHelper tTablePrimitives;
 
     @Override
     protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE_PRIMITIVES");
+        dbHelper.deleteAll("TABLE_PRIMITIVES");
 
         int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : Types.INTEGER;
         
-        tMtTablePrimitives = new TableHelper(dbHelper, "MT_TABLE_PRIMITIVES");
-        tMtTablePrimitives.setColumns("ID", "BOOLEAN_COLUMN", "INT_COLUMN").setColumnTypes(
+        tTablePrimitives = new TableHelper(dbHelper, "TABLE_PRIMITIVES");
+        tTablePrimitives.setColumns("ID", "BOOLEAN_COLUMN", "INT_COLUMN").setColumnTypes(
                 Types.INTEGER,
                 bool,
                 Types.INTEGER);
     }
 
     private void createTwoPrimitivesDataSet() throws Exception {
-        tMtTablePrimitives.insert(1, accessStackAdapter.supportsBoolean() ? true : 1, 0);
-        tMtTablePrimitives.insert(2, accessStackAdapter.supportsBoolean() ? false : 0, 5);
+        tTablePrimitives.insert(1, accessStackAdapter.supportsBoolean() ? true : 1, 0);
+        tTablePrimitives.insert(2, accessStackAdapter.supportsBoolean() ? false : 0, 5);
     }
 
     @Test
     public void testSelectPrimitives() throws Exception {
         createTwoPrimitivesDataSet();
 
-        SelectQuery query = new SelectQuery(ClientMtTablePrimitives.class);
-        query.addOrdering("db:" + MtTablePrimitives.ID_PK_COLUMN, SortOrder.ASCENDING);
+        SelectQuery query = new SelectQuery(ClientTablePrimitives.class);
+        query.addOrdering("db:" + TablePrimitives.ID_PK_COLUMN, SortOrder.ASCENDING);
 
-        List<ClientMtTablePrimitives> results = context.performQuery(query);
+        List<ClientTablePrimitives> results = context.performQuery(query);
         assertTrue(results.get(0).isBooleanColumn());
         assertFalse(results.get(1).isBooleanColumn());
 
@@ -87,21 +87,21 @@ public class CayenneContextPrimitiveIT extends ClientCase {
     @Test
     public void testCommitChangesPrimitives() throws Exception {
 
-        ClientMtTablePrimitives object = context.newObject(ClientMtTablePrimitives.class);
+        ClientTablePrimitives object = context.newObject(ClientTablePrimitives.class);
 
         object.setBooleanColumn(true);
         object.setIntColumn(3);
 
         context.commitChanges();
 
-        assertTrue(tMtTablePrimitives.getBoolean("BOOLEAN_COLUMN"));
-        assertEquals(3, tMtTablePrimitives.getInt("INT_COLUMN"));
+        assertTrue(tTablePrimitives.getBoolean("BOOLEAN_COLUMN"));
+        assertEquals(3, tTablePrimitives.getInt("INT_COLUMN"));
 
         object.setBooleanColumn(false);
         object.setIntColumn(8);
         context.commitChanges();
 
-        assertFalse(tMtTablePrimitives.getBoolean("BOOLEAN_COLUMN"));
-        assertEquals(8, tMtTablePrimitives.getInt("INT_COLUMN"));
+        assertFalse(tTablePrimitives.getBoolean("BOOLEAN_COLUMN"));
+        assertEquals(8, tTablePrimitives.getInt("INT_COLUMN"));
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
new file mode 100644
index 0000000..04fb4e2
--- /dev/null
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
@@ -0,0 +1,74 @@
+package org.apache.cayenne;
+
+import org.apache.cayenne.access.ClientServerChannel;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
+import org.apache.cayenne.testdo.reflexive.ClientReflexive;
+import org.apache.cayenne.testdo.reflexive.Reflexive;
+import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+@UseServerRuntime(ClientCase.REFLEXIVE_PROJECT)
+public class CayenneContextReflexiveIT extends ClientCase {
+
+    @Inject
+    private CayenneContext clientContext;
+
+    @Inject
+    private ClientServerChannel clientServerChannel;
+
+    @Test
+    public void testCAY830() throws Exception {
+
+        // an exception was triggered within POST_LOAD callback
+        LifecycleCallbackRegistry callbackRegistry = clientServerChannel
+                .getEntityResolver()
+                .getCallbackRegistry();
+
+        try {
+            callbackRegistry.addListener(Reflexive.class, new LifecycleListener() {
+
+                public void postLoad(Object entity) {
+                }
+
+                public void postPersist(Object entity) {
+                }
+
+                public void postRemove(Object entity) {
+                }
+
+                public void postUpdate(Object entity) {
+                }
+
+                public void postAdd(Object entity) {
+                }
+
+                public void preRemove(Object entity) {
+                }
+
+                public void preUpdate(Object entity) {
+                }
+
+                public void prePersist(Object entity) {
+                }
+            });
+
+            ClientReflexive o1 = clientContext.newObject(ClientReflexive.class);
+            o1.setName("parent");
+
+            ClientReflexive o2 = clientContext.newObject(ClientReflexive.class);
+            o2.setName("child");
+            o2.setToParent(o1);
+            clientContext.commitChanges();
+
+            clientContext.deleteObjects(o1);
+            clientContext.deleteObjects(o2);
+            clientContext.commitChanges();
+            // per CAY-830 an exception is thrown here
+        }
+        finally {
+            callbackRegistry.clear();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
index ed19ebe..69676c7 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
@@ -32,11 +32,8 @@ import org.apache.cayenne.remote.RemoteIncrementalFaultList;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
-import org.apache.cayenne.testdo.mt.ClientMtMeaningfulPk;
-import org.apache.cayenne.testdo.mt.ClientMtReflexive;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
-import org.apache.cayenne.testdo.mt.MtReflexive;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
@@ -74,8 +71,6 @@ public class CayenneContextWithDataContextIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    private TableHelper tMtMeaningfulPK;
-
     @Override
     protected void setUpAfterInjection() throws Exception {
         dbHelper.deleteAll("MT_TABLE2");
@@ -87,15 +82,6 @@ public class CayenneContextWithDataContextIT extends ClientCase {
         tMtTable2 = new TableHelper(dbHelper, "MT_TABLE2");
         tMtTable2.setColumns("TABLE2_ID", "TABLE1_ID", "GLOBAL_ATTRIBUTE").setColumnTypes(
                 Types.INTEGER, Types.INTEGER, Types.VARCHAR);
-
-        tMtMeaningfulPK = new TableHelper(dbHelper, "MT_MEANINGFUL_PK");
-        tMtMeaningfulPK.setColumns("PK");
-    }
-
-    private void deleteAndCreateTwoMeaningfulPKsDataSet() throws Exception {
-        tMtMeaningfulPK.deleteAll();
-        tMtMeaningfulPK.insert("A");
-        tMtMeaningfulPK.insert("B");
     }
 
     private void createTwoMtTable1sAnd2sDataSet() throws Exception {
@@ -304,60 +290,6 @@ public class CayenneContextWithDataContextIT extends ClientCase {
     }
 
     @Test
-    public void testCAY830() throws Exception {
-
-        // an exception was triggered within POST_LOAD callback
-        LifecycleCallbackRegistry callbackRegistry = clientServerChannel
-                .getEntityResolver()
-                .getCallbackRegistry();
-
-        try {
-            callbackRegistry.addListener(MtReflexive.class, new LifecycleListener() {
-
-                public void postLoad(Object entity) {
-                }
-
-                public void postPersist(Object entity) {
-                }
-
-                public void postRemove(Object entity) {
-                }
-
-                public void postUpdate(Object entity) {
-                }
-
-                public void postAdd(Object entity) {
-                }
-
-                public void preRemove(Object entity) {
-                }
-
-                public void preUpdate(Object entity) {
-                }
-
-                public void prePersist(Object entity) {
-                }
-            });
-
-            ClientMtReflexive o1 = clientContext.newObject(ClientMtReflexive.class);
-            o1.setName("parent");
-
-            ClientMtReflexive o2 = clientContext.newObject(ClientMtReflexive.class);
-            o2.setName("child");
-            o2.setToParent(o1);
-            clientContext.commitChanges();
-
-            clientContext.deleteObjects(o1);
-            clientContext.deleteObjects(o2);
-            clientContext.commitChanges();
-            // per CAY-830 an exception is thrown here
-        }
-        finally {
-            callbackRegistry.clear();
-        }
-    }
-
-    @Test
     public void testRollbackChanges() throws Exception {
 
         ClientMtTable1 o = clientContext.newObject(ClientMtTable1.class);
@@ -417,17 +349,6 @@ public class CayenneContextWithDataContextIT extends ClientCase {
     }
 
     @Test
-    public void testMeaningfulPK() throws Exception {
-        deleteAndCreateTwoMeaningfulPKsDataSet();
-
-        SelectQuery query = new SelectQuery(ClientMtMeaningfulPk.class);
-        query.addOrdering(ClientMtMeaningfulPk.PK_PROPERTY, SortOrder.DESCENDING);
-
-        List<?> results = clientContext.performQuery(query);
-        assertEquals(2, results.size());
-    }
-
-    @Test
     public void testPrefetchingToOne() throws Exception {
         createTwoMtTable1sAnd2sDataSet();
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
index 20b7a5d..0e489ab 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
@@ -29,8 +29,6 @@ import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
-import org.apache.cayenne.testdo.mt.ClientMtTooneDep;
-import org.apache.cayenne.testdo.mt.ClientMtTooneMaster;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
@@ -499,102 +497,6 @@ public class NestedCayenneContextIT extends RemoteCayenneCase {
 		assertEquals("DDD", parentDeleted.getGlobalAttribute1());
 	}
 
-	/*
-	 * was added for CAY-1636
-	 */
-	@Test
-	public void testCAY1636() throws Exception {
-
-		ClientMtTooneMaster A = clientContext
-				.newObject(ClientMtTooneMaster.class);
-		clientContext.commitChanges();
-
-		ClientMtTooneDep B = clientContext.newObject(ClientMtTooneDep.class);
-		A.setToDependent(B);
-		clientContext.commitChanges();
-
-		ObjectContext child = runtime.newContext(clientContext);
-
-		SelectQuery<ClientMtTooneMaster> query = new SelectQuery<ClientMtTooneMaster>(
-				ClientMtTooneMaster.class);
-		List<ClientMtTooneMaster> objects = child.select(query);
-
-		assertEquals(1, objects.size());
-
-		ClientMtTooneMaster childDeleted = (ClientMtTooneMaster) objects.get(0);
-
-		child.deleteObjects(childDeleted);
-
-		child.commitChangesToParent();
-
-		ClientMtTooneMaster parentDeleted = (ClientMtTooneMaster) clientContext
-				.getGraphManager().getNode(childDeleted.getObjectId());
-
-		assertNotNull(parentDeleted);
-		assertEquals(PersistenceState.DELETED,
-				parentDeleted.getPersistenceState());
-
-		clientContext.commitChanges();
-
-		SelectQuery<ClientMtTooneMaster> query2 = new SelectQuery<ClientMtTooneMaster>(
-				ClientMtTooneMaster.class);
-		List<ClientMtTooneMaster> objects2 = child.select(query2);
-
-		assertEquals(0, objects2.size());
-
-	}
-
-	@Test
-	public void testCAY1636_2() throws Exception {
-
-		ClientMtTooneMaster A = clientContext
-				.newObject(ClientMtTooneMaster.class);
-		clientContext.commitChanges();
-
-		ClientMtTooneDep B = clientContext.newObject(ClientMtTooneDep.class);
-		A.setToDependent(B);
-		clientContext.commitChanges();
-
-		ObjectContext child = runtime.newContext(clientContext);
-
-		SelectQuery<ClientMtTooneDep> queryB = new SelectQuery<ClientMtTooneDep>(
-				ClientMtTooneDep.class);
-		List<?> objectsB = child.performQuery(queryB);
-
-		assertEquals(1, objectsB.size());
-
-		ClientMtTooneDep childBDeleted = (ClientMtTooneDep) objectsB.get(0);
-		child.deleteObjects(childBDeleted);
-
-		SelectQuery<ClientMtTooneMaster> query = new SelectQuery<ClientMtTooneMaster>(
-				ClientMtTooneMaster.class);
-		List<ClientMtTooneMaster> objects = child.select(query);
-
-		assertEquals(1, objects.size());
-
-		ClientMtTooneMaster childDeleted = objects.get(0);
-
-		child.deleteObjects(childDeleted);
-
-		child.commitChangesToParent();
-
-		ClientMtTooneMaster parentDeleted = (ClientMtTooneMaster) clientContext
-				.getGraphManager().getNode(childDeleted.getObjectId());
-
-		assertNotNull(parentDeleted);
-		assertEquals(PersistenceState.DELETED,
-				parentDeleted.getPersistenceState());
-
-		clientContext.commitChanges();
-
-		SelectQuery<ClientMtTooneMaster> query2 = new SelectQuery<ClientMtTooneMaster>(
-				ClientMtTooneMaster.class);
-		List<ClientMtTooneMaster> objects2 = child.select(query2);
-
-		assertEquals(0, objects2.size());
-
-	}
-
 	@Test
 	public void testCommitChanges() throws Exception {
 		clientContext.newObject(ClientMtTable1.class);
@@ -853,62 +755,4 @@ public class NestedCayenneContextIT extends RemoteCayenneCase {
 		assertEquals(2, arcDiffs[0]);
 	}
 
-	@Test
-	public void testCommitChangesToParentOneToOne() throws Exception {
-		ObjectContext child = runtime.newContext(clientContext);
-
-		ClientMtTooneMaster master = child.newObject(ClientMtTooneMaster.class);
-		ClientMtTooneDep dep = child.newObject(ClientMtTooneDep.class);
-		master.setToDependent(dep);
-
-		child.commitChangesToParent();
-
-		ClientMtTooneMaster masterParent = (ClientMtTooneMaster) clientContext
-				.getGraphManager().getNode(master.getObjectId());
-		ClientMtTooneDep depParent = (ClientMtTooneDep) clientContext
-				.getGraphManager().getNode(dep.getObjectId());
-
-		assertNotNull(masterParent);
-		assertNotNull(depParent);
-
-		assertSame(masterParent, depParent.getToMaster());
-		assertSame(depParent, masterParent.getToDependent());
-
-		// check that arc changes got recorded in the parent context
-		GraphDiff diffs = clientContext.internalGraphManager().getDiffs();
-
-		final int[] arcDiffs = new int[1];
-		final int[] newNodes = new int[1];
-
-		diffs.apply(new GraphChangeHandler() {
-
-			public void arcCreated(Object nodeId, Object targetNodeId,
-					Object arcId) {
-				arcDiffs[0]++;
-			}
-
-			public void arcDeleted(Object nodeId, Object targetNodeId,
-					Object arcId) {
-				arcDiffs[0]--;
-			}
-
-			public void nodeCreated(Object nodeId) {
-				newNodes[0]++;
-			}
-
-			public void nodeIdChanged(Object nodeId, Object newId) {
-			}
-
-			public void nodePropertyChanged(Object nodeId, String property,
-					Object oldValue, Object newValue) {
-			}
-
-			public void nodeRemoved(Object nodeId) {
-				newNodes[0]--;
-			}
-		});
-
-		assertEquals(2, newNodes[0]);
-		assertEquals(2, arcDiffs[0]);
-	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
new file mode 100644
index 0000000..e548368
--- /dev/null
+++ b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
@@ -0,0 +1,204 @@
+package org.apache.cayenne;
+
+import org.apache.cayenne.configuration.rop.client.ClientRuntime;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.graph.GraphChangeHandler;
+import org.apache.cayenne.graph.GraphDiff;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.remote.RemoteCayenneCase;
+import org.apache.cayenne.remote.service.LocalConnection;
+import org.apache.cayenne.testdo.toone.ClientTooneDep;
+import org.apache.cayenne.testdo.toone.ClientTooneMaster;
+import org.apache.cayenne.unit.di.DataChannelInterceptor;
+import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+@UseServerRuntime(ClientCase.TOONE_PROJECT)
+@RunWith(value = Parameterized.class)
+public class NestedCayenneContextTooneIT extends RemoteCayenneCase {
+
+    @Inject
+    private ClientRuntime runtime;
+
+    @Inject
+    private DataChannelInterceptor queryInterceptor;
+
+    @Parameterized.Parameters
+    public static Collection<Object[]> data() {
+        return Arrays.asList(new Object[][]{
+                {LocalConnection.HESSIAN_SERIALIZATION},
+                {LocalConnection.JAVA_SERIALIZATION},
+                {LocalConnection.NO_SERIALIZATION},});
+    }
+
+    public NestedCayenneContextTooneIT(int serializationPolicy) {
+        super.serializationPolicy = serializationPolicy;
+    }
+
+    /*
+ * was added for CAY-1636
+ */
+    @Test
+    public void testCAY1636() throws Exception {
+
+        ClientTooneMaster A = clientContext
+                .newObject(ClientTooneMaster.class);
+        clientContext.commitChanges();
+
+        ClientTooneDep B = clientContext.newObject(ClientTooneDep.class);
+        A.setToDependent(B);
+        clientContext.commitChanges();
+
+        ObjectContext child = runtime.newContext(clientContext);
+
+        SelectQuery<ClientTooneMaster> query = new SelectQuery<ClientTooneMaster>(
+                ClientTooneMaster.class);
+        List<ClientTooneMaster> objects = child.select(query);
+
+        assertEquals(1, objects.size());
+
+        ClientTooneMaster childDeleted = (ClientTooneMaster) objects.get(0);
+
+        child.deleteObjects(childDeleted);
+
+        child.commitChangesToParent();
+
+        ClientTooneMaster parentDeleted = (ClientTooneMaster) clientContext
+                .getGraphManager().getNode(childDeleted.getObjectId());
+
+        assertNotNull(parentDeleted);
+        assertEquals(PersistenceState.DELETED,
+                parentDeleted.getPersistenceState());
+
+        clientContext.commitChanges();
+
+        SelectQuery<ClientTooneMaster> query2 = new SelectQuery<ClientTooneMaster>(
+                ClientTooneMaster.class);
+        List<ClientTooneMaster> objects2 = child.select(query2);
+
+        assertEquals(0, objects2.size());
+
+    }
+
+    @Test
+    public void testCAY1636_2() throws Exception {
+
+        ClientTooneMaster A = clientContext
+                .newObject(ClientTooneMaster.class);
+        clientContext.commitChanges();
+
+        ClientTooneDep B = clientContext.newObject(ClientTooneDep.class);
+        A.setToDependent(B);
+        clientContext.commitChanges();
+
+        ObjectContext child = runtime.newContext(clientContext);
+
+        SelectQuery<ClientTooneDep> queryB = new SelectQuery<ClientTooneDep>(
+                ClientTooneDep.class);
+        List<?> objectsB = child.performQuery(queryB);
+
+        assertEquals(1, objectsB.size());
+
+        ClientTooneDep childBDeleted = (ClientTooneDep) objectsB.get(0);
+        child.deleteObjects(childBDeleted);
+
+        SelectQuery<ClientTooneMaster> query = new SelectQuery<ClientTooneMaster>(
+                ClientTooneMaster.class);
+        List<ClientTooneMaster> objects = child.select(query);
+
+        assertEquals(1, objects.size());
+
+        ClientTooneMaster childDeleted = objects.get(0);
+
+        child.deleteObjects(childDeleted);
+
+        child.commitChangesToParent();
+
+        ClientTooneMaster parentDeleted = (ClientTooneMaster) clientContext
+                .getGraphManager().getNode(childDeleted.getObjectId());
+
+        assertNotNull(parentDeleted);
+        assertEquals(PersistenceState.DELETED,
+                parentDeleted.getPersistenceState());
+
+        clientContext.commitChanges();
+
+        SelectQuery<ClientTooneMaster> query2 = new SelectQuery<ClientTooneMaster>(
+                ClientTooneMaster.class);
+        List<ClientTooneMaster> objects2 = child.select(query2);
+
+        assertEquals(0, objects2.size());
+
+    }
+
+    @Test
+    public void testCommitChangesToParentOneToOne() throws Exception {
+        ObjectContext child = runtime.newContext(clientContext);
+
+        ClientTooneMaster master = child.newObject(ClientTooneMaster.class);
+        ClientTooneDep dep = child.newObject(ClientTooneDep.class);
+        master.setToDependent(dep);
+
+        child.commitChangesToParent();
+
+        ClientTooneMaster masterParent = (ClientTooneMaster) clientContext
+                .getGraphManager().getNode(master.getObjectId());
+        ClientTooneDep depParent = (ClientTooneDep) clientContext
+                .getGraphManager().getNode(dep.getObjectId());
+
+        assertNotNull(masterParent);
+        assertNotNull(depParent);
+
+        assertSame(masterParent, depParent.getToMaster());
+        assertSame(depParent, masterParent.getToDependent());
+
+        // check that arc changes got recorded in the parent context
+        GraphDiff diffs = clientContext.internalGraphManager().getDiffs();
+
+        final int[] arcDiffs = new int[1];
+        final int[] newNodes = new int[1];
+
+        diffs.apply(new GraphChangeHandler() {
+
+            public void arcCreated(Object nodeId, Object targetNodeId,
+                                   Object arcId) {
+                arcDiffs[0]++;
+            }
+
+            public void arcDeleted(Object nodeId, Object targetNodeId,
+                                   Object arcId) {
+                arcDiffs[0]--;
+            }
+
+            public void nodeCreated(Object nodeId) {
+                newNodes[0]++;
+            }
+
+            public void nodeIdChanged(Object nodeId, Object newId) {
+            }
+
+            public void nodePropertyChanged(Object nodeId, String property,
+                                            Object oldValue, Object newValue) {
+            }
+
+            public void nodeRemoved(Object nodeId) {
+                newNodes[0]--;
+            }
+        });
+
+        assertEquals(2, newNodes[0]);
+        assertEquals(2, arcDiffs[0]);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java b/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
deleted file mode 100644
index c87060c..0000000
--- a/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*****************************************************************
- *   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.map;
-
-import org.apache.cayenne.remote.hessian.service.HessianUtil;
-import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.unit.di.client.ClientCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertTrue;
-
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
-public class ClientEntityResolverIT extends ClientCase {
-
-    @Test
-    public void testSerializabilityWithHessian() throws Exception {
-        ObjEntity entity = new ObjEntity("test_entity");
-        entity.setClassName(Artist.class.getName());
-
-        DataMap dataMap = new DataMap("test");
-        dataMap.addObjEntity(entity);
-        Collection<DataMap> maps = Collections.singleton(dataMap);
-        EntityResolver resolver = new EntityResolver(maps);
-
-        // 1. simple case
-        Object c1 = HessianUtil.cloneViaClientServerSerialization(resolver, new EntityResolver());
-
-        assertNotNull(c1);
-        assertTrue(c1 instanceof EntityResolver);
-        EntityResolver cr1 = (EntityResolver) c1;
-
-        assertNotSame(resolver, cr1);
-        assertEquals(1, cr1.getObjEntities().size());
-        assertNotNull(cr1.getObjEntity(entity.getName()));
-
-        // 2. with descriptors resolved...
-        assertNotNull(resolver.getClassDescriptor(entity.getName()));
-
-        EntityResolver cr2 = (EntityResolver) HessianUtil.cloneViaClientServerSerialization(resolver,
-                new EntityResolver());
-        assertNotNull(cr2);
-        assertEquals(1, cr2.getObjEntities().size());
-        assertNotNull(cr2.getObjEntity(entity.getName()));
-        assertNotNull(cr2.getClassDescriptor(entity.getName()));
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverTest.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverTest.java b/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverTest.java
new file mode 100644
index 0000000..ad61805
--- /dev/null
+++ b/cayenne-client/src/test/java/org/apache/cayenne/map/ClientEntityResolverTest.java
@@ -0,0 +1,66 @@
+/*****************************************************************
+ *   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.map;
+
+import org.apache.cayenne.remote.hessian.service.HessianUtil;
+import org.apache.cayenne.testdo.testmap.Artist;
+import org.junit.Test;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+public class ClientEntityResolverTest {
+
+    @Test
+    public void testSerializabilityWithHessian() throws Exception {
+        ObjEntity entity = new ObjEntity("test_entity");
+        entity.setClassName(Artist.class.getName());
+
+        DataMap dataMap = new DataMap("test");
+        dataMap.addObjEntity(entity);
+        Collection<DataMap> maps = Collections.singleton(dataMap);
+        EntityResolver resolver = new EntityResolver(maps);
+
+        // 1. simple case
+        Object c1 = HessianUtil.cloneViaClientServerSerialization(resolver, new EntityResolver());
+
+        assertNotNull(c1);
+        assertTrue(c1 instanceof EntityResolver);
+        EntityResolver cr1 = (EntityResolver) c1;
+
+        assertNotSame(resolver, cr1);
+        assertEquals(1, cr1.getObjEntities().size());
+        assertNotNull(cr1.getObjEntity(entity.getName()));
+
+        // 2. with descriptors resolved...
+        assertNotNull(resolver.getClassDescriptor(entity.getName()));
+
+        EntityResolver cr2 = (EntityResolver) HessianUtil.cloneViaClientServerSerialization(resolver,
+                new EntityResolver());
+        assertNotNull(cr2);
+        assertEquals(1, cr2.getObjEntities().size());
+        assertNotNull(cr2.getObjEntity(entity.getName()));
+        assertNotNull(cr2.getClassDescriptor(entity.getName()));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
index 3ffeb20..c6e06dc 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
@@ -41,7 +41,7 @@ import static org.junit.Assert.assertEquals;
 /**
  * Test for entites that are implemented in same class on client and server
  */
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(ClientCase.PERSISTENT_PROJECT)
 @RunWith(value=Parameterized.class)
 public class LightSuperClassIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
index 6e456f3..1fa8c40 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
@@ -25,10 +25,11 @@ import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.mt.ClientMtMapToMany;
-import org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany;
+import org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,7 +41,7 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime("cayenne-multi-tier.xml")
+@UseServerRuntime(ClientCase.MAP_TO_MANY_PROJECT)
 @RunWith(value=Parameterized.class)
 public class ROPPrefetchToManyMapIT extends RemoteCayenneCase {
     
@@ -65,25 +66,25 @@ public class ROPPrefetchToManyMapIT extends RemoteCayenneCase {
 
     @Override
     public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("MT_MAP_TO_MANY");        
+        dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
+        dbHelper.deleteAll("ID_MAP_TO_MANY");
     }
 
     @Test
     public void test() throws Exception {
         ObjectContext context = createROPContext();
         
-        ClientMtMapToMany map = context.newObject(ClientMtMapToMany.class);
-        ClientMtMapToManyTarget target = context.newObject(ClientMtMapToManyTarget.class);
+        ClientIdMapToMany map = context.newObject(ClientIdMapToMany.class);
+        ClientIdMapToManyTarget target = context.newObject(ClientIdMapToManyTarget.class);
         target.setMapToMany(map);
         context.commitChanges();
         
         context.performQuery(new RefreshQuery());
         
-        SelectQuery<ClientMtMapToMany> query = new SelectQuery<ClientMtMapToMany>(ClientMtMapToMany.class);
+        SelectQuery<ClientIdMapToMany> query = new SelectQuery<ClientIdMapToMany>(ClientIdMapToMany.class);
         query.addPrefetch("targets");
         
-        final ClientMtMapToMany mapToMany = (ClientMtMapToMany) Cayenne.objectForQuery(context, query);
+        final ClientIdMapToMany mapToMany = (ClientIdMapToMany) Cayenne.objectForQuery(context, query);
         
         queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
             

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
index d7bf475..afeb9fb 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.remote;
 import org.apache.cayenne.LifecycleListener;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.testdo.mt.ClientMtLifecycles;
+import org.apache.cayenne.testdo.lifecycles.ClientLifecycles;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(ClientCase.LIFECYCLES_PROJECT)
 @RunWith(value=Parameterized.class)
 public class RemoteCallbacksIT extends RemoteCayenneCase implements LifecycleListener {
     private int added, loaded, prePersisted, postPersisted, preRemoved, postRemoved, preUpdated, postUpdated;
@@ -69,10 +69,10 @@ public class RemoteCallbacksIT extends RemoteCayenneCase implements LifecycleLis
     @Test
     public void testDefault() throws InterruptedException {
         ObjectContext context = createROPContext();
-        context.getEntityResolver().getCallbackRegistry().addListener(ClientMtLifecycles.class, this);
+        context.getEntityResolver().getCallbackRegistry().addListener(ClientLifecycles.class, this);
         
         assertAll(0, 0, 0, 0, 0, 0, 0, 0);
-        ClientMtLifecycles l1 = context.newObject(ClientMtLifecycles.class);
+        ClientLifecycles l1 = context.newObject(ClientLifecycles.class);
         
         assertAll(1, 0, 0, 0, 0, 0, 0, 0);
         l1.setName("x");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
index 70516f1..f9bdc55 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
@@ -30,6 +30,14 @@ public class ClientCase extends DICase {
     public static final String ROP_CLIENT_KEY = "client";
 
     public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
+    public static final String PERSISTENT_PROJECT = "cayenne-persistent.xml";
+    public static final String REFLEXIVE_PROJECT = "cayenne-reflexive.xml";
+    public static final String DELETE_RULES_PROJECT = "cayenne-delete-rules.xml";
+    public static final String LIFECYCLES_PROJECT = "cayenne-lifecycles.xml";
+    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
+    public static final String TOONE_PROJECT = "cayenne-toone.xml";
+    public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml";
+    public static final String TABLE_PRIMITIVES_PROJECT = "cayenne-table-primitives.xml";
 
     private static final Injector injector;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
index 988af5c..ada0d70 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
@@ -24,9 +24,9 @@ import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.relationship.IdMapToMany;
-import org.apache.cayenne.testdo.relationship.MapToMany;
-import org.apache.cayenne.testdo.relationship.MapToManyTarget;
+import org.apache.cayenne.testdo.map_to_many.IdMapToMany;
+import org.apache.cayenne.testdo.map_to_many.MapToMany;
+import org.apache.cayenne.testdo.map_to_many.MapToManyTarget;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -40,7 +40,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(ServerCase.MAP_TO_MANY_PROJECT)
 public class CDOMapRelationshipIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteCascade.java
new file mode 100644
index 0000000..c835315
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteCascade.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._ClientDeleteCascade;
+
+/**
+ * A persistent class mapped as "DeleteCascade" Cayenne entity.
+ */
+public class ClientDeleteCascade extends _ClientDeleteCascade {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteDeny.java
new file mode 100644
index 0000000..87ee510
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteDeny.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._ClientDeleteDeny;
+
+/**
+ * A persistent class mapped as "DeleteDeny" Cayenne entity.
+ */
+public class ClientDeleteDeny extends _ClientDeleteDeny {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteNullify.java
new file mode 100644
index 0000000..a08b3fd
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteNullify.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._ClientDeleteNullify;
+
+/**
+ * A persistent class mapped as "DeleteNullify" Cayenne entity.
+ */
+public class ClientDeleteNullify extends _ClientDeleteNullify {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteRule.java
new file mode 100644
index 0000000..caa455c
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/ClientDeleteRule.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._ClientDeleteRule;
+
+/**
+ * A persistent class mapped as "DeleteRule" Cayenne entity.
+ */
+public class ClientDeleteRule extends _ClientDeleteRule {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteCascade.java
new file mode 100644
index 0000000..9b46a78
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteCascade.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._DeleteCascade;
+
+public class DeleteCascade extends _DeleteCascade {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteDeny.java
new file mode 100644
index 0000000..b1becb8
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteDeny.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._DeleteDeny;
+
+public class DeleteDeny extends _DeleteDeny {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteNullify.java
new file mode 100644
index 0000000..81247a2
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteNullify.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._DeleteNullify;
+
+public class DeleteNullify extends _DeleteNullify {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteRule.java
new file mode 100644
index 0000000..07b542b
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/DeleteRule.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.deleterules;
+
+import org.apache.cayenne.testdo.deleterules.auto._DeleteRule;
+
+public class DeleteRule extends _DeleteRule {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteCascade.java
new file mode 100644
index 0000000..4cc341e
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteCascade.java
@@ -0,0 +1,56 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteRule;
+
+/**
+ * A generated persistent class mapped as "DeleteCascade" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientDeleteCascade extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CASCADE_PROPERTY = "cascade";
+
+    protected String name;
+    protected ValueHolder cascade;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public ClientDeleteRule getCascade() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "cascade", true);
+        }
+
+        return (ClientDeleteRule) cascade.getValue();
+    }
+    public void setCascade(ClientDeleteRule cascade) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "cascade", true);
+        }
+
+        this.cascade.setValue(cascade);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteDeny.java
new file mode 100644
index 0000000..f16dded
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteDeny.java
@@ -0,0 +1,56 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteRule;
+
+/**
+ * A generated persistent class mapped as "DeleteDeny" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientDeleteDeny extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String DENY_PROPERTY = "deny";
+
+    protected String name;
+    protected ValueHolder deny;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public ClientDeleteRule getDeny() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "deny", true);
+        }
+
+        return (ClientDeleteRule) deny.getValue();
+    }
+    public void setDeny(ClientDeleteRule deny) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "deny", true);
+        }
+
+        this.deny.setValue(deny);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteNullify.java
new file mode 100644
index 0000000..3abc65e
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteNullify.java
@@ -0,0 +1,56 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteRule;
+
+/**
+ * A generated persistent class mapped as "DeleteNullify" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientDeleteNullify extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String NULLIFY_PROPERTY = "nullify";
+
+    protected String name;
+    protected ValueHolder nullify;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public ClientDeleteRule getNullify() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "nullify", true);
+        }
+
+        return (ClientDeleteRule) nullify.getValue();
+    }
+    public void setNullify(ClientDeleteRule nullify) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "nullify", true);
+        }
+
+        this.nullify.setValue(nullify);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteRule.java
new file mode 100644
index 0000000..e42946b
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_ClientDeleteRule.java
@@ -0,0 +1,114 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteCascade;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteDeny;
+import org.apache.cayenne.testdo.deleterules.ClientDeleteNullify;
+
+import java.util.List;
+
+/**
+ * A generated persistent class mapped as "DeleteRule" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientDeleteRule extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
+    public static final String FROM_DENY_PROPERTY = "fromDeny";
+    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
+
+    protected String name;
+    protected List<ClientDeleteCascade> fromCascade;
+    protected List<ClientDeleteDeny> fromDeny;
+    protected List<ClientDeleteNullify> fromNullify;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public List<ClientDeleteCascade> getFromCascade() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromCascade", true);
+        }
+
+        return fromCascade;
+    }
+    public void addToFromCascade(ClientDeleteCascade object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromCascade", true);
+        }
+
+        this.fromCascade.add(object);
+    }
+    public void removeFromFromCascade(ClientDeleteCascade object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromCascade", true);
+        }
+
+        this.fromCascade.remove(object);
+    }
+
+    public List<ClientDeleteDeny> getFromDeny() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromDeny", true);
+        }
+
+        return fromDeny;
+    }
+    public void addToFromDeny(ClientDeleteDeny object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromDeny", true);
+        }
+
+        this.fromDeny.add(object);
+    }
+    public void removeFromFromDeny(ClientDeleteDeny object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromDeny", true);
+        }
+
+        this.fromDeny.remove(object);
+    }
+
+    public List<ClientDeleteNullify> getFromNullify() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromNullify", true);
+        }
+
+        return fromNullify;
+    }
+    public void addToFromNullify(ClientDeleteNullify object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromNullify", true);
+        }
+
+        this.fromNullify.add(object);
+    }
+    public void removeFromFromNullify(ClientDeleteNullify object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "fromNullify", true);
+        }
+
+        this.fromNullify.remove(object);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteCascade.java
new file mode 100644
index 0000000..bd8be7c
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/deleterules/auto/_DeleteCascade.java
@@ -0,0 +1,35 @@
+package org.apache.cayenne.testdo.deleterules.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.deleterules.DeleteRule;
+
+/**
+ * Class _DeleteCascade was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _DeleteCascade extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CASCADE_PROPERTY = "cascade";
+
+    public static final String DELETE_CASCADE_ID_PK_COLUMN = "DELETE_CASCADE_ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void setCascade(DeleteRule cascade) {
+        setToOneTarget(CASCADE_PROPERTY, cascade, true);
+    }
+
+    public DeleteRule getCascade() {
+        return (DeleteRule)readProperty(CASCADE_PROPERTY);
+    }
+
+
+}


[2/4] cayenne git commit: Refactor Multi Tier Project

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
deleted file mode 100644
index 351b127..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtDeleteRule.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteCascade;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteDeny;
-import org.apache.cayenne.testdo.mt.ClientMtDeleteNullify;
-
-/**
- * A generated persistent class mapped as "MtDeleteRule" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtDeleteRule extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
-    public static final String FROM_DENY_PROPERTY = "fromDeny";
-    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
-
-    protected String name;
-    protected List<ClientMtDeleteCascade> fromCascade;
-    protected List<ClientMtDeleteDeny> fromDeny;
-    protected List<ClientMtDeleteNullify> fromNullify;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public List<ClientMtDeleteCascade> getFromCascade() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        return fromCascade;
-    }
-    public void addToFromCascade(ClientMtDeleteCascade object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        this.fromCascade.add(object);
-    }
-    public void removeFromFromCascade(ClientMtDeleteCascade object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromCascade", true);
-        }
-
-        this.fromCascade.remove(object);
-    }
-
-    public List<ClientMtDeleteDeny> getFromDeny() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        return fromDeny;
-    }
-    public void addToFromDeny(ClientMtDeleteDeny object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        this.fromDeny.add(object);
-    }
-    public void removeFromFromDeny(ClientMtDeleteDeny object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromDeny", true);
-        }
-
-        this.fromDeny.remove(object);
-    }
-
-    public List<ClientMtDeleteNullify> getFromNullify() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        return fromNullify;
-    }
-    public void addToFromNullify(ClientMtDeleteNullify object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        this.fromNullify.add(object);
-    }
-    public void removeFromFromNullify(ClientMtDeleteNullify object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "fromNullify", true);
-        }
-
-        this.fromNullify.remove(object);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
deleted file mode 100644
index 94ea3d7..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtLifecycles.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtLifecycles" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtLifecycles extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-
-    protected String name;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
deleted file mode 100644
index 007d502..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToMany.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget;
-
-/**
- * A generated persistent class mapped as "MtMapToMany" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMapToMany extends PersistentObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    protected Map<Object, ClientMtMapToManyTarget> targets;
-
-    public Map<Object, ClientMtMapToManyTarget> getTargets() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        return targets;
-    }
-	public void addToTargets(ClientMtMapToManyTarget object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        this.targets.put(getMapKey("targets", object), object);
-    }
-    public void removeFromTargets(ClientMtMapToManyTarget object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "targets", true);
-        }
-
-        this.targets.remove(getMapKey("targets", object));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
deleted file mode 100644
index db48fdc..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMapToManyTarget.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtMapToMany;
-
-/**
- * A generated persistent class mapped as "MtMapToManyTarget" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMapToManyTarget extends PersistentObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    protected ValueHolder mapToMany;
-
-    public ClientMtMapToMany getMapToMany() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "mapToMany", true);
-        }
-
-        return (ClientMtMapToMany) mapToMany.getValue();
-    }
-    public void setMapToMany(ClientMtMapToMany mapToMany) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "mapToMany", true);
-        }
-
-        this.mapToMany.setValue(mapToMany);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
deleted file mode 100644
index a950f8c..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtMeaningfulPk.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtMeaningfulPk" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtMeaningfulPk extends PersistentObject {
-
-    public static final String PK_PROPERTY = "pk";
-
-    protected String pk;
-
-    public String getPk() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "pk", false);
-        }
-
-        return pk;
-    }
-    public void setPk(String pk) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "pk", false);
-        }
-
-        Object oldValue = this.pk;
-        this.pk = pk;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "pk", oldValue, pk);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
deleted file mode 100644
index 1a764f8..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtReflexive.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtReflexive;
-
-/**
- * A generated persistent class mapped as "MtReflexive" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtReflexive extends PersistentObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CHILDREN_PROPERTY = "children";
-    public static final String TO_PARENT_PROPERTY = "toParent";
-
-    protected String name;
-    protected List<ClientMtReflexive> children;
-    protected ValueHolder toParent;
-
-    public String getName() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        return name;
-    }
-    public void setName(String name) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "name", false);
-        }
-
-        Object oldValue = this.name;
-        this.name = name;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "name", oldValue, name);
-        }
-    }
-
-    public List<ClientMtReflexive> getChildren() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        return children;
-    }
-    public void addToChildren(ClientMtReflexive object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        this.children.add(object);
-    }
-    public void removeFromChildren(ClientMtReflexive object) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "children", true);
-        }
-
-        this.children.remove(object);
-    }
-
-    public ClientMtReflexive getToParent() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toParent", true);
-        }
-
-        return (ClientMtReflexive) toParent.getValue();
-    }
-    public void setToParent(ClientMtReflexive toParent) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toParent", true);
-        }
-
-        this.toParent.setValue(toParent);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
deleted file mode 100644
index d7189d8..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTablePrimitives.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-
-/**
- * A generated persistent class mapped as "MtTablePrimitives" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTablePrimitives extends PersistentObject {
-
-    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
-    public static final String INT_COLUMN_PROPERTY = "intColumn";
-
-    protected boolean booleanColumn;
-    protected int intColumn;
-
-    public boolean isBooleanColumn() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "booleanColumn", false);
-        }
-
-        return booleanColumn;
-    }
-    public void setBooleanColumn(boolean booleanColumn) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "booleanColumn", false);
-        }
-
-        Object oldValue = this.booleanColumn;
-        this.booleanColumn = booleanColumn;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "booleanColumn", oldValue, booleanColumn);
-        }
-    }
-
-    public int getIntColumn() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "intColumn", false);
-        }
-
-        return intColumn;
-    }
-    public void setIntColumn(int intColumn) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "intColumn", false);
-        }
-
-        Object oldValue = this.intColumn;
-        this.intColumn = intColumn;
-
-        // notify objectContext about simple property change
-        if(objectContext != null) {
-            objectContext.propertyChanged(this, "intColumn", oldValue, intColumn);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
deleted file mode 100644
index cdc5f74..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneDep.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtTooneMaster;
-
-/**
- * A generated persistent class mapped as "MtTooneDep" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTooneDep extends PersistentObject {
-
-    public static final String TO_MASTER_PROPERTY = "toMaster";
-
-    protected ValueHolder toMaster;
-
-    public ClientMtTooneMaster getToMaster() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toMaster", true);
-        }
-
-        return (ClientMtTooneMaster) toMaster.getValue();
-    }
-    public void setToMaster(ClientMtTooneMaster toMaster) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toMaster", true);
-        }
-
-        this.toMaster.setValue(toMaster);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
deleted file mode 100644
index 71e466a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTooneMaster.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.PersistentObject;
-import org.apache.cayenne.ValueHolder;
-import org.apache.cayenne.testdo.mt.ClientMtTooneDep;
-
-/**
- * A generated persistent class mapped as "MtTooneMaster" Cayenne entity. It is a good idea to
- * avoid changing this class manually, since it will be overwritten next time code is
- * regenerated. If you need to make any customizations, put them in a subclass.
- */
-public abstract class _ClientMtTooneMaster extends PersistentObject {
-
-    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
-
-    protected ValueHolder toDependent;
-
-    public ClientMtTooneDep getToDependent() {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toDependent", true);
-        }
-
-        return (ClientMtTooneDep) toDependent.getValue();
-    }
-    public void setToDependent(ClientMtTooneDep toDependent) {
-        if(objectContext != null) {
-            objectContext.prepareForAccess(this, "toDependent", true);
-        }
-
-        this.toDependent.setValue(toDependent);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
deleted file mode 100644
index c6a7fc7..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteCascade.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteCascade was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteCascade extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CASCADE_PROPERTY = "cascade";
-
-    public static final String DELETE_CASCADE_ID_PK_COLUMN = "DELETE_CASCADE_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setCascade(MtDeleteRule cascade) {
-        setToOneTarget(CASCADE_PROPERTY, cascade, true);
-    }
-
-    public MtDeleteRule getCascade() {
-        return (MtDeleteRule)readProperty(CASCADE_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
deleted file mode 100644
index 5f75e99..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteDeny.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteDeny was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteDeny extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String DENY_PROPERTY = "deny";
-
-    public static final String DELETE_DENY_ID_PK_COLUMN = "DELETE_DENY_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setDeny(MtDeleteRule deny) {
-        setToOneTarget(DENY_PROPERTY, deny, true);
-    }
-
-    public MtDeleteRule getDeny() {
-        return (MtDeleteRule)readProperty(DENY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
deleted file mode 100644
index 00f089f..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteNullify.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteRule;
-
-/**
- * Class _MtDeleteNullify was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteNullify extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String NULLIFY_PROPERTY = "nullify";
-
-    public static final String DELETE_NULLIFY_ID_PK_COLUMN = "DELETE_NULLIFY_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setNullify(MtDeleteRule nullify) {
-        setToOneTarget(NULLIFY_PROPERTY, nullify, true);
-    }
-
-    public MtDeleteRule getNullify() {
-        return (MtDeleteRule)readProperty(NULLIFY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
deleted file mode 100644
index 0d7f9e1..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtDeleteRule.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtDeleteCascade;
-import org.apache.cayenne.testdo.mt.MtDeleteDeny;
-import org.apache.cayenne.testdo.mt.MtDeleteNullify;
-
-/**
- * Class _MtDeleteRule was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtDeleteRule extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String FROM_CASCADE_PROPERTY = "fromCascade";
-    public static final String FROM_DENY_PROPERTY = "fromDeny";
-    public static final String FROM_NULLIFY_PROPERTY = "fromNullify";
-
-    public static final String DELETE_RULE_ID_PK_COLUMN = "DELETE_RULE_ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void addToFromCascade(MtDeleteCascade obj) {
-        addToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
-    }
-    public void removeFromFromCascade(MtDeleteCascade obj) {
-        removeToManyTarget(FROM_CASCADE_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteCascade> getFromCascade() {
-        return (List<MtDeleteCascade>)readProperty(FROM_CASCADE_PROPERTY);
-    }
-
-
-    public void addToFromDeny(MtDeleteDeny obj) {
-        addToManyTarget(FROM_DENY_PROPERTY, obj, true);
-    }
-    public void removeFromFromDeny(MtDeleteDeny obj) {
-        removeToManyTarget(FROM_DENY_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteDeny> getFromDeny() {
-        return (List<MtDeleteDeny>)readProperty(FROM_DENY_PROPERTY);
-    }
-
-
-    public void addToFromNullify(MtDeleteNullify obj) {
-        addToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
-    }
-    public void removeFromFromNullify(MtDeleteNullify obj) {
-        removeToManyTarget(FROM_NULLIFY_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtDeleteNullify> getFromNullify() {
-        return (List<MtDeleteNullify>)readProperty(FROM_NULLIFY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
deleted file mode 100644
index 3f98a35..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtLifecycles.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtLifecycles was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtLifecycles extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
deleted file mode 100644
index aa60306..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtMapToManyTarget;
-
-/**
- * Class _MtMapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(MtMapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(MtMapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<Object, MtMapToManyTarget> getTargets() {
-        return (Map<Object, MtMapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
deleted file mode 100644
index eece442..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMapToManyTarget.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtMapToMany;
-
-/**
- * Class _MtMapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMapToManyTarget extends CayenneDataObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setMapToMany(MtMapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public MtMapToMany getMapToMany() {
-        return (MtMapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
deleted file mode 100644
index 84e0757..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtMeaningfulPk.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtMeaningfulPk was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtMeaningfulPk extends CayenneDataObject {
-
-    public static final String PK_PROPERTY = "pk";
-
-    public static final String PK_PK_COLUMN = "PK";
-
-    public void setPk(String pk) {
-        writeProperty(PK_PROPERTY, pk);
-    }
-    public String getPk() {
-        return (String)readProperty(PK_PROPERTY);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
deleted file mode 100644
index 7add12e..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtReflexive.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import java.util.List;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtReflexive;
-
-/**
- * Class _MtReflexive was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtReflexive extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String CHILDREN_PROPERTY = "children";
-    public static final String TO_PARENT_PROPERTY = "toParent";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void addToChildren(MtReflexive obj) {
-        addToManyTarget(CHILDREN_PROPERTY, obj, true);
-    }
-    public void removeFromChildren(MtReflexive obj) {
-        removeToManyTarget(CHILDREN_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public List<MtReflexive> getChildren() {
-        return (List<MtReflexive>)readProperty(CHILDREN_PROPERTY);
-    }
-
-
-    public void setToParent(MtReflexive toParent) {
-        setToOneTarget(TO_PARENT_PROPERTY, toParent, true);
-    }
-
-    public MtReflexive getToParent() {
-        return (MtReflexive)readProperty(TO_PARENT_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
deleted file mode 100644
index a87b8e2..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTablePrimitives.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-
-/**
- * Class _MtTablePrimitives was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTablePrimitives extends CayenneDataObject {
-
-    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
-    public static final String INT_COLUMN_PROPERTY = "intColumn";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setBooleanColumn(boolean booleanColumn) {
-        writeProperty(BOOLEAN_COLUMN_PROPERTY, booleanColumn);
-    }
-	public boolean isBooleanColumn() {
-        Boolean value = (Boolean)readProperty(BOOLEAN_COLUMN_PROPERTY);
-        return (value != null) ? value.booleanValue() : false;
-    }
-
-    public void setIntColumn(int intColumn) {
-        writeProperty(INT_COLUMN_PROPERTY, intColumn);
-    }
-    public int getIntColumn() {
-        Object value = readProperty(INT_COLUMN_PROPERTY);
-        return (value != null) ? (Integer) value : 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
deleted file mode 100644
index fafc7c3..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneDep.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtTooneMaster;
-
-/**
- * Class _MtTooneDep was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTooneDep extends CayenneDataObject {
-
-    public static final String TO_MASTER_PROPERTY = "toMaster";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setToMaster(MtTooneMaster toMaster) {
-        setToOneTarget(TO_MASTER_PROPERTY, toMaster, true);
-    }
-
-    public MtTooneMaster getToMaster() {
-        return (MtTooneMaster)readProperty(TO_MASTER_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
deleted file mode 100644
index 4c69773..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTooneMaster.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.mt.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.mt.MtTooneDep;
-
-/**
- * Class _MtTooneMaster was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MtTooneMaster extends CayenneDataObject {
-
-    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setToDependent(MtTooneDep toDependent) {
-        setToOneTarget(TO_DEPENDENT_PROPERTY, toDependent, true);
-    }
-
-    public MtTooneDep getToDependent() {
-        return (MtTooneDep)readProperty(TO_DEPENDENT_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
new file mode 100644
index 0000000..9e92cbc
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/ClientReflexive.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.reflexive;
+
+import org.apache.cayenne.testdo.reflexive.auto._ClientReflexive;
+
+/**
+ * A persistent class mapped as "Reflexive" Cayenne entity.
+ */
+public class ClientReflexive extends _ClientReflexive {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
new file mode 100644
index 0000000..75b805f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/Reflexive.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.reflexive;
+
+import org.apache.cayenne.testdo.reflexive.auto._Reflexive;
+
+public class Reflexive extends _Reflexive {
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
new file mode 100644
index 0000000..b2601aa
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_ClientReflexive.java
@@ -0,0 +1,82 @@
+package org.apache.cayenne.testdo.reflexive.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.reflexive.ClientReflexive;
+
+import java.util.List;
+
+/**
+ * A generated persistent class mapped as "Reflexive" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientReflexive extends PersistentObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CHILDREN_PROPERTY = "children";
+    public static final String TO_PARENT_PROPERTY = "toParent";
+
+    protected String name;
+    protected List<ClientReflexive> children;
+    protected ValueHolder toParent;
+
+    public String getName() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        return name;
+    }
+    public void setName(String name) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "name", false);
+        }
+
+        Object oldValue = this.name;
+        this.name = name;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "name", oldValue, name);
+        }
+    }
+
+    public List<ClientReflexive> getChildren() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        return children;
+    }
+    public void addToChildren(ClientReflexive object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        this.children.add(object);
+    }
+    public void removeFromChildren(ClientReflexive object) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "children", true);
+        }
+
+        this.children.remove(object);
+    }
+
+    public ClientReflexive getToParent() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toParent", true);
+        }
+
+        return (ClientReflexive) toParent.getValue();
+    }
+    public void setToParent(ClientReflexive toParent) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toParent", true);
+        }
+
+        this.toParent.setValue(toParent);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
new file mode 100644
index 0000000..e8d57b3
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/reflexive/auto/_Reflexive.java
@@ -0,0 +1,50 @@
+package org.apache.cayenne.testdo.reflexive.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.reflexive.Reflexive;
+
+import java.util.List;
+
+/**
+ * Class _Reflexive was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _Reflexive extends CayenneDataObject {
+
+    public static final String NAME_PROPERTY = "name";
+    public static final String CHILDREN_PROPERTY = "children";
+    public static final String TO_PARENT_PROPERTY = "toParent";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setName(String name) {
+        writeProperty(NAME_PROPERTY, name);
+    }
+    public String getName() {
+        return (String)readProperty(NAME_PROPERTY);
+    }
+
+    public void addToChildren(Reflexive obj) {
+        addToManyTarget(CHILDREN_PROPERTY, obj, true);
+    }
+    public void removeFromChildren(Reflexive obj) {
+        removeToManyTarget(CHILDREN_PROPERTY, obj, true);
+    }
+    @SuppressWarnings("unchecked")
+    public List<Reflexive> getChildren() {
+        return (List<Reflexive>)readProperty(CHILDREN_PROPERTY);
+    }
+
+
+    public void setToParent(Reflexive toParent) {
+        setToOneTarget(TO_PARENT_PROPERTY, toParent, true);
+    }
+
+    public Reflexive getToParent() {
+        return (Reflexive)readProperty(TO_PARENT_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
deleted file mode 100644
index 6c90077..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._IdMapToMany;
-
-public class IdMapToMany extends _IdMapToMany {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
deleted file mode 100644
index 6cf4f7b..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/IdMapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._IdMapToManyTarget;
-
-public class IdMapToManyTarget extends _IdMapToManyTarget {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
deleted file mode 100644
index 223120a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToMany.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._MapToMany;
-
-public class MapToMany extends _MapToMany {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
deleted file mode 100644
index e093387..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/MapToManyTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************
- *   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.testdo.relationship;
-
-import org.apache.cayenne.testdo.relationship.auto._MapToManyTarget;
-
-public class MapToManyTarget extends _MapToManyTarget {
-
-}
-
-
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
deleted file mode 100644
index 7ee7989..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.IdMapToManyTarget;
-
-/**
- * Class _IdMapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _IdMapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(IdMapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(IdMapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<Object, IdMapToManyTarget> getTargets() {
-        return (Map<Object, IdMapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
deleted file mode 100644
index 0067a9b..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_IdMapToManyTarget.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.IdMapToMany;
-
-/**
- * Class _IdMapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _IdMapToManyTarget extends CayenneDataObject {
-
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setMapToMany(IdMapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public IdMapToMany getMapToMany() {
-        return (IdMapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
deleted file mode 100644
index 957d29c..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToMany.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import java.util.Map;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.MapToManyTarget;
-
-/**
- * Class _MapToMany was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MapToMany extends CayenneDataObject {
-
-    public static final String TARGETS_PROPERTY = "targets";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void addToTargets(MapToManyTarget obj) {
-        addToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    public void removeFromTargets(MapToManyTarget obj) {
-        removeToManyTarget(TARGETS_PROPERTY, obj, true);
-    }
-    @SuppressWarnings("unchecked")
-    public Map<String, MapToManyTarget> getTargets() {
-        return (Map<String, MapToManyTarget>)readProperty(TARGETS_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
deleted file mode 100644
index c4d847a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationship/auto/_MapToManyTarget.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cayenne.testdo.relationship.auto;
-
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.testdo.relationship.MapToMany;
-
-/**
- * Class _MapToManyTarget was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public abstract class _MapToManyTarget extends CayenneDataObject {
-
-    public static final String NAME_PROPERTY = "name";
-    public static final String MAP_TO_MANY_PROPERTY = "mapToMany";
-
-    public static final String ID_PK_COLUMN = "ID";
-
-    public void setName(String name) {
-        writeProperty(NAME_PROPERTY, name);
-    }
-    public String getName() {
-        return (String)readProperty(NAME_PROPERTY);
-    }
-
-    public void setMapToMany(MapToMany mapToMany) {
-        setToOneTarget(MAP_TO_MANY_PROPERTY, mapToMany, true);
-    }
-
-    public MapToMany getMapToMany() {
-        return (MapToMany)readProperty(MAP_TO_MANY_PROPERTY);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
new file mode 100644
index 0000000..79b0fd5
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/ClientTablePrimitives.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.table_primitives;
+
+import org.apache.cayenne.testdo.table_primitives.auto._ClientTablePrimitives;
+
+/**
+ * A persistent class mapped as "TablePrimitives" Cayenne entity.
+ */
+public class ClientTablePrimitives extends _ClientTablePrimitives {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
new file mode 100644
index 0000000..f53d79a
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/TablePrimitives.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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.testdo.table_primitives;
+
+import org.apache.cayenne.testdo.table_primitives.auto._TablePrimitives;
+
+public class TablePrimitives extends _TablePrimitives {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
new file mode 100644
index 0000000..73c0a4b
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_ClientTablePrimitives.java
@@ -0,0 +1,60 @@
+package org.apache.cayenne.testdo.table_primitives.auto;
+
+import org.apache.cayenne.PersistentObject;
+
+/**
+ * A generated persistent class mapped as "TablePrimitives" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTablePrimitives extends PersistentObject {
+
+    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
+    public static final String INT_COLUMN_PROPERTY = "intColumn";
+
+    protected boolean booleanColumn;
+    protected int intColumn;
+
+    public boolean isBooleanColumn() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "booleanColumn", false);
+        }
+
+        return booleanColumn;
+    }
+    public void setBooleanColumn(boolean booleanColumn) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "booleanColumn", false);
+        }
+
+        Object oldValue = this.booleanColumn;
+        this.booleanColumn = booleanColumn;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "booleanColumn", oldValue, booleanColumn);
+        }
+    }
+
+    public int getIntColumn() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "intColumn", false);
+        }
+
+        return intColumn;
+    }
+    public void setIntColumn(int intColumn) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "intColumn", false);
+        }
+
+        Object oldValue = this.intColumn;
+        this.intColumn = intColumn;
+
+        // notify objectContext about simple property change
+        if(objectContext != null) {
+            objectContext.propertyChanged(this, "intColumn", oldValue, intColumn);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
new file mode 100644
index 0000000..bed40fc
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
@@ -0,0 +1,34 @@
+package org.apache.cayenne.testdo.table_primitives.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _TablePrimitives was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TablePrimitives extends CayenneDataObject {
+
+    public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
+    public static final String INT_COLUMN_PROPERTY = "intColumn";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setBooleanColumn(boolean booleanColumn) {
+        writeProperty(BOOLEAN_COLUMN_PROPERTY, booleanColumn);
+    }
+	public boolean isBooleanColumn() {
+        Boolean value = (Boolean)readProperty(BOOLEAN_COLUMN_PROPERTY);
+        return (value != null) ? value.booleanValue() : false;
+    }
+
+    public void setIntColumn(int intColumn) {
+        writeProperty(INT_COLUMN_PROPERTY, intColumn);
+    }
+    public int getIntColumn() {
+        Object value = readProperty(INT_COLUMN_PROPERTY);
+        return (value != null) ? (Integer) value : 0;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
new file mode 100644
index 0000000..0dbd9ff
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneDep.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._ClientTooneDep;
+
+/**
+ * A persistent class mapped as "TooneDep" Cayenne entity.
+ */
+public class ClientTooneDep extends _ClientTooneDep {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
new file mode 100644
index 0000000..176f1ae
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/ClientTooneMaster.java
@@ -0,0 +1,28 @@
+/*****************************************************************
+ *   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.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._ClientTooneMaster;
+
+/**
+ * A persistent class mapped as "TooneMaster" Cayenne entity.
+ */
+public class ClientTooneMaster extends _ClientTooneMaster {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
new file mode 100644
index 0000000..bdad9ad
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneDep.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._TooneDep;
+
+public class TooneDep extends _TooneDep {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
new file mode 100644
index 0000000..2c0bdb6
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/TooneMaster.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ *   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.testdo.toone;
+
+import org.apache.cayenne.testdo.toone.auto._TooneMaster;
+
+public class TooneMaster extends _TooneMaster {
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
new file mode 100644
index 0000000..f70c43e
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneDep.java
@@ -0,0 +1,33 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.toone.ClientTooneMaster;
+
+/**
+ * A generated persistent class mapped as "TooneDep" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTooneDep extends PersistentObject {
+
+    public static final String TO_MASTER_PROPERTY = "toMaster";
+
+    protected ValueHolder toMaster;
+
+    public ClientTooneMaster getToMaster() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toMaster", true);
+        }
+
+        return (ClientTooneMaster) toMaster.getValue();
+    }
+    public void setToMaster(ClientTooneMaster toMaster) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toMaster", true);
+        }
+
+        this.toMaster.setValue(toMaster);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
new file mode 100644
index 0000000..95cf161
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_ClientTooneMaster.java
@@ -0,0 +1,33 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.PersistentObject;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.testdo.toone.ClientTooneDep;
+
+/**
+ * A generated persistent class mapped as "TooneMaster" Cayenne entity. It is a good idea to
+ * avoid changing this class manually, since it will be overwritten next time code is
+ * regenerated. If you need to make any customizations, put them in a subclass.
+ */
+public abstract class _ClientTooneMaster extends PersistentObject {
+
+    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
+
+    protected ValueHolder toDependent;
+
+    public ClientTooneDep getToDependent() {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toDependent", true);
+        }
+
+        return (ClientTooneDep) toDependent.getValue();
+    }
+    public void setToDependent(ClientTooneDep toDependent) {
+        if(objectContext != null) {
+            objectContext.prepareForAccess(this, "toDependent", true);
+        }
+
+        this.toDependent.setValue(toDependent);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
new file mode 100644
index 0000000..262d73f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.toone.TooneMaster;
+
+/**
+ * Class _TooneDep was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TooneDep extends CayenneDataObject {
+
+    public static final String TO_MASTER_PROPERTY = "toMaster";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setToMaster(TooneMaster toMaster) {
+        setToOneTarget(TO_MASTER_PROPERTY, toMaster, true);
+    }
+
+    public TooneMaster getToMaster() {
+        return (TooneMaster)readProperty(TO_MASTER_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
new file mode 100644
index 0000000..788411f
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.testdo.toone.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.testdo.toone.TooneDep;
+
+/**
+ * Class _TooneMaster was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _TooneMaster extends CayenneDataObject {
+
+    public static final String TO_DEPENDENT_PROPERTY = "toDependent";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setToDependent(TooneDep toDependent) {
+        setToOneTarget(TO_DEPENDENT_PROPERTY, toDependent, true);
+    }
+
+    public TooneDep getToDependent() {
+        return (TooneDep)readProperty(TO_DEPENDENT_PROPERTY);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/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 73250d3..c598a8f 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
@@ -19,19 +19,6 @@
 
 package org.apache.cayenne.unit.di.server;
 
-import java.io.InputStream;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-
 import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.DbGenerator;
@@ -55,6 +42,19 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.xml.sax.InputSource;
 
+import java.io.InputStream;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.ListIterator;
+
 /**
  * Default implementation of the AccessStack that has a single DataNode per
  * DataMap.
@@ -70,6 +70,8 @@ public class SchemaBuilder {
 
     private static String[] MAPS_REQUIRING_SCHEMA_SETUP = { "tstmap.map.xml", "people.map.xml",
             "locking.map.xml", "relationships.map.xml", "relationships1.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",
             "quoted-identifiers.map.xml", "inheritance-single-table1.map.xml", "inheritance-vertical.map.xml",
             "oneway-rels.map.xml" };

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/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 854f7cc..0ec0980 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
@@ -41,6 +41,7 @@ public class ServerCase extends DICase {
 	public static final String MULTINODE_PROJECT = "cayenne-multinode.xml";
 	public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml";
 	public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
+    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
 	public static final String SUS_PROJECT = "cayenne-sus.xml";
 
 	private static final Injector injector;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/cayenne-delete-rules.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-delete-rules.xml b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
new file mode 100644
index 0000000..f6fa557
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="delete-rules"/>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fb8660e7/cayenne-server/src/test/resources/cayenne-lifecycles.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lifecycles.xml b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
new file mode 100644
index 0000000..0509c40
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="lifecycles"/>
+</domain>

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