You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/02/13 10:22:34 UTC

[1/3] cayenne git commit: CAY-2227 Update generated sources

Repository: cayenne
Updated Branches:
  refs/heads/master dc943e1d7 -> fd8234d35


http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
index 733b2a8..c12d858 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
@@ -19,8 +19,8 @@ public abstract class _DeleteRuleTest2 extends CayenneDataObject {
 
     public static final String DEL_RULE_TEST2_ID_PK_COLUMN = "DEL_RULE_TEST2_ID";
 
-    public static final Property<List<DeleteRuleTest3>> DELETE_RULE_TEST3ARRAY = new Property<>("deleteRuleTest3Array");
-    public static final Property<List<DeleteRuleTest1>> TEST1ARRAY = new Property<>("test1Array");
+    public static final Property<List<DeleteRuleTest3>> DELETE_RULE_TEST3ARRAY = Property.create("deleteRuleTest3Array", List.class);
+    public static final Property<List<DeleteRuleTest1>> TEST1ARRAY = Property.create("test1Array", List.class);
 
     public void addToDeleteRuleTest3Array(DeleteRuleTest3 obj) {
         addToManyTarget("deleteRuleTest3Array", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
index bc27d9f..6f7d250 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
@@ -16,7 +16,7 @@ public abstract class _DeleteRuleTest3 extends CayenneDataObject {
 
     public static final String DELETE_RULE_TEST_3_ID_PK_COLUMN = "DELETE_RULE_TEST_3_ID";
 
-    public static final Property<DeleteRuleTest2> TO_DELETE_RULE_TEST2 = new Property<>("toDeleteRuleTest2");
+    public static final Property<DeleteRuleTest2> TO_DELETE_RULE_TEST2 = Property.create("toDeleteRuleTest2", DeleteRuleTest2.class);
 
     public void setToDeleteRuleTest2(DeleteRuleTest2 toDeleteRuleTest2) {
         setToOneTarget("toDeleteRuleTest2", toDeleteRuleTest2, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
index 45b95c2..7406905 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
@@ -18,8 +18,8 @@ public abstract class _FlattenedCircular extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<FlattenedCircular>> SIDE1S = new Property<>("side1s");
-    public static final Property<List<FlattenedCircular>> SIDE2S = new Property<>("side2s");
+    public static final Property<List<FlattenedCircular>> SIDE1S = Property.create("side1s", List.class);
+    public static final Property<List<FlattenedCircular>> SIDE2S = Property.create("side2s", List.class);
 
     public void addToSide1s(FlattenedCircular obj) {
         addToManyTarget("side1s", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
index 828d273..15c551c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
@@ -20,11 +20,11 @@ public abstract class _FlattenedTest1 extends CayenneDataObject {
 
     public static final String FT1_ID_PK_COLUMN = "FT1_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<FlattenedTest2>> FT2ARRAY = new Property<>("ft2Array");
-    public static final Property<List<FlattenedTest3>> FT3ARRAY = new Property<>("ft3Array");
-    public static final Property<List<FlattenedTest3>> FT3OVER_COMPLEX = new Property<>("ft3OverComplex");
-    public static final Property<List<FlattenedTest4>> FT4ARRAY_FOR1 = new Property<>("ft4ArrayFor1");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<FlattenedTest2>> FT2ARRAY = Property.create("ft2Array", List.class);
+    public static final Property<List<FlattenedTest3>> FT3ARRAY = Property.create("ft3Array", List.class);
+    public static final Property<List<FlattenedTest3>> FT3OVER_COMPLEX = Property.create("ft3OverComplex", List.class);
+    public static final Property<List<FlattenedTest4>> FT4ARRAY_FOR1 = Property.create("ft4ArrayFor1", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
index 57ada63..d2fdb0b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
@@ -19,9 +19,9 @@ public abstract class _FlattenedTest2 extends CayenneDataObject {
 
     public static final String FT2_ID_PK_COLUMN = "FT2_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<FlattenedTest3>> FT3ARRAY = new Property<>("ft3Array");
-    public static final Property<FlattenedTest1> TO_FT1 = new Property<>("toFT1");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<FlattenedTest3>> FT3ARRAY = Property.create("ft3Array", List.class);
+    public static final Property<FlattenedTest1> TO_FT1 = Property.create("toFT1", FlattenedTest1.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
index ee14763..d05da64 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
@@ -20,10 +20,10 @@ public abstract class _FlattenedTest3 extends CayenneDataObject {
 
     public static final String FT3_ID_PK_COLUMN = "FT3_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<FlattenedTest4>> FT4ARRAY = new Property<>("ft4Array");
-    public static final Property<FlattenedTest1> TO_FT1 = new Property<>("toFT1");
-    public static final Property<FlattenedTest2> TO_FT2 = new Property<>("toFT2");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<FlattenedTest4>> FT4ARRAY = Property.create("ft4Array", List.class);
+    public static final Property<FlattenedTest1> TO_FT1 = Property.create("toFT1", FlattenedTest1.class);
+    public static final Property<FlattenedTest2> TO_FT2 = Property.create("toFT2", FlattenedTest2.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
index 5ffe663..55392e9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
@@ -16,8 +16,8 @@ public abstract class _FlattenedTest4 extends CayenneDataObject {
 
     public static final String FT4_ID_PK_COLUMN = "FT4_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<FlattenedTest3> TO_FT3 = new Property<>("toFT3");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<FlattenedTest3> TO_FT3 = Property.create("toFT3", FlattenedTest3.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
index 9a72b9e..5c4427f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
@@ -18,7 +18,7 @@ public abstract class _SetToMany extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Set<SetToManyTarget>> TARGETS = new Property<>("targets");
+    public static final Property<Set<SetToManyTarget>> TARGETS = Property.create("targets", Set.class);
 
     public void addToTargets(SetToManyTarget obj) {
         addToManyTarget("targets", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
index 2633a6d..d2edc6c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
@@ -16,7 +16,7 @@ public abstract class _SetToManyTarget extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<SetToMany> SET_TO_MANY = new Property<>("setToMany");
+    public static final Property<SetToMany> SET_TO_MANY = Property.create("setToMany", SetToMany.class);
 
     public void setSetToMany(SetToMany setToMany) {
         setToOneTarget("setToMany", setToMany, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
index a73198b..5aa0b67 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
@@ -18,10 +18,10 @@ public abstract class _ToManyFkDep extends CayenneDataObject {
     public static final String DEP_ID_PK_COLUMN = "DEP_ID";
     public static final String OTHER_ID_PK_COLUMN = "OTHER_ID";
 
-    public static final Property<Integer> DEP_ID = new Property<>("depId");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<ToManyFkRoot> ROOT = new Property<>("root");
-    public static final Property<ToManyRoot2> ROOT2 = new Property<>("root2");
+    public static final Property<Integer> DEP_ID = Property.create("depId", Integer.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<ToManyFkRoot> ROOT = Property.create("root", ToManyFkRoot.class);
+    public static final Property<ToManyRoot2> ROOT2 = Property.create("root2", ToManyRoot2.class);
 
     public void setDepId(Integer depId) {
         writeProperty("depId", depId);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
index a84d75a..98a159f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
@@ -18,9 +18,9 @@ public abstract class _ToManyFkRoot extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> DEP_ID = new Property<>("depId");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<ToManyFkDep>> DEPS = new Property<>("deps");
+    public static final Property<Integer> DEP_ID = Property.create("depId", Integer.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<ToManyFkDep>> DEPS = Property.create("deps", List.class);
 
     public void setDepId(Integer depId) {
         writeProperty("depId", depId);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
index 3b1134b..51d53fc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
@@ -18,8 +18,8 @@ public abstract class _ToManyRoot2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<ToManyFkDep>> DEPS = new Property<>("deps");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<ToManyFkDep>> DEPS = Property.create("deps", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
index 9f7c489..2a018ca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
@@ -16,7 +16,7 @@ public abstract class _ToOneFK1 extends CayenneDataObject {
 
     public static final String TO_ONE_FK1_PK_PK_COLUMN = "TO_ONE_FK1_PK";
 
-    public static final Property<ToOneFK2> TO_PK = new Property<>("toPK");
+    public static final Property<ToOneFK2> TO_PK = Property.create("toPK", ToOneFK2.class);
 
     public void setToPK(ToOneFK2 toPK) {
         setToOneTarget("toPK", toPK, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
index 4f12594..92c6415 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
@@ -16,7 +16,7 @@ public abstract class _ToOneFK2 extends CayenneDataObject {
 
     public static final String TO_ONE_FK2_PK_PK_COLUMN = "TO_ONE_FK2_PK";
 
-    public static final Property<ToOneFK1> TO_ONE_TO_FK = new Property<>("toOneToFK");
+    public static final Property<ToOneFK1> TO_ONE_TO_FK = Property.create("toOneToFK", ToOneFK1.class);
 
     public void setToOneToFK(ToOneFK1 toOneToFK) {
         setToOneTarget("toOneToFK", toOneToFK, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
index 93d0249..e30256f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
@@ -1,11 +1,11 @@
 package org.apache.cayenne.testdo.return_types.auto;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
-
 import java.math.BigDecimal;
 import java.util.Date;
 
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.exp.Property;
+
 /**
  * Class _ReturnTypesMap1 was generated by Cayenne.
  * It is probably a good idea to avoid changing this class manually,
@@ -18,26 +18,26 @@ public abstract class _ReturnTypesMap1 extends CayenneDataObject {
 
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<Long> BIGINT_COLUMN = new Property<>("bigintColumn");
-    public static final Property<Boolean> BIT_COLUMN = new Property<>("bitColumn");
-    public static final Property<Boolean> BOOLEAN_COLUMN = new Property<>("booleanColumn");
-    public static final Property<String> CHAR_COLUMN = new Property<>("charColumn");
-    public static final Property<Date> DATE_COLUMN = new Property<>("dateColumn");
-    public static final Property<BigDecimal> DECIMAL_COLUMN = new Property<>("decimalColumn");
-    public static final Property<Double> DOUBLE_COLUMN = new Property<>("doubleColumn");
-    public static final Property<Float> FLOAT_COLUMN = new Property<>("floatColumn");
-    public static final Property<Integer> INTEGER_COLUMN = new Property<>("integerColumn");
-    public static final Property<String> LONGNVARCHAR_COLUMN = new Property<>("longnvarcharColumn");
-    public static final Property<String> LONGVARCHAR_COLUMN = new Property<>("longvarcharColumn");
-    public static final Property<String> NCHAR_COLUMN = new Property<>("ncharColumn");
-    public static final Property<BigDecimal> NUMERIC_COLUMN = new Property<>("numericColumn");
-    public static final Property<String> NVARCHAR_COLUMN = new Property<>("nvarcharColumn");
-    public static final Property<Float> REAL_COLUMN = new Property<>("realColumn");
-    public static final Property<Short> SMALLINT_COLUMN = new Property<>("smallintColumn");
-    public static final Property<Date> TIME_COLUMN = new Property<>("timeColumn");
-    public static final Property<Date> TIMESTAMP_COLUMN = new Property<>("timestampColumn");
-    public static final Property<Byte> TINYINT_COLUMN = new Property<>("tinyintColumn");
-    public static final Property<String> VARCHAR_COLUMN = new Property<>("varcharColumn");
+    public static final Property<Long> BIGINT_COLUMN = Property.create("bigintColumn", Long.class);
+    public static final Property<Boolean> BIT_COLUMN = Property.create("bitColumn", Boolean.class);
+    public static final Property<Boolean> BOOLEAN_COLUMN = Property.create("booleanColumn", Boolean.class);
+    public static final Property<String> CHAR_COLUMN = Property.create("charColumn", String.class);
+    public static final Property<Date> DATE_COLUMN = Property.create("dateColumn", Date.class);
+    public static final Property<BigDecimal> DECIMAL_COLUMN = Property.create("decimalColumn", BigDecimal.class);
+    public static final Property<Double> DOUBLE_COLUMN = Property.create("doubleColumn", Double.class);
+    public static final Property<Float> FLOAT_COLUMN = Property.create("floatColumn", Float.class);
+    public static final Property<Integer> INTEGER_COLUMN = Property.create("integerColumn", Integer.class);
+    public static final Property<String> LONGNVARCHAR_COLUMN = Property.create("longnvarcharColumn", String.class);
+    public static final Property<String> LONGVARCHAR_COLUMN = Property.create("longvarcharColumn", String.class);
+    public static final Property<String> NCHAR_COLUMN = Property.create("ncharColumn", String.class);
+    public static final Property<BigDecimal> NUMERIC_COLUMN = Property.create("numericColumn", BigDecimal.class);
+    public static final Property<String> NVARCHAR_COLUMN = Property.create("nvarcharColumn", String.class);
+    public static final Property<Float> REAL_COLUMN = Property.create("realColumn", Float.class);
+    public static final Property<Short> SMALLINT_COLUMN = Property.create("smallintColumn", Short.class);
+    public static final Property<Date> TIME_COLUMN = Property.create("timeColumn", Date.class);
+    public static final Property<Date> TIMESTAMP_COLUMN = Property.create("timestampColumn", Date.class);
+    public static final Property<Byte> TINYINT_COLUMN = Property.create("tinyintColumn", Byte.class);
+    public static final Property<String> VARCHAR_COLUMN = Property.create("varcharColumn", String.class);
 
     public void setBigintColumn(Long bigintColumn) {
         writeProperty("bigintColumn", bigintColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
index 8c3c57c..c4b9d29 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
@@ -15,10 +15,10 @@ public abstract class _ReturnTypesMap2 extends CayenneDataObject {
 
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<byte[]> BINARY_COLUMN = new Property<>("binaryColumn");
-    public static final Property<byte[]> BLOB_COLUMN = new Property<>("blobColumn");
-    public static final Property<byte[]> LONGVARBINARY_COLUMN = new Property<>("longvarbinaryColumn");
-    public static final Property<byte[]> VARBINARY_COLUMN = new Property<>("varbinaryColumn");
+    public static final Property<byte[]> BINARY_COLUMN = Property.create("binaryColumn", byte[].class);
+    public static final Property<byte[]> BLOB_COLUMN = Property.create("blobColumn", byte[].class);
+    public static final Property<byte[]> LONGVARBINARY_COLUMN = Property.create("longvarbinaryColumn", byte[].class);
+    public static final Property<byte[]> VARBINARY_COLUMN = Property.create("varbinaryColumn", byte[].class);
 
     public void setBinaryColumn(byte[] binaryColumn) {
         writeProperty("binaryColumn", binaryColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
index 53b7aa7..33993bc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
@@ -15,8 +15,8 @@ public abstract class _ReturnTypesMapLobs1 extends CayenneDataObject {
 
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<String> CLOB_COLUMN = new Property<>("clobColumn");
-    public static final Property<String> NCLOB_COLUMN = new Property<>("nclobColumn");
+    public static final Property<String> CLOB_COLUMN = Property.create("clobColumn", String.class);
+    public static final Property<String> NCLOB_COLUMN = Property.create("nclobColumn", String.class);
 
     public void setClobColumn(String clobColumn) {
         writeProperty("clobColumn", clobColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
index a3dded8..b2ce235 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
@@ -15,8 +15,8 @@ public abstract class _SoftDelete extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> DELETED = new Property<>("deleted");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<Boolean> DELETED = Property.create("deleted", Boolean.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDeleted(Boolean deleted) {
         writeProperty("deleted", deleted);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index bc55726..2f660af 100644
--- 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
@@ -15,8 +15,8 @@ public abstract class _TablePrimitives extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> BOOLEAN_COLUMN = new Property<>("booleanColumn");
-    public static final Property<Integer> INT_COLUMN = new Property<>("intColumn");
+    public static final Property<Boolean> BOOLEAN_COLUMN = Property.create("booleanColumn", Boolean.class);
+    public static final Property<Integer> INT_COLUMN = Property.create("intColumn", Integer.class);
 
     public void setBooleanColumn(boolean booleanColumn) {
         writeProperty("booleanColumn", booleanColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtGroup.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtGroup.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtGroup.java
index a9eede5..bcd5a10 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtGroup.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtGroup.java
@@ -19,10 +19,10 @@ public abstract class _ArtGroup extends CayenneDataObject {
 
     public static final String GROUP_ID_PK_COLUMN = "GROUP_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Artist>> ARTIST_ARRAY = new Property<>("artistArray");
-    public static final Property<List<ArtGroup>> CHILD_GROUPS_ARRAY = new Property<>("childGroupsArray");
-    public static final Property<ArtGroup> TO_PARENT_GROUP = new Property<>("toParentGroup");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Artist>> ARTIST_ARRAY = Property.create("artistArray", List.class);
+    public static final Property<List<ArtGroup>> CHILD_GROUPS_ARRAY = Property.create("childGroupsArray", List.class);
+    public static final Property<ArtGroup> TO_PARENT_GROUP = Property.create("toParentGroup", ArtGroup.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistCallback.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistCallback.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistCallback.java
index 5ecf2a5..14caad5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistCallback.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistCallback.java
@@ -17,8 +17,8 @@ public abstract class _ArtistCallback extends CayenneDataObject {
 
     public static final String ARTIST_ID_PK_COLUMN = "ARTIST_ID";
 
-    public static final Property<String> ARTIST_NAME = new Property<>("artistName");
-    public static final Property<Date> DATE_OF_BIRTH = new Property<>("dateOfBirth");
+    public static final Property<String> ARTIST_NAME = Property.create("artistName", String.class);
+    public static final Property<Date> DATE_OF_BIRTH = Property.create("dateOfBirth", Date.class);
 
     public void setArtistName(String artistName) {
         writeProperty("artistName", artistName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistExhibit.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistExhibit.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistExhibit.java
index b7d41dd..73a528a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistExhibit.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ArtistExhibit.java
@@ -18,8 +18,8 @@ public abstract class _ArtistExhibit extends CayenneDataObject {
     public static final String ARTIST_ID_PK_COLUMN = "ARTIST_ID";
     public static final String EXHIBIT_ID_PK_COLUMN = "EXHIBIT_ID";
 
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
-    public static final Property<Exhibit> TO_EXHIBIT = new Property<>("toExhibit");
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
+    public static final Property<Exhibit> TO_EXHIBIT = Property.create("toExhibit", Exhibit.class);
 
     public void setToArtist(Artist toArtist) {
         setToOneTarget("toArtist", toArtist, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPainting.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPainting.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPainting.java
index bfc70ca..3263470 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPainting.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPainting.java
@@ -20,14 +20,14 @@ public abstract class _CompoundPainting extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<String> ARTIST_NAME = new Property<>("artistName");
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> GALLERY_NAME = new Property<>("galleryName");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<String> TEXT_REVIEW = new Property<>("textReview");
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
-    public static final Property<Gallery> TO_GALLERY = new Property<>("toGallery");
-    public static final Property<PaintingInfo> TO_PAINTING_INFO = new Property<>("toPaintingInfo");
+    public static final Property<String> ARTIST_NAME = Property.create("artistName", String.class);
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> GALLERY_NAME = Property.create("galleryName", String.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<String> TEXT_REVIEW = Property.create("textReview", String.class);
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
+    public static final Property<Gallery> TO_GALLERY = Property.create("toGallery", Gallery.class);
+    public static final Property<PaintingInfo> TO_PAINTING_INFO = Property.create("toPaintingInfo", PaintingInfo.class);
 
     public void setArtistName(String artistName) {
         writeProperty("artistName", artistName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPaintingLongNames.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPaintingLongNames.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPaintingLongNames.java
index 6c24869..62825dd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPaintingLongNames.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_CompoundPaintingLongNames.java
@@ -21,16 +21,16 @@ public abstract class _CompoundPaintingLongNames extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<String> ARTIST_LONG_NAME = new Property<>("artistLongName");
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> GALLERY_LONG_NAME = new Property<>("galleryLongName");
-    public static final Property<String> PAINTING_DESCRIPTION = new Property<>("paintingDescription");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<String> TEXT_LONG_REVIEW = new Property<>("textLongReview");
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
-    public static final Property<ROArtist> TO_ARTIST1 = new Property<>("toArtist1");
-    public static final Property<Gallery> TO_GALLERY = new Property<>("toGallery");
-    public static final Property<PaintingInfo> TO_PAINTING_INFO = new Property<>("toPaintingInfo");
+    public static final Property<String> ARTIST_LONG_NAME = Property.create("artistLongName", String.class);
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> GALLERY_LONG_NAME = Property.create("galleryLongName", String.class);
+    public static final Property<String> PAINTING_DESCRIPTION = Property.create("paintingDescription", String.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<String> TEXT_LONG_REVIEW = Property.create("textLongReview", String.class);
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
+    public static final Property<ROArtist> TO_ARTIST1 = Property.create("toArtist1", ROArtist.class);
+    public static final Property<Gallery> TO_GALLERY = Property.create("toGallery", Gallery.class);
+    public static final Property<PaintingInfo> TO_PAINTING_INFO = Property.create("toPaintingInfo", PaintingInfo.class);
 
     public void setArtistLongName(String artistLongName) {
         writeProperty("artistLongName", artistLongName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Exhibit.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Exhibit.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Exhibit.java
index 6c0d75c..00a8b29 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Exhibit.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Exhibit.java
@@ -20,10 +20,10 @@ public abstract class _Exhibit extends CayenneDataObject {
 
     public static final String EXHIBIT_ID_PK_COLUMN = "EXHIBIT_ID";
 
-    public static final Property<Date> CLOSING_DATE = new Property<>("closingDate");
-    public static final Property<Date> OPENING_DATE = new Property<>("openingDate");
-    public static final Property<List<ArtistExhibit>> ARTIST_EXHIBIT_ARRAY = new Property<>("artistExhibitArray");
-    public static final Property<Gallery> TO_GALLERY = new Property<>("toGallery");
+    public static final Property<Date> CLOSING_DATE = Property.create("closingDate", Date.class);
+    public static final Property<Date> OPENING_DATE = Property.create("openingDate", Date.class);
+    public static final Property<List<ArtistExhibit>> ARTIST_EXHIBIT_ARRAY = Property.create("artistExhibitArray", List.class);
+    public static final Property<Gallery> TO_GALLERY = Property.create("toGallery", Gallery.class);
 
     public void setClosingDate(Date closingDate) {
         writeProperty("closingDate", closingDate);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Gallery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Gallery.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Gallery.java
index e2bc498..73bf5a2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Gallery.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Gallery.java
@@ -19,9 +19,9 @@ public abstract class _Gallery extends CayenneDataObject {
 
     public static final String GALLERY_ID_PK_COLUMN = "GALLERY_ID";
 
-    public static final Property<String> GALLERY_NAME = new Property<>("galleryName");
-    public static final Property<List<Exhibit>> EXHIBIT_ARRAY = new Property<>("exhibitArray");
-    public static final Property<List<Painting>> PAINTING_ARRAY = new Property<>("paintingArray");
+    public static final Property<String> GALLERY_NAME = Property.create("galleryName", String.class);
+    public static final Property<List<Exhibit>> EXHIBIT_ARRAY = Property.create("exhibitArray", List.class);
+    public static final Property<List<Painting>> PAINTING_ARRAY = Property.create("paintingArray", List.class);
 
     public void setGalleryName(String galleryName) {
         writeProperty("galleryName", galleryName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_MeaningfulGeneratedColumnTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_MeaningfulGeneratedColumnTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_MeaningfulGeneratedColumnTestEntity.java
index 3bac978..77ff7bf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_MeaningfulGeneratedColumnTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_MeaningfulGeneratedColumnTestEntity.java
@@ -15,8 +15,8 @@ public abstract class _MeaningfulGeneratedColumnTestEntity extends CayenneDataOb
 
     public static final String GENERATED_COLUMN_PK_COLUMN = "GENERATED_COLUMN";
 
-    public static final Property<Integer> GENERATED_COLUMN = new Property<>("generatedColumn");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<Integer> GENERATED_COLUMN = Property.create("generatedColumn", Integer.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setGeneratedColumn(Integer generatedColumn) {
         writeProperty("generatedColumn", generatedColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_NullTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_NullTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_NullTestEntity.java
index 5c0b608..4e371f7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_NullTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_NullTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _NullTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting.java
index 9ba62d7..a0c1810 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting.java
@@ -20,12 +20,12 @@ public abstract class _Painting extends ArtDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> PAINTING_DESCRIPTION = new Property<>("paintingDescription");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
-    public static final Property<Gallery> TO_GALLERY = new Property<>("toGallery");
-    public static final Property<PaintingInfo> TO_PAINTING_INFO = new Property<>("toPaintingInfo");
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> PAINTING_DESCRIPTION = Property.create("paintingDescription", String.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
+    public static final Property<Gallery> TO_GALLERY = Property.create("toGallery", Gallery.class);
+    public static final Property<PaintingInfo> TO_PAINTING_INFO = Property.create("toPaintingInfo", PaintingInfo.class);
 
     public void setEstimatedPrice(BigDecimal estimatedPrice) {
         writeProperty("estimatedPrice", estimatedPrice);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting1.java
index a7165e1..797581d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Painting1.java
@@ -18,9 +18,9 @@ public abstract class _Painting1 extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
 
     public void setEstimatedPrice(BigDecimal estimatedPrice) {
         writeProperty("estimatedPrice", estimatedPrice);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_PaintingInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_PaintingInfo.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_PaintingInfo.java
index f2f8062..81930b6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_PaintingInfo.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_PaintingInfo.java
@@ -16,9 +16,9 @@ public abstract class _PaintingInfo extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<byte[]> IMAGE_BLOB = new Property<>("imageBlob");
-    public static final Property<String> TEXT_REVIEW = new Property<>("textReview");
-    public static final Property<Painting> PAINTING = new Property<>("painting");
+    public static final Property<byte[]> IMAGE_BLOB = Property.create("imageBlob", byte[].class);
+    public static final Property<String> TEXT_REVIEW = Property.create("textReview", String.class);
+    public static final Property<Painting> PAINTING = Property.create("painting", Painting.class);
 
     public void setImageBlob(byte[] imageBlob) {
         writeProperty("imageBlob", imageBlob);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROArtist.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROArtist.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROArtist.java
index 3ecf3d2..40a307d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROArtist.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROArtist.java
@@ -19,9 +19,9 @@ public abstract class _ROArtist extends CayenneDataObject {
 
     public static final String ARTIST_ID_PK_COLUMN = "ARTIST_ID";
 
-    public static final Property<String> ARTIST_NAME = new Property<>("artistName");
-    public static final Property<Date> DATE_OF_BIRTH = new Property<>("dateOfBirth");
-    public static final Property<List<Painting>> PAINTING_ARRAY = new Property<>("paintingArray");
+    public static final Property<String> ARTIST_NAME = Property.create("artistName", String.class);
+    public static final Property<Date> DATE_OF_BIRTH = Property.create("dateOfBirth", Date.class);
+    public static final Property<List<Painting>> PAINTING_ARRAY = Property.create("paintingArray", List.class);
 
     public String getArtistName() {
         return (String)readProperty("artistName");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROPainting.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROPainting.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROPainting.java
index 41f3d7c..b0b4d95 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROPainting.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ROPainting.java
@@ -18,9 +18,9 @@ public abstract class _ROPainting extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<Artist> TO_ARTIST = new Property<>("toArtist");
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<Artist> TO_ARTIST = Property.create("toArtist", Artist.class);
 
     public BigDecimal getEstimatedPrice() {
         return (BigDecimal)readProperty("estimatedPrice");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_RWCompoundPainting.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_RWCompoundPainting.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_RWCompoundPainting.java
index 9246823..f4a84f3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_RWCompoundPainting.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_RWCompoundPainting.java
@@ -17,9 +17,9 @@ public abstract class _RWCompoundPainting extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<BigDecimal> ESTIMATED_PRICE = new Property<>("estimatedPrice");
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
-    public static final Property<String> TEXT_REVIEW = new Property<>("textReview");
+    public static final Property<BigDecimal> ESTIMATED_PRICE = Property.create("estimatedPrice", BigDecimal.class);
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
+    public static final Property<String> TEXT_REVIEW = Property.create("textReview", String.class);
 
     public void setEstimatedPrice(BigDecimal estimatedPrice) {
         writeProperty("estimatedPrice", estimatedPrice);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_SubPainting.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_SubPainting.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_SubPainting.java
index 160926d..9029232 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_SubPainting.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_SubPainting.java
@@ -15,7 +15,7 @@ public abstract class _SubPainting extends CayenneDataObject {
 
     public static final String PAINTING_ID_PK_COLUMN = "PAINTING_ID";
 
-    public static final Property<String> PAINTING_TITLE = new Property<>("paintingTitle");
+    public static final Property<String> PAINTING_TITLE = Property.create("paintingTitle", String.class);
 
     public void setPaintingTitle(String paintingTitle) {
         writeProperty("paintingTitle", paintingTitle);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
index a816483..ca0a68e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
@@ -20,10 +20,10 @@ public abstract class _Bag extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Ball>> BALLS = new Property<>("balls");
-    public static final Property<List<Box>> BOXES = new Property<>("boxes");
-    public static final Property<List<Thing>> THINGS = new Property<>("things");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Ball>> BALLS = Property.create("balls", List.class);
+    public static final Property<List<Box>> BOXES = Property.create("boxes", List.class);
+    public static final Property<List<Thing>> THINGS = Property.create("things", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
index c8e3a78..6ecb6de 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
@@ -17,10 +17,10 @@ public abstract class _Ball extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> THING_VOLUME = new Property<>("thingVolume");
-    public static final Property<Integer> THING_WEIGHT = new Property<>("thingWeight");
-    public static final Property<Box> BOX = new Property<>("box");
-    public static final Property<Thing> THING = new Property<>("thing");
+    public static final Property<Integer> THING_VOLUME = Property.create("thingVolume", Integer.class);
+    public static final Property<Integer> THING_WEIGHT = Property.create("thingWeight", Integer.class);
+    public static final Property<Box> BOX = Property.create("box", Box.class);
+    public static final Property<Thing> THING = Property.create("thing", Thing.class);
 
     public void setThingVolume(Integer thingVolume) {
         writeProperty("thingVolume", thingVolume);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
index 2bfe42a..25d42ca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
@@ -21,11 +21,11 @@ public abstract class _Box extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<Bag> BAG = new Property<>("bag");
-    public static final Property<List<Ball>> BALLS = new Property<>("balls");
-    public static final Property<BoxInfo> BOX_INFO = new Property<>("boxInfo");
-    public static final Property<List<Thing>> THINGS = new Property<>("things");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Bag> BAG = Property.create("bag", Bag.class);
+    public static final Property<List<Ball>> BALLS = Property.create("balls", List.class);
+    public static final Property<BoxInfo> BOX_INFO = Property.create("boxInfo", BoxInfo.class);
+    public static final Property<List<Thing>> THINGS = Property.create("things", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
index 9f4222a..5242a02 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
@@ -16,8 +16,8 @@ public abstract class _BoxInfo extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> COLOR = new Property<>("color");
-    public static final Property<Box> BOX = new Property<>("box");
+    public static final Property<String> COLOR = Property.create("color", String.class);
+    public static final Property<Box> BOX = Property.create("box", Box.class);
 
     public void setColor(String color) {
         writeProperty("color", color);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
index 1ef46f0..29b14d9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
@@ -19,10 +19,10 @@ public abstract class _Thing extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> VOLUME = new Property<>("volume");
-    public static final Property<Integer> WEIGHT = new Property<>("weight");
-    public static final Property<Ball> BALL = new Property<>("ball");
-    public static final Property<List<Box>> BOX = new Property<>("box");
+    public static final Property<Integer> VOLUME = Property.create("volume", Integer.class);
+    public static final Property<Integer> WEIGHT = Property.create("weight", Integer.class);
+    public static final Property<Ball> BALL = Property.create("ball", Ball.class);
+    public static final Property<List<Box>> BOX = Property.create("box", List.class);
 
     public void setVolume(Integer volume) {
         writeProperty("volume", volume);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index fc9917d..7eda60c 100644
--- 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
@@ -16,7 +16,7 @@ public abstract class _TooneDep extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<TooneMaster> TO_MASTER = new Property<>("toMaster");
+    public static final Property<TooneMaster> TO_MASTER = Property.create("toMaster", TooneMaster.class);
 
     public void setToMaster(TooneMaster toMaster) {
         setToOneTarget("toMaster", toMaster, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index b89c729..b84b25e 100644
--- 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
@@ -16,7 +16,7 @@ public abstract class _TooneMaster extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<TooneDep> TO_DEPENDENT = new Property<>("toDependent");
+    public static final Property<TooneDep> TO_DEPENDENT = Property.create("toDependent", TooneDep.class);
 
     public void setToDependent(TooneDep toDependent) {
         setToOneTarget("toDependent", toDependent, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
index 6d6a902..de114e6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
@@ -18,8 +18,8 @@ public abstract class _Customer extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> LONGVARCHAR_COL = new Property<>("longvarcharCol");
-    public static final Property<List<Product>> ORDER = new Property<>("order");
+    public static final Property<String> LONGVARCHAR_COL = Property.create("longvarcharCol", String.class);
+    public static final Property<List<Product>> ORDER = Property.create("order", List.class);
 
     public void setLongvarcharCol(String longvarcharCol) {
         writeProperty("longvarcharCol", longvarcharCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
index 7b320c8..9739b36 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
@@ -19,10 +19,10 @@ public abstract class _Product extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> LONGVARCHAR_COL = new Property<>("longvarcharCol");
-    public static final Property<List<Product>> BASE = new Property<>("base");
-    public static final Property<List<Product>> CONTAINED = new Property<>("contained");
-    public static final Property<List<Customer>> ORDER_BY = new Property<>("orderBy");
+    public static final Property<String> LONGVARCHAR_COL = Property.create("longvarcharCol", String.class);
+    public static final Property<List<Product>> BASE = Property.create("base", List.class);
+    public static final Property<List<Product>> CONTAINED = Property.create("contained", List.class);
+    public static final Property<List<Customer>> ORDER_BY = Property.create("orderBy", List.class);
 
     public void setLongvarcharCol(String longvarcharCol) {
         writeProperty("longvarcharCol", longvarcharCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
index b8bc876..1550c32 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
@@ -17,7 +17,7 @@ public abstract class _UuidPkEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<UUID> ID = new Property<>("id");
+    public static final Property<UUID> ID = Property.create("id", UUID.class);
 
     public void setId(UUID id) {
         writeProperty("id", id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
index 3cf702b..c5f0671 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
@@ -17,7 +17,7 @@ public abstract class _UuidTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<UUID> UUID = new Property<>("uuid");
+    public static final Property<UUID> UUID = Property.create("uuid", UUID.class);
 
     public void setUuid(UUID uuid) {
         writeProperty("uuid", uuid);


[3/3] cayenne git commit: CAY-2227 Update generated sources

Posted by nt...@apache.org.
CAY-2227 Update generated sources


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

Branch: refs/heads/master
Commit: fd8234d3534487e689b6d739ecccf4de8f85c382
Parents: dc943e1
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Feb 13 13:13:19 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Feb 13 13:13:19 2017 +0300

----------------------------------------------------------------------
 .../apache/cayenne/crypto/db/auto/_Table1.java  |  8 ++--
 .../apache/cayenne/crypto/db/auto/_Table2.java  |  4 +-
 .../apache/cayenne/crypto/db/auto/_Table3.java  |  2 +-
 .../apache/cayenne/crypto/db/auto/_Table4.java  |  4 +-
 .../java8/db/auto/_LocalDateTestEntity.java     |  2 +-
 .../java8/db/auto/_LocalDateTimeTestEntity.java |  2 +-
 .../java8/db/auto/_LocalTimeTestEntity.java     |  2 +-
 .../joda/db/auto/_DateTimeTestEntity.java       |  2 +-
 .../joda/db/auto/_LocalDateTestEntity.java      |  2 +-
 .../joda/db/auto/_LocalDateTimeTestEntity.java  |  2 +-
 .../joda/db/auto/_LocalTimeTestEntity.java      |  2 +-
 .../persistent/auto/_ClientMtTable1.java        | 14 +++---
 .../persistent/auto/_ClientMtTable2.java        |  4 +-
 .../array_type/auto/_ArrayTestEntity.java       |  2 +-
 .../testdo/binary_pk/auto/_BinaryPKTest1.java   |  4 +-
 .../testdo/binary_pk/auto/_BinaryPKTest2.java   |  4 +-
 .../testdo/compound/auto/_CharFkTestEntity.java |  4 +-
 .../testdo/compound/auto/_CharPkTestEntity.java |  6 +--
 .../compound/auto/_CompoundFkTestEntity.java    |  4 +-
 .../compound/auto/_CompoundPkTestEntity.java    |  8 ++--
 .../testdo/date_time/auto/_CalendarEntity.java  |  2 +-
 .../testdo/date_time/auto/_DateTestEntity.java  |  6 +--
 .../cayenne/testdo/db1/auto/_CrossdbM1E1.java   |  6 +--
 .../cayenne/testdo/db2/auto/_CrossdbM2E1.java   |  4 +-
 .../cayenne/testdo/db2/auto/_CrossdbM2E2.java   |  6 +--
 .../testdo/deleterules/auto/_DeleteCascade.java |  4 +-
 .../testdo/deleterules/auto/_DeleteDeny.java    |  4 +-
 .../testdo/deleterules/auto/_DeleteNullify.java |  4 +-
 .../testdo/deleterules/auto/_DeleteRule.java    |  8 ++--
 .../testdo/embeddable/auto/_EmbedEntity1.java   |  6 +--
 .../testdo/embeddable/auto/_Embeddable1.java    |  4 +-
 .../testdo/enum_test/auto/_EnumEntity.java      |  2 +-
 .../extended_type/auto/_ExtendedTypeEntity.java |  2 +-
 .../generated/auto/_GeneratedColumnCompKey.java |  4 +-
 .../auto/_GeneratedColumnCompMaster.java        |  4 +-
 .../generated/auto/_GeneratedColumnDep.java     |  4 +-
 .../generated/auto/_GeneratedColumnTest2.java   |  2 +-
 .../auto/_GeneratedColumnTestEntity.java        |  4 +-
 .../testdo/generated/auto/_GeneratedF1.java     |  2 +-
 .../testdo/generated/auto/_GeneratedF2.java     |  2 +-
 .../testdo/inheritance/auto/_BaseEntity.java    |  6 +--
 .../inheritance/auto/_DirectToSubEntity.java    |  2 +-
 .../testdo/inheritance/auto/_RelatedEntity.java |  4 +-
 .../testdo/inheritance_flat/auto/_Group.java    |  4 +-
 .../inheritance_flat/auto/_GroupProperties.java |  6 +--
 .../testdo/inheritance_flat/auto/_Role.java     |  8 ++--
 .../testdo/inheritance_flat/auto/_User.java     |  2 +-
 .../inheritance_flat/auto/_UserProperties.java  |  6 +--
 .../auto/_AbstractPerson.java                   |  6 +--
 .../inheritance_people/auto/_Address.java       |  4 +-
 .../inheritance_people/auto/_ClientCompany.java |  4 +-
 .../auto/_CustomerRepresentative.java           |  4 +-
 .../inheritance_people/auto/_Department.java    |  6 +--
 .../inheritance_people/auto/_Employee.java      |  6 +--
 .../inheritance_people/auto/_Manager.java       |  2 +-
 .../inheritance_people/auto/_PersonNotes.java   |  4 +-
 .../inheritance_vertical/auto/_Iv1Root.java     |  4 +-
 .../inheritance_vertical/auto/_Iv1Sub1.java     |  2 +-
 .../inheritance_vertical/auto/_Iv2Root.java     |  2 +-
 .../inheritance_vertical/auto/_Iv2Sub1.java     |  2 +-
 .../inheritance_vertical/auto/_IvAbstract.java  |  2 +-
 .../inheritance_vertical/auto/_IvBase.java      |  4 +-
 .../inheritance_vertical/auto/_IvConcrete.java  |  6 +--
 .../inheritance_vertical/auto/_IvImpl.java      |  4 +-
 .../inheritance_vertical/auto/_IvOther.java     |  4 +-
 .../inheritance_vertical/auto/_IvRoot.java      |  4 +-
 .../inheritance_vertical/auto/_IvSub1.java      |  2 +-
 .../inheritance_vertical/auto/_IvSub1Sub1.java  |  2 +-
 .../inheritance_vertical/auto/_IvSub2.java      |  4 +-
 .../inheritance_vertical/auto/_IvSub3.java      |  2 +-
 .../auto/_Lifecycle.java                        |  2 +-
 .../testdo/lifecycles/auto/_Lifecycles.java     |  2 +-
 .../testdo/lob/auto/_BlobTestEntity.java        |  2 +-
 .../testdo/lob/auto/_ClobTestEntity.java        |  4 +-
 .../testdo/lob/auto/_ClobTestRelation.java      |  6 +--
 .../testdo/lob/auto/_NClobTestEntity.java       |  2 +-
 .../testdo/locking/auto/_LockingHelper.java     |  4 +-
 .../locking/auto/_RelLockingTestEntity.java     |  6 +--
 .../locking/auto/_SimpleLockingTestEntity.java  |  4 +-
 .../testdo/map_to_many/auto/_IdMapToMany.java   |  2 +-
 .../map_to_many/auto/_IdMapToManyTarget.java    |  2 +-
 .../testdo/map_to_many/auto/_MapToMany.java     |  2 +-
 .../map_to_many/auto/_MapToManyTarget.java      |  4 +-
 .../meaningful_pk/auto/_MeaningfulPKDep.java    |  4 +-
 .../meaningful_pk/auto/_MeaningfulPKTest1.java  |  6 +--
 .../meaningful_pk/auto/_MeaningfulPk.java       |  2 +-
 .../testdo/misc_types/auto/_ArraysEntity.java   |  8 ++--
 .../misc_types/auto/_CharacterEntity.java       |  2 +-
 .../misc_types/auto/_SerializableEntity.java    |  2 +-
 .../auto/_MixedPersistenceStrategy.java         |  6 +--
 .../auto/_MixedPersistenceStrategy2.java        |  4 +-
 .../cayenne/testdo/mt/auto/_MtTable1.java       |  6 +--
 .../testdo/mt/auto/_MtTable1Subclass1.java      |  2 +-
 .../testdo/mt/auto/_MtTable1Subclass2.java      |  2 +-
 .../cayenne/testdo/mt/auto/_MtTable2.java       |  6 +--
 .../cayenne/testdo/mt/auto/_MtTable3.java       |  8 ++--
 .../cayenne/testdo/mt/auto/_MtTable4.java       |  2 +-
 .../cayenne/testdo/mt/auto/_MtTable5.java       |  2 +-
 .../testdo/no_pk/auto/_NoPkTestEntity.java      |  2 +-
 .../numeric_types/auto/_BigDecimalEntity.java   |  2 +-
 .../numeric_types/auto/_BigIntegerEntity.java   |  2 +-
 .../auto/_BitNumberTestEntity.java              |  2 +-
 .../numeric_types/auto/_BitTestEntity.java      |  2 +-
 .../numeric_types/auto/_BooleanTestEntity.java  |  2 +-
 .../numeric_types/auto/_DecimalPKTest1.java     |  4 +-
 .../auto/_DecimalPKTestEntity.java              |  4 +-
 .../testdo/numeric_types/auto/_LongEntity.java  |  2 +-
 .../numeric_types/auto/_SmallintTestEntity.java |  2 +-
 .../numeric_types/auto/_TinyintTestEntity.java  |  2 +-
 .../testdo/oneway/auto/_OnewayTable2.java       |  4 +-
 .../testdo/oneway/auto/_OnewayTable3.java       |  2 +-
 .../testdo/qualified/auto/_Qualified1.java      |  6 +--
 .../testdo/qualified/auto/_Qualified2.java      |  6 +--
 .../testdo/quotemap/auto/_QuoteAdress.java      |  6 +--
 .../testdo/quotemap/auto/_Quote_Person.java     | 12 ++---
 .../testdo/reflexive/auto/_Reflexive.java       |  6 +--
 .../relationships/auto/_FkOfDifferentType.java  |  2 +-
 .../relationships/auto/_MeaningfulFK.java       |  4 +-
 .../relationships/auto/_ReflexiveAndToOne.java  |  8 ++--
 .../relationships/auto/_RelationshipHelper.java |  8 ++--
 .../relationships_activity/auto/_Activity.java  |  6 +--
 .../auto/_ActivityResult.java                   |  6 +--
 .../relationships_child_master/auto/_Child.java |  2 +-
 .../auto/_Master.java                           |  4 +-
 .../relationships_clob/auto/_ClobDetail.java    |  4 +-
 .../relationships_clob/auto/_ClobMaster.java    |  6 +--
 .../auto/_CollectionToMany.java                 |  2 +-
 .../auto/_CollectionToManyTarget.java           |  2 +-
 .../auto/_DeleteRuleFlatA.java                  |  2 +-
 .../auto/_DeleteRuleFlatB.java                  |  2 +-
 .../auto/_DeleteRuleTest1.java                  |  2 +-
 .../auto/_DeleteRuleTest2.java                  |  4 +-
 .../auto/_DeleteRuleTest3.java                  |  2 +-
 .../auto/_FlattenedCircular.java                |  4 +-
 .../auto/_FlattenedTest1.java                   | 10 ++---
 .../auto/_FlattenedTest2.java                   |  6 +--
 .../auto/_FlattenedTest3.java                   |  8 ++--
 .../auto/_FlattenedTest4.java                   |  4 +-
 .../auto/_SetToMany.java                        |  2 +-
 .../auto/_SetToManyTarget.java                  |  2 +-
 .../auto/_ToManyFkDep.java                      |  8 ++--
 .../auto/_ToManyFkRoot.java                     |  6 +--
 .../auto/_ToManyRoot2.java                      |  4 +-
 .../relationships_to_one_fk/auto/_ToOneFK1.java |  2 +-
 .../relationships_to_one_fk/auto/_ToOneFK2.java |  2 +-
 .../return_types/auto/_ReturnTypesMap1.java     | 46 ++++++++++----------
 .../return_types/auto/_ReturnTypesMap2.java     |  8 ++--
 .../return_types/auto/_ReturnTypesMapLobs1.java |  4 +-
 .../testdo/soft_delete/auto/_SoftDelete.java    |  4 +-
 .../table_primitives/auto/_TablePrimitives.java |  4 +-
 .../cayenne/testdo/testmap/auto/_ArtGroup.java  |  8 ++--
 .../testdo/testmap/auto/_ArtistCallback.java    |  4 +-
 .../testdo/testmap/auto/_ArtistExhibit.java     |  4 +-
 .../testdo/testmap/auto/_CompoundPainting.java  | 16 +++----
 .../auto/_CompoundPaintingLongNames.java        | 20 ++++-----
 .../cayenne/testdo/testmap/auto/_Exhibit.java   |  8 ++--
 .../cayenne/testdo/testmap/auto/_Gallery.java   |  6 +--
 .../_MeaningfulGeneratedColumnTestEntity.java   |  4 +-
 .../testdo/testmap/auto/_NullTestEntity.java    |  2 +-
 .../cayenne/testdo/testmap/auto/_Painting.java  | 12 ++---
 .../cayenne/testdo/testmap/auto/_Painting1.java |  6 +--
 .../testdo/testmap/auto/_PaintingInfo.java      |  6 +--
 .../cayenne/testdo/testmap/auto/_ROArtist.java  |  6 +--
 .../testdo/testmap/auto/_ROPainting.java        |  6 +--
 .../testmap/auto/_RWCompoundPainting.java       |  6 +--
 .../testdo/testmap/auto/_SubPainting.java       |  2 +-
 .../apache/cayenne/testdo/things/auto/_Bag.java |  8 ++--
 .../cayenne/testdo/things/auto/_Ball.java       |  8 ++--
 .../apache/cayenne/testdo/things/auto/_Box.java | 10 ++---
 .../cayenne/testdo/things/auto/_BoxInfo.java    |  4 +-
 .../cayenne/testdo/things/auto/_Thing.java      |  8 ++--
 .../cayenne/testdo/toone/auto/_TooneDep.java    |  2 +-
 .../cayenne/testdo/toone/auto/_TooneMaster.java |  2 +-
 .../auto/_Customer.java                         |  4 +-
 .../auto/_Product.java                          |  8 ++--
 .../cayenne/testdo/uuid/auto/_UuidPkEntity.java |  2 +-
 .../testdo/uuid/auto/_UuidTestEntity.java       |  2 +-
 177 files changed, 408 insertions(+), 408 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
index 1a22f44..ca49870 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table1.java
@@ -15,10 +15,10 @@ public abstract class _Table1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> CRYPTO_INT = new Property<>("cryptoInt");
-    public static final Property<String> CRYPTO_STRING = new Property<>("cryptoString");
-    public static final Property<Integer> PLAIN_INT = new Property<>("plainInt");
-    public static final Property<String> PLAIN_STRING = new Property<>("plainString");
+    public static final Property<Integer> CRYPTO_INT = Property.create("cryptoInt", Integer.class);
+    public static final Property<String> CRYPTO_STRING = Property.create("cryptoString", String.class);
+    public static final Property<Integer> PLAIN_INT = Property.create("plainInt", Integer.class);
+    public static final Property<String> PLAIN_STRING = Property.create("plainString", String.class);
 
     public void setCryptoInt(int cryptoInt) {
         writeProperty("cryptoInt", cryptoInt);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
index 5cc9133..3c65795 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table2.java
@@ -15,8 +15,8 @@ public abstract class _Table2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<byte[]> CRYPTO_BYTES = new Property<>("cryptoBytes");
-    public static final Property<byte[]> PLAIN_BYTES = new Property<>("plainBytes");
+    public static final Property<byte[]> CRYPTO_BYTES = Property.create("cryptoBytes", byte[].class);
+    public static final Property<byte[]> PLAIN_BYTES = Property.create("plainBytes", byte[].class);
 
     public void setCryptoBytes(byte[] cryptoBytes) {
         writeProperty("cryptoBytes", cryptoBytes);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
index f21a3fa..917197c 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table3.java
@@ -15,7 +15,7 @@ public abstract class _Table3 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> CRYPTO_STRING = new Property<>("cryptoString");
+    public static final Property<String> CRYPTO_STRING = Property.create("cryptoString", String.class);
 
     public void setCryptoString(String cryptoString) {
         writeProperty("cryptoString", cryptoString);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
index 6349072..ae30286 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/db/auto/_Table4.java
@@ -15,8 +15,8 @@ public abstract class _Table4 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> PLAIN_INT = new Property<>("plainInt");
-    public static final Property<String> PLAIN_STRING = new Property<>("plainString");
+    public static final Property<Integer> PLAIN_INT = Property.create("plainInt", Integer.class);
+    public static final Property<String> PLAIN_STRING = Property.create("plainString", String.class);
 
     public void setPlainInt(int plainInt) {
         writeProperty("plainInt", plainInt);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java
index 6f3fc61..d5db3b9 100644
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java
@@ -17,7 +17,7 @@ public abstract class _LocalDateTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalDate> DATE = new Property<LocalDate>("date");
+    public static final Property<LocalDate> DATE = Property.create("date", LocalDate.class);
 
     public void setDate(LocalDate date) {
         writeProperty("date", date);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java
index f4e1fde..59623a0 100644
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java
@@ -17,7 +17,7 @@ public abstract class _LocalDateTimeTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalDateTime> TIMESTAMP = new Property<LocalDateTime>("timestamp");
+    public static final Property<LocalDateTime> TIMESTAMP = Property.create("timestamp", LocalDateTime.class);
 
     public void setTimestamp(LocalDateTime timestamp) {
         writeProperty("timestamp", timestamp);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java
index 1a2840f..3b2ea88 100644
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java
@@ -17,7 +17,7 @@ public abstract class _LocalTimeTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalTime> TIME = new Property<LocalTime>("time");
+    public static final Property<LocalTime> TIME = Property.create("time", LocalTime.class);
 
     public void setTime(LocalTime time) {
         writeProperty("time", time);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_DateTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_DateTimeTestEntity.java b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_DateTimeTestEntity.java
index 611ba82..2fd9d91 100644
--- a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_DateTimeTestEntity.java
+++ b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_DateTimeTestEntity.java
@@ -16,7 +16,7 @@ public abstract class _DateTimeTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<DateTime> TIMESTAMP = new Property<DateTime>("timestamp");
+    public static final Property<DateTime> TIMESTAMP = Property.create("timestamp", DateTime.class);
 
     public void setTimestamp(DateTime timestamp) {
         writeProperty("timestamp", timestamp);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTestEntity.java b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTestEntity.java
index ac18b66..72c60dd 100644
--- a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTestEntity.java
+++ b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTestEntity.java
@@ -16,7 +16,7 @@ public abstract class _LocalDateTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalDate> DATE = new Property<LocalDate>("date");
+    public static final Property<LocalDate> DATE = Property.create("date", LocalDate.class);
 
     public void setDate(LocalDate date) {
         writeProperty("date", date);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTimeTestEntity.java b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTimeTestEntity.java
index fab8c8e..bca6b26 100644
--- a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTimeTestEntity.java
+++ b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalDateTimeTestEntity.java
@@ -16,7 +16,7 @@ public abstract class _LocalDateTimeTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalDateTime> TIMESTAMP = new Property<LocalDateTime>("timestamp");
+    public static final Property<LocalDateTime> TIMESTAMP = Property.create("timestamp", LocalDateTime.class);
 
     public void setTimestamp(LocalDateTime timestamp) {
         writeProperty("timestamp", timestamp);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalTimeTestEntity.java b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalTimeTestEntity.java
index a06eb89..422ceec 100644
--- a/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalTimeTestEntity.java
+++ b/cayenne-joda/src/test/java/org/apache/cayenne/joda/db/auto/_LocalTimeTestEntity.java
@@ -16,7 +16,7 @@ public abstract class _LocalTimeTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<LocalTime> TIME = new Property<LocalTime>("time");
+    public static final Property<LocalTime> TIME = Property.create("time", LocalTime.class);
 
     public void setTime(LocalTime time) {
         writeProperty("time", time);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
index 30e9a7f..f471aa6 100644
--- a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
+++ b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable1.java
@@ -18,13 +18,13 @@ import org.apache.cayenne.util.PersistentObjectList;
  */
 public abstract class _ClientMtTable1 extends PersistentObject {
 
-    public static final Property<LocalDate> DATE_ATTRIBUTE = new Property<LocalDate>("dateAttribute");
-    public static final Property<String> GLOBAL_ATTRIBUTE = new Property<String>("globalAttribute");
-    public static final Property<Date> OLD_DATE_ATTRIBUTE = new Property<Date>("oldDateAttribute");
-    public static final Property<String> SERVER_ATTRIBUTE = new Property<String>("serverAttribute");
-    public static final Property<LocalTime> TIME_ATTRIBUTE = new Property<LocalTime>("timeAttribute");
-    public static final Property<LocalDateTime> TIMESTAMP_ATTRIBUTE = new Property<LocalDateTime>("timestampAttribute");
-    public static final Property<List<ClientMtTable2>> TABLE2ARRAY = new Property<List<ClientMtTable2>>("table2Array");
+    public static final Property<LocalDate> DATE_ATTRIBUTE = Property.create("dateAttribute", LocalDate.class);
+    public static final Property<String> GLOBAL_ATTRIBUTE = Property.create("globalAttribute", String.class);
+    public static final Property<Date> OLD_DATE_ATTRIBUTE = Property.create("oldDateAttribute", Date.class);
+    public static final Property<String> SERVER_ATTRIBUTE = Property.create("serverAttribute", String.class);
+    public static final Property<LocalTime> TIME_ATTRIBUTE = Property.create("timeAttribute", LocalTime.class);
+    public static final Property<LocalDateTime> TIMESTAMP_ATTRIBUTE = Property.create("timestampAttribute", LocalDateTime.class);
+    public static final Property<List<ClientMtTable2>> TABLE2ARRAY = Property.create("table2Array", List.class);
 
     protected LocalDate dateAttribute;
     protected String globalAttribute;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
index b4432a1..598fcdf 100644
--- a/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
+++ b/cayenne-protostuff/src/test/java/org/apache/cayenne/rop/protostuff/persistent/auto/_ClientMtTable2.java
@@ -13,8 +13,8 @@ import org.apache.cayenne.util.PersistentObjectHolder;
  */
 public abstract class _ClientMtTable2 extends PersistentObject {
 
-    public static final Property<String> GLOBAL_ATTRIBUTE = new Property<String>("globalAttribute");
-    public static final Property<ClientMtTable1> TABLE1 = new Property<ClientMtTable1>("table1");
+    public static final Property<String> GLOBAL_ATTRIBUTE = Property.create("globalAttribute", String.class);
+    public static final Property<org.apache.cayenne.rop.protostuff.persistent.MtTable1> TABLE1 = Property.create("table1", org.apache.cayenne.rop.protostuff.persistent.MtTable1.class);
 
     protected String globalAttribute;
     protected ValueHolder table1;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/array_type/auto/_ArrayTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/array_type/auto/_ArrayTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/array_type/auto/_ArrayTestEntity.java
index e4d22ae..36102ca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/array_type/auto/_ArrayTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/array_type/auto/_ArrayTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _ArrayTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Double[]> DOUBLE_ARRAY = new Property<>("doubleArray");
+    public static final Property<Double[]> DOUBLE_ARRAY = Property.create("doubleArray", Double[].class);
 
     public void setDoubleArray(Double[] doubleArray) {
         writeProperty("doubleArray", doubleArray);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest1.java
index e2f656a..0ad5986 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest1.java
@@ -18,8 +18,8 @@ public abstract class _BinaryPKTest1 extends CayenneDataObject {
 
     public static final String BIN_ID_PK_COLUMN = "BIN_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<BinaryPKTest2>> BINARY_PKDETAILS = new Property<>("binaryPKDetails");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<BinaryPKTest2>> BINARY_PKDETAILS = Property.create("binaryPKDetails", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest2.java
index bd5c716..9e1c2c3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/binary_pk/auto/_BinaryPKTest2.java
@@ -16,8 +16,8 @@ public abstract class _BinaryPKTest2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> DETAIL_NAME = new Property<>("detailName");
-    public static final Property<BinaryPKTest1> TO_BINARY_PKMASTER = new Property<>("toBinaryPKMaster");
+    public static final Property<String> DETAIL_NAME = Property.create("detailName", String.class);
+    public static final Property<BinaryPKTest1> TO_BINARY_PKMASTER = Property.create("toBinaryPKMaster", BinaryPKTest1.class);
 
     public void setDetailName(String detailName) {
         writeProperty("detailName", detailName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharFkTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharFkTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharFkTestEntity.java
index 3dd2663..9f6c4e1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharFkTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharFkTestEntity.java
@@ -16,8 +16,8 @@ public abstract class _CharFkTestEntity extends CayenneDataObject {
 
     public static final String PK_PK_COLUMN = "PK";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<CharPkTestEntity> TO_CHAR_PK = new Property<>("toCharPK");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<CharPkTestEntity> TO_CHAR_PK = Property.create("toCharPK", CharPkTestEntity.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharPkTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharPkTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharPkTestEntity.java
index 6a3eabd..05ae88f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharPkTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CharPkTestEntity.java
@@ -18,9 +18,9 @@ public abstract class _CharPkTestEntity extends CayenneDataObject {
 
     public static final String PK_COL_PK_COLUMN = "PK_COL";
 
-    public static final Property<String> OTHER_COL = new Property<>("otherCol");
-    public static final Property<String> PK_COL = new Property<>("pkCol");
-    public static final Property<List<CharFkTestEntity>> CHAR_FKS = new Property<>("charFKs");
+    public static final Property<String> OTHER_COL = Property.create("otherCol", String.class);
+    public static final Property<String> PK_COL = Property.create("pkCol", String.class);
+    public static final Property<List<CharFkTestEntity>> CHAR_FKS = Property.create("charFKs", List.class);
 
     public void setOtherCol(String otherCol) {
         writeProperty("otherCol", otherCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundFkTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundFkTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundFkTestEntity.java
index 404a9a0..3bcc635 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundFkTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundFkTestEntity.java
@@ -16,8 +16,8 @@ public abstract class _CompoundFkTestEntity extends CayenneDataObject {
 
     public static final String PKEY_PK_COLUMN = "PKEY";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<CompoundPkTestEntity> TO_COMPOUND_PK = new Property<>("toCompoundPk");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<CompoundPkTestEntity> TO_COMPOUND_PK = Property.create("toCompoundPk", CompoundPkTestEntity.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundPkTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundPkTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundPkTestEntity.java
index 295d14c..c04dfc9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundPkTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/compound/auto/_CompoundPkTestEntity.java
@@ -19,10 +19,10 @@ public abstract class _CompoundPkTestEntity extends CayenneDataObject {
     public static final String KEY1_PK_COLUMN = "KEY1";
     public static final String KEY2_PK_COLUMN = "KEY2";
 
-    public static final Property<String> KEY1 = new Property<>("key1");
-    public static final Property<String> KEY2 = new Property<>("key2");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<CompoundFkTestEntity>> COMPOUND_FK_ARRAY = new Property<>("compoundFkArray");
+    public static final Property<String> KEY1 = Property.create("key1", String.class);
+    public static final Property<String> KEY2 = Property.create("key2", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<CompoundFkTestEntity>> COMPOUND_FK_ARRAY = Property.create("compoundFkArray", List.class);
 
     public void setKey1(String key1) {
         writeProperty("key1", key1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_CalendarEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_CalendarEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_CalendarEntity.java
index 52ad2e1..6efeefd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_CalendarEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_CalendarEntity.java
@@ -17,7 +17,7 @@ public abstract class _CalendarEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Calendar> CALENDAR_FIELD = new Property<>("calendarField");
+    public static final Property<Calendar> CALENDAR_FIELD = Property.create("calendarField", Calendar.class);
 
     public void setCalendarField(Calendar calendarField) {
         writeProperty("calendarField", calendarField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_DateTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_DateTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_DateTestEntity.java
index 66dc69e..6303f03 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_DateTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/date_time/auto/_DateTestEntity.java
@@ -17,9 +17,9 @@ public abstract class _DateTestEntity extends CayenneDataObject {
 
     public static final String DATE_TEST_ID_PK_COLUMN = "DATE_TEST_ID";
 
-    public static final Property<Date> DATE_COLUMN = new Property<>("dateColumn");
-    public static final Property<Date> TIME_COLUMN = new Property<>("timeColumn");
-    public static final Property<Date> TIMESTAMP_COLUMN = new Property<>("timestampColumn");
+    public static final Property<Date> DATE_COLUMN = Property.create("dateColumn", Date.class);
+    public static final Property<Date> TIME_COLUMN = Property.create("timeColumn", Date.class);
+    public static final Property<Date> TIMESTAMP_COLUMN = Property.create("timestampColumn", Date.class);
 
     public void setDateColumn(Date dateColumn) {
         writeProperty("dateColumn", dateColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/db1/auto/_CrossdbM1E1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db1/auto/_CrossdbM1E1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db1/auto/_CrossdbM1E1.java
index e3bec81..0cd4fc0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db1/auto/_CrossdbM1E1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db1/auto/_CrossdbM1E1.java
@@ -19,9 +19,9 @@ public abstract class _CrossdbM1E1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<CrossdbM2E1>> FLATTENED = new Property<>("flattened");
-    public static final Property<List<CrossdbM2E2>> LIST_OF_M2E2 = new Property<>("listOfM2E2");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<CrossdbM2E1>> FLATTENED = Property.create("flattened", List.class);
+    public static final Property<List<CrossdbM2E2>> LIST_OF_M2E2 = Property.create("listOfM2E2", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E1.java
index 1f2c5a0..bcf4067 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E1.java
@@ -18,8 +18,8 @@ public abstract class _CrossdbM2E1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<CrossdbM2E2>> LIST_OF_M2E2 = new Property<>("listOfM2E2");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<CrossdbM2E2>> LIST_OF_M2E2 = Property.create("listOfM2E2", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E2.java
index 4ba67f9..364acfb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/db2/auto/_CrossdbM2E2.java
@@ -17,9 +17,9 @@ public abstract class _CrossdbM2E2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<CrossdbM1E1> TO_M1E1 = new Property<>("toM1E1");
-    public static final Property<CrossdbM2E1> TO_M2E1 = new Property<>("toM2E1");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<CrossdbM1E1> TO_M1E1 = Property.create("toM1E1", CrossdbM1E1.class);
+    public static final Property<CrossdbM2E1> TO_M2E1 = Property.create("toM2E1", CrossdbM2E1.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 691cb9b..821a5f3 100644
--- 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
@@ -16,8 +16,8 @@ public abstract class _DeleteCascade extends CayenneDataObject {
 
     public static final String DELETE_CASCADE_ID_PK_COLUMN = "DELETE_CASCADE_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<DeleteRule> CASCADE = new Property<>("cascade");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<DeleteRule> CASCADE = Property.create("cascade", DeleteRule.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 56621b8..16c2005 100644
--- 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
@@ -16,8 +16,8 @@ public abstract class _DeleteDeny extends CayenneDataObject {
 
     public static final String DELETE_DENY_ID_PK_COLUMN = "DELETE_DENY_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<DeleteRule> DENY = new Property<>("deny");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<DeleteRule> DENY = Property.create("deny", DeleteRule.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 542a9a5..28f9bef 100644
--- 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
@@ -16,8 +16,8 @@ public abstract class _DeleteNullify extends CayenneDataObject {
 
     public static final String DELETE_NULLIFY_ID_PK_COLUMN = "DELETE_NULLIFY_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<DeleteRule> NULLIFY = new Property<>("nullify");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<DeleteRule> NULLIFY = Property.create("nullify", DeleteRule.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index b7cad7d..2f609ea 100644
--- 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
@@ -20,10 +20,10 @@ public abstract class _DeleteRule extends CayenneDataObject {
 
     public static final String DELETE_RULE_ID_PK_COLUMN = "DELETE_RULE_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<DeleteCascade>> FROM_CASCADE = new Property<>("fromCascade");
-    public static final Property<List<DeleteDeny>> FROM_DENY = new Property<>("fromDeny");
-    public static final Property<List<DeleteNullify>> FROM_NULLIFY = new Property<>("fromNullify");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<DeleteCascade>> FROM_CASCADE = Property.create("fromCascade", List.class);
+    public static final Property<List<DeleteDeny>> FROM_DENY = Property.create("fromDeny", List.class);
+    public static final Property<List<DeleteNullify>> FROM_NULLIFY = Property.create("fromNullify", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java
index b610a19..de2fa33 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java
@@ -16,9 +16,9 @@ public abstract class _EmbedEntity1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Embeddable1> EMBEDDED1 = new Property<>("embedded1");
-    public static final Property<Embeddable1> EMBEDDED2 = new Property<>("embedded2");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<Embeddable1> EMBEDDED1 = Property.create("embedded1", Embeddable1.class);
+    public static final Property<Embeddable1> EMBEDDED2 = Property.create("embedded2", Embeddable1.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setEmbedded1(Embeddable1 embedded1) {
         writeProperty("embedded1", embedded1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java
index 449a8f8..1084e08 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java
@@ -11,8 +11,8 @@ import org.apache.cayenne.exp.Property;
  */
 public abstract class _Embeddable1 extends Object {
 
-    public static final Property<String> EMBEDDED10 = new Property<>("embedded10");
-    public static final Property<String> EMBEDDED20 = new Property<>("embedded20");
+    public static final Property<String> EMBEDDED10 = Property.create("embedded10", String.class);
+    public static final Property<String> EMBEDDED20 = Property.create("embedded20", String.class);
 
     // special properties injected by Cayenne
     private Persistent owner;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/enum_test/auto/_EnumEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/enum_test/auto/_EnumEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/enum_test/auto/_EnumEntity.java
index 50b4821..046cf67 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/enum_test/auto/_EnumEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/enum_test/auto/_EnumEntity.java
@@ -16,7 +16,7 @@ public abstract class _EnumEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Enum1> ENUM_ATTRIBUTE = new Property<>("enumAttribute");
+    public static final Property<Enum1> ENUM_ATTRIBUTE = Property.create("enumAttribute", Enum1.class);
 
     public void setEnumAttribute(Enum1 enumAttribute) {
         writeProperty("enumAttribute", enumAttribute);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/extended_type/auto/_ExtendedTypeEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/extended_type/auto/_ExtendedTypeEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/extended_type/auto/_ExtendedTypeEntity.java
index 6ecda53..bb74881 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/extended_type/auto/_ExtendedTypeEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/extended_type/auto/_ExtendedTypeEntity.java
@@ -16,7 +16,7 @@ public abstract class _ExtendedTypeEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<StringET1> NAME = new Property<>("name");
+    public static final Property<StringET1> NAME = Property.create("name", StringET1.class);
 
     public void setName(StringET1 name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompKey.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompKey.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompKey.java
index 91178ee..1077a88 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompKey.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompKey.java
@@ -18,8 +18,8 @@ public abstract class _GeneratedColumnCompKey extends CayenneDataObject {
     public static final String GENERATED_COLUMN_PK_COLUMN = "GENERATED_COLUMN";
     public static final String PROPAGATED_PK_PK_COLUMN = "PROPAGATED_PK";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<GeneratedColumnCompMaster> TO_MASTER = new Property<>("toMaster");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<GeneratedColumnCompMaster> TO_MASTER = Property.create("toMaster", GeneratedColumnCompMaster.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompMaster.java
index bf07582..053b972 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompMaster.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnCompMaster.java
@@ -18,8 +18,8 @@ public abstract class _GeneratedColumnCompMaster extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<GeneratedColumnCompKey>> TO_DETAIL = new Property<>("toDetail");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<GeneratedColumnCompKey>> TO_DETAIL = Property.create("toDetail", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnDep.java
index fb524f8..e3693bf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnDep.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnDep.java
@@ -16,8 +16,8 @@ public abstract class _GeneratedColumnDep extends CayenneDataObject {
 
     public static final String GENERATED_COLUMN_FK_PK_COLUMN = "GENERATED_COLUMN_FK";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<GeneratedColumnTestEntity> TO_MASTER = new Property<>("toMaster");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<GeneratedColumnTestEntity> TO_MASTER = Property.create("toMaster", GeneratedColumnTestEntity.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTest2.java
index 5f27685..f0cd340 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTest2.java
@@ -15,7 +15,7 @@ public abstract class _GeneratedColumnTest2 extends CayenneDataObject {
 
     public static final String GENERATED_COLUMN_PK_COLUMN = "GENERATED_COLUMN";
 
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTestEntity.java
index 83b3ec2..de284e1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedColumnTestEntity.java
@@ -16,8 +16,8 @@ public abstract class _GeneratedColumnTestEntity extends CayenneDataObject {
 
     public static final String GENERATED_COLUMN_PK_COLUMN = "GENERATED_COLUMN";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<GeneratedColumnDep> TO_DEP = new Property<>("toDep");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<GeneratedColumnDep> TO_DEP = Property.create("toDep", GeneratedColumnDep.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF1.java
index d139240..8d41cef 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF1.java
@@ -18,7 +18,7 @@ public abstract class _GeneratedF1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<GeneratedF2>> F2 = new Property<>("f2");
+    public static final Property<List<GeneratedF2>> F2 = Property.create("f2", List.class);
 
     public void addToF2(GeneratedF2 obj) {
         addToManyTarget("f2", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF2.java
index 1d1b92f..d0ae8cb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/generated/auto/_GeneratedF2.java
@@ -18,7 +18,7 @@ public abstract class _GeneratedF2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<GeneratedF1>> F1 = new Property<>("f1");
+    public static final Property<List<GeneratedF1>> F1 = Property.create("f1", List.class);
 
     public void addToF1(GeneratedF1 obj) {
         addToManyTarget("f1", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_BaseEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_BaseEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_BaseEntity.java
index ea0d99b..009b321 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_BaseEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_BaseEntity.java
@@ -17,9 +17,9 @@ public abstract class _BaseEntity extends CayenneDataObject {
 
     public static final String BASE_ENTITY_ID_PK_COLUMN = "BASE_ENTITY_ID";
 
-    public static final Property<String> ENTITY_TYPE = new Property<>("entityType");
-    public static final Property<DirectToSubEntity> TO_DIRECT_TO_SUB_ENTITY = new Property<>("toDirectToSubEntity");
-    public static final Property<RelatedEntity> TO_RELATED_ENTITY = new Property<>("toRelatedEntity");
+    public static final Property<String> ENTITY_TYPE = Property.create("entityType", String.class);
+    public static final Property<DirectToSubEntity> TO_DIRECT_TO_SUB_ENTITY = Property.create("toDirectToSubEntity", DirectToSubEntity.class);
+    public static final Property<RelatedEntity> TO_RELATED_ENTITY = Property.create("toRelatedEntity", RelatedEntity.class);
 
     public void setEntityType(String entityType) {
         writeProperty("entityType", entityType);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_DirectToSubEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_DirectToSubEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_DirectToSubEntity.java
index c6ec424..e841796 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_DirectToSubEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_DirectToSubEntity.java
@@ -18,7 +18,7 @@ public abstract class _DirectToSubEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<SubEntity>> SUB_ENTITIES = new Property<>("subEntities");
+    public static final Property<List<SubEntity>> SUB_ENTITIES = Property.create("subEntities", List.class);
 
     public void addToSubEntities(SubEntity obj) {
         addToManyTarget("subEntities", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_RelatedEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_RelatedEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_RelatedEntity.java
index b860ca2..6a2a911 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_RelatedEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance/auto/_RelatedEntity.java
@@ -19,8 +19,8 @@ public abstract class _RelatedEntity extends CayenneDataObject {
 
     public static final String RELATED_ENTITY_ID_PK_COLUMN = "RELATED_ENTITY_ID";
 
-    public static final Property<List<BaseEntity>> BASE_ENTITIES = new Property<>("baseEntities");
-    public static final Property<List<SubEntity>> SUB_ENTITIES = new Property<>("subEntities");
+    public static final Property<List<BaseEntity>> BASE_ENTITIES = Property.create("baseEntities", List.class);
+    public static final Property<List<SubEntity>> SUB_ENTITIES = Property.create("subEntities", List.class);
 
     public void addToBaseEntities(BaseEntity obj) {
         addToManyTarget("baseEntities", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java
index f2a4032..4a23081 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java
@@ -19,8 +19,8 @@ public abstract class _Group extends User {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<List<Role>> GROUP_MEMBERS = new Property<>("groupMembers");
-    public static final Property<GroupProperties> GROUP_PROPERTIES = new Property<>("groupProperties");
+    public static final Property<List<Role>> GROUP_MEMBERS = Property.create("groupMembers", List.class);
+    public static final Property<GroupProperties> GROUP_PROPERTIES = Property.create("groupProperties", GroupProperties.class);
 
     public void addToGroupMembers(Role obj) {
         addToManyTarget("groupMembers", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java
index 5f6c4d4..5e4a5e6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java
@@ -16,9 +16,9 @@ public abstract class _GroupProperties extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<String> DESCRIPTION = new Property<>("description");
-    public static final Property<Long> ID = new Property<>("id");
-    public static final Property<Group> GROUP = new Property<>("group");
+    public static final Property<String> DESCRIPTION = Property.create("description", String.class);
+    public static final Property<Long> ID = Property.create("id", Long.class);
+    public static final Property<Group> GROUP = Property.create("group", Group.class);
 
     public void setDescription(String description) {
         writeProperty("description", description);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java
index 6b16b42..a9e98d8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java
@@ -18,10 +18,10 @@ public abstract class _Role extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<Long> ID = new Property<>("id");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<Integer> TYPE = new Property<>("type");
-    public static final Property<List<Group>> ROLE_GROUPS = new Property<>("roleGroups");
+    public static final Property<Long> ID = Property.create("id", Long.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Integer> TYPE = Property.create("type", Integer.class);
+    public static final Property<List<Group>> ROLE_GROUPS = Property.create("roleGroups", List.class);
 
     public void setId(long id) {
         writeProperty("id", id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java
index 769f40a..90509cb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java
@@ -16,7 +16,7 @@ public abstract class _User extends Role {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<UserProperties> USER_PROPERTIES = new Property<>("userProperties");
+    public static final Property<UserProperties> USER_PROPERTIES = Property.create("userProperties", UserProperties.class);
 
     public void setUserProperties(UserProperties userProperties) {
         setToOneTarget("userProperties", userProperties, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java
index 7a046a8..983ff46 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java
@@ -16,9 +16,9 @@ public abstract class _UserProperties extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<Long> ID = new Property<>("id");
-    public static final Property<String> NICKNAME = new Property<>("nickname");
-    public static final Property<User> USER = new Property<>("user");
+    public static final Property<Long> ID = Property.create("id", Long.class);
+    public static final Property<String> NICKNAME = Property.create("nickname", String.class);
+    public static final Property<User> USER = Property.create("user", User.class);
 
     public void setId(Long id) {
         writeProperty("id", id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_AbstractPerson.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_AbstractPerson.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_AbstractPerson.java
index a266f29..aa12f80 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_AbstractPerson.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_AbstractPerson.java
@@ -18,9 +18,9 @@ public abstract class _AbstractPerson extends CayenneDataObject {
 
     public static final String PERSON_ID_PK_COLUMN = "PERSON_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<String> PERSON_TYPE = new Property<>("personType");
-    public static final Property<List<PersonNotes>> NOTES = new Property<>("notes");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<String> PERSON_TYPE = Property.create("personType", String.class);
+    public static final Property<List<PersonNotes>> NOTES = Property.create("notes", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Address.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Address.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Address.java
index b63919b..762e3be 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Address.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Address.java
@@ -16,8 +16,8 @@ public abstract class _Address extends CayenneDataObject {
 
     public static final String ADDRESS_ID_PK_COLUMN = "ADDRESS_ID";
 
-    public static final Property<String> CITY = new Property<>("city");
-    public static final Property<Employee> TO_EMPLOYEE = new Property<>("toEmployee");
+    public static final Property<String> CITY = Property.create("city", String.class);
+    public static final Property<Employee> TO_EMPLOYEE = Property.create("toEmployee", Employee.class);
 
     public void setCity(String city) {
         writeProperty("city", city);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_ClientCompany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_ClientCompany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_ClientCompany.java
index 4cb6679..0aa752f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_ClientCompany.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_ClientCompany.java
@@ -18,8 +18,8 @@ public abstract class _ClientCompany extends CayenneDataObject {
 
     public static final String CLIENT_COMPANY_ID_PK_COLUMN = "CLIENT_COMPANY_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<CustomerRepresentative>> REPRESENTATIVES = new Property<>("representatives");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<CustomerRepresentative>> REPRESENTATIVES = Property.create("representatives", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_CustomerRepresentative.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_CustomerRepresentative.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_CustomerRepresentative.java
index f1dcd19..4aac968 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_CustomerRepresentative.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_CustomerRepresentative.java
@@ -16,8 +16,8 @@ public abstract class _CustomerRepresentative extends AbstractPerson {
 
     public static final String PERSON_ID_PK_COLUMN = "PERSON_ID";
 
-    public static final Property<String> CLIENT_CONTACT_TYPE = new Property<>("clientContactType");
-    public static final Property<ClientCompany> TO_CLIENT_COMPANY = new Property<>("toClientCompany");
+    public static final Property<String> CLIENT_CONTACT_TYPE = Property.create("clientContactType", String.class);
+    public static final Property<ClientCompany> TO_CLIENT_COMPANY = Property.create("toClientCompany", ClientCompany.class);
 
     public void setClientContactType(String clientContactType) {
         writeProperty("clientContactType", clientContactType);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Department.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Department.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Department.java
index db0af61..b52592a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Department.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Department.java
@@ -19,9 +19,9 @@ public abstract class _Department extends CayenneDataObject {
 
     public static final String DEPARTMENT_ID_PK_COLUMN = "DEPARTMENT_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Employee>> EMPLOYEES = new Property<>("employees");
-    public static final Property<Manager> TO_MANAGER = new Property<>("toManager");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Employee>> EMPLOYEES = Property.create("employees", List.class);
+    public static final Property<Manager> TO_MANAGER = Property.create("toManager", Manager.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Employee.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Employee.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Employee.java
index 3f84d2e..6cebc42 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Employee.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Employee.java
@@ -19,9 +19,9 @@ public abstract class _Employee extends AbstractPerson {
 
     public static final String PERSON_ID_PK_COLUMN = "PERSON_ID";
 
-    public static final Property<Float> SALARY = new Property<>("salary");
-    public static final Property<List<Address>> ADDRESSES = new Property<>("addresses");
-    public static final Property<Department> TO_DEPARTMENT = new Property<>("toDepartment");
+    public static final Property<Float> SALARY = Property.create("salary", Float.class);
+    public static final Property<List<Address>> ADDRESSES = Property.create("addresses", List.class);
+    public static final Property<Department> TO_DEPARTMENT = Property.create("toDepartment", Department.class);
 
     public void setSalary(Float salary) {
         writeProperty("salary", salary);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Manager.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Manager.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Manager.java
index 939aa27..b56dd23 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Manager.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_Manager.java
@@ -18,7 +18,7 @@ public abstract class _Manager extends Employee {
 
     public static final String PERSON_ID_PK_COLUMN = "PERSON_ID";
 
-    public static final Property<List<Department>> MANAGED_DEPARTMENTS = new Property<>("managedDepartments");
+    public static final Property<List<Department>> MANAGED_DEPARTMENTS = Property.create("managedDepartments", List.class);
 
     public void addToManagedDepartments(Department obj) {
         addToManyTarget("managedDepartments", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_PersonNotes.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_PersonNotes.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_PersonNotes.java
index de096d6..49868b9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_PersonNotes.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_people/auto/_PersonNotes.java
@@ -16,8 +16,8 @@ public abstract class _PersonNotes extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NOTES = new Property<>("notes");
-    public static final Property<AbstractPerson> PERSON = new Property<>("person");
+    public static final Property<String> NOTES = Property.create("notes", String.class);
+    public static final Property<AbstractPerson> PERSON = Property.create("person", AbstractPerson.class);
 
     public void setNotes(String notes) {
         writeProperty("notes", notes);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
index 51d7c2d..4dd6db4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Root.java
@@ -15,8 +15,8 @@ public abstract class _Iv1Root extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> DISCRIMINATOR = new Property<>("discriminator");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> DISCRIMINATOR = Property.create("discriminator", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDiscriminator(String discriminator) {
         writeProperty("discriminator", discriminator);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
index 47e6d58..c758e1a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv1Sub1.java
@@ -15,7 +15,7 @@ public abstract class _Iv1Sub1 extends Iv1Root {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
index 70d8ec6..b36cbaf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Root.java
@@ -15,7 +15,7 @@ public abstract class _Iv2Root extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> DISCRIMINATOR = new Property<>("discriminator");
+    public static final Property<String> DISCRIMINATOR = Property.create("discriminator", String.class);
 
     public void setDiscriminator(String discriminator) {
         writeProperty("discriminator", discriminator);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
index b086375..fb574b7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_Iv2Sub1.java
@@ -16,7 +16,7 @@ public abstract class _Iv2Sub1 extends Iv2Root {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Iv2X> X = new Property<>("x");
+    public static final Property<Iv2X> X = Property.create("x", Iv2X.class);
 
     public void setX(Iv2X x) {
         setToOneTarget("x", x, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
index fc65225..3eb93a3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvAbstract.java
@@ -15,7 +15,7 @@ public abstract class _IvAbstract extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> TYPE = new Property<>("type");
+    public static final Property<String> TYPE = Property.create("type", String.class);
 
     public void setType(String type) {
         writeProperty("type", type);


[2/3] cayenne git commit: CAY-2227 Update generated sources

Posted by nt...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
index 30dd58d..59984a8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvBase.java
@@ -15,8 +15,8 @@ public abstract class _IvBase extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<String> TYPE = new Property<>("type");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<String> TYPE = Property.create("type", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
index 9d83a29..bd260e1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvConcrete.java
@@ -18,9 +18,9 @@ public abstract class _IvConcrete extends IvAbstract {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<IvConcrete>> CHILDREN = new Property<>("children");
-    public static final Property<IvConcrete> PARENT = new Property<>("parent");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<IvConcrete>> CHILDREN = Property.create("children", List.class);
+    public static final Property<IvConcrete> PARENT = Property.create("parent", IvConcrete.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
index cd71ea5..4ce4c5c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
@@ -16,8 +16,8 @@ public abstract class _IvImpl extends IvBase {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> ATTR1 = new Property<>("attr1");
-    public static final Property<IvOther> OTHER = new Property<>("other");
+    public static final Property<String> ATTR1 = Property.create("attr1", String.class);
+    public static final Property<IvOther> OTHER = Property.create("other", IvOther.class);
 
     public void setAttr1(String attr1) {
         writeProperty("attr1", attr1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
index e4ae2af..00508b9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvOther.java
@@ -18,8 +18,8 @@ public abstract class _IvOther extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<IvImpl>> IMPLS = new Property<>("impls");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<IvImpl>> IMPLS = Property.create("impls", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
index 814608a..68f0488 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvRoot.java
@@ -15,8 +15,8 @@ public abstract class _IvRoot extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> DISCRIMINATOR = new Property<>("discriminator");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> DISCRIMINATOR = Property.create("discriminator", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDiscriminator(String discriminator) {
         writeProperty("discriminator", discriminator);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
index 1aa12cd..8d21cd7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1.java
@@ -15,7 +15,7 @@ public abstract class _IvSub1 extends IvRoot {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> SUB1NAME = new Property<>("sub1Name");
+    public static final Property<String> SUB1NAME = Property.create("sub1Name", String.class);
 
     public void setSub1Name(String sub1Name) {
         writeProperty("sub1Name", sub1Name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
index 3dcda28..f4ebb4d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub1Sub1.java
@@ -15,7 +15,7 @@ public abstract class _IvSub1Sub1 extends IvSub1 {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> SUB1SUB1NAME = new Property<>("sub1Sub1Name");
+    public static final Property<String> SUB1SUB1NAME = Property.create("sub1Sub1Name", String.class);
 
     public void setSub1Sub1Name(String sub1Sub1Name) {
         writeProperty("sub1Sub1Name", sub1Sub1Name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
index a245879..bb22d47 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub2.java
@@ -15,8 +15,8 @@ public abstract class _IvSub2 extends IvRoot {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> SUB2ATTR = new Property<>("sub2Attr");
-    public static final Property<String> SUB2NAME = new Property<>("sub2Name");
+    public static final Property<String> SUB2ATTR = Property.create("sub2Attr", String.class);
+    public static final Property<String> SUB2NAME = Property.create("sub2Name", String.class);
 
     public void setSub2Attr(String sub2Attr) {
         writeProperty("sub2Attr", sub2Attr);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
index 1b66feb..0bab942 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvSub3.java
@@ -15,7 +15,7 @@ public abstract class _IvSub3 extends IvRoot {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<IvRoot> IV_ROOT = new Property<>("ivRoot");
+    public static final Property<IvRoot> IV_ROOT = Property.create("ivRoot", IvRoot.class);
 
 
     public IvRoot getIvRoot() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycle_callbacks_order/auto/_Lifecycle.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycle_callbacks_order/auto/_Lifecycle.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycle_callbacks_order/auto/_Lifecycle.java
index 1353bf4..b949e46 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycle_callbacks_order/auto/_Lifecycle.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lifecycle_callbacks_order/auto/_Lifecycle.java
@@ -15,7 +15,7 @@ public abstract class _Lifecycle extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index abf3e71..a18472d 100644
--- 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
@@ -15,7 +15,7 @@ public abstract class _Lifecycles extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_BlobTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_BlobTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_BlobTestEntity.java
index d62cb5b..9ad2f80 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_BlobTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_BlobTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _BlobTestEntity extends CayenneDataObject {
 
     public static final String BLOB_TEST_ID_PK_COLUMN = "BLOB_TEST_ID";
 
-    public static final Property<byte[]> BLOB_COL = new Property<>("blobCol");
+    public static final Property<byte[]> BLOB_COL = Property.create("blobCol", byte[].class);
 
     public void setBlobCol(byte[] blobCol) {
         writeProperty("blobCol", blobCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestEntity.java
index a449327..5034c87 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestEntity.java
@@ -18,8 +18,8 @@ public abstract class _ClobTestEntity extends CayenneDataObject {
 
     public static final String CLOB_TEST_ID_PK_COLUMN = "CLOB_TEST_ID";
 
-    public static final Property<String> CLOB_COL = new Property<>("clobCol");
-    public static final Property<List<ClobTestRelation>> CLOB_VALUE = new Property<>("clobValue");
+    public static final Property<String> CLOB_COL = Property.create("clobCol", String.class);
+    public static final Property<List<ClobTestRelation>> CLOB_VALUE = Property.create("clobValue", List.class);
 
     public void setClobCol(String clobCol) {
         writeProperty("clobCol", clobCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestRelation.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestRelation.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestRelation.java
index 4c58284..01e3e05 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestRelation.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_ClobTestRelation.java
@@ -16,9 +16,9 @@ public abstract class _ClobTestRelation extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> ID = new Property<>("id");
-    public static final Property<Integer> VALUE = new Property<>("value");
-    public static final Property<ClobTestEntity> CLOB_ID = new Property<>("clobId");
+    public static final Property<Integer> ID = Property.create("id", Integer.class);
+    public static final Property<Integer> VALUE = Property.create("value", Integer.class);
+    public static final Property<ClobTestEntity> CLOB_ID = Property.create("clobId", ClobTestEntity.class);
 
     public void setId(Integer id) {
         writeProperty("id", id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_NClobTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_NClobTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_NClobTestEntity.java
index dee289b..56299e5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_NClobTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/lob/auto/_NClobTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _NClobTestEntity extends CayenneDataObject {
 
     public static final String NCLOB_TEST_ID_PK_COLUMN = "NCLOB_TEST_ID";
 
-    public static final Property<String> NCLOB_COL = new Property<>("nclobCol");
+    public static final Property<String> NCLOB_COL = Property.create("nclobCol", String.class);
 
     public void setNclobCol(String nclobCol) {
         writeProperty("nclobCol", nclobCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_LockingHelper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_LockingHelper.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_LockingHelper.java
index 9a56e57..9973a75 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_LockingHelper.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_LockingHelper.java
@@ -16,8 +16,8 @@ public abstract class _LockingHelper extends CayenneDataObject {
 
     public static final String LOCKING_HELPER_ID_PK_COLUMN = "LOCKING_HELPER_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<RelLockingTestEntity> TO_REL_LOCKING_TEST = new Property<>("toRelLockingTest");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<RelLockingTestEntity> TO_REL_LOCKING_TEST = Property.create("toRelLockingTest", RelLockingTestEntity.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_RelLockingTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_RelLockingTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_RelLockingTestEntity.java
index 6de77eb..e74bc58 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_RelLockingTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_RelLockingTestEntity.java
@@ -19,9 +19,9 @@ public abstract class _RelLockingTestEntity extends CayenneDataObject {
 
     public static final String REL_LOCKING_TEST_ID_PK_COLUMN = "REL_LOCKING_TEST_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<LockingHelper>> LOCKING_HELPERS = new Property<>("lockingHelpers");
-    public static final Property<SimpleLockingTestEntity> TO_SIMPLE_LOCKING_TEST = new Property<>("toSimpleLockingTest");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<LockingHelper>> LOCKING_HELPERS = Property.create("lockingHelpers", List.class);
+    public static final Property<SimpleLockingTestEntity> TO_SIMPLE_LOCKING_TEST = Property.create("toSimpleLockingTest", SimpleLockingTestEntity.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_SimpleLockingTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_SimpleLockingTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_SimpleLockingTestEntity.java
index 478d673..4bb40f6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_SimpleLockingTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/locking/auto/_SimpleLockingTestEntity.java
@@ -15,8 +15,8 @@ public abstract class _SimpleLockingTestEntity extends CayenneDataObject {
 
     public static final String LOCKING_TEST_ID_PK_COLUMN = "LOCKING_TEST_ID";
 
-    public static final Property<String> DESCRIPTION = new Property<>("description");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<String> DESCRIPTION = Property.create("description", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDescription(String description) {
         writeProperty("description", description);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 5bae36d..575121e 100644
--- 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
@@ -18,7 +18,7 @@ public abstract class _IdMapToMany extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Map<Object, IdMapToManyTarget>> TARGETS = new Property<>("targets");
+    public static final Property<Map<Object, IdMapToManyTarget>> TARGETS = Property.create("targets", Map.class);
 
     public void addToTargets(IdMapToManyTarget obj) {
         addToManyTarget("targets", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 7291476..9e6d292 100644
--- 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
@@ -16,7 +16,7 @@ public abstract class _IdMapToManyTarget extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<IdMapToMany> MAP_TO_MANY = new Property<>("mapToMany");
+    public static final Property<IdMapToMany> MAP_TO_MANY = Property.create("mapToMany", IdMapToMany.class);
 
     public void setMapToMany(IdMapToMany mapToMany) {
         setToOneTarget("mapToMany", mapToMany, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 6c93b25..fc0b07f 100644
--- 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
@@ -18,7 +18,7 @@ public abstract class _MapToMany extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Map<String, MapToManyTarget>> TARGETS = new Property<>("targets");
+    public static final Property<Map<String, MapToManyTarget>> TARGETS = Property.create("targets", Map.class);
 
     public void addToTargets(MapToManyTarget obj) {
         addToManyTarget("targets", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index a1e34c5..c5c2842 100644
--- 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
@@ -16,8 +16,8 @@ public abstract class _MapToManyTarget extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<MapToMany> MAP_TO_MANY = new Property<>("mapToMany");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<MapToMany> MAP_TO_MANY = Property.create("mapToMany", MapToMany.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKDep.java
index 2e475ee..7825496 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKDep.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKDep.java
@@ -16,8 +16,8 @@ public abstract class _MeaningfulPKDep extends CayenneDataObject {
 
     public static final String PK_ATTRIBUTE_PK_COLUMN = "PK_ATTRIBUTE";
 
-    public static final Property<String> DESCR = new Property<>("descr");
-    public static final Property<MeaningfulPKTest1> TO_MEANINGFUL_PK = new Property<>("toMeaningfulPK");
+    public static final Property<String> DESCR = Property.create("descr", String.class);
+    public static final Property<MeaningfulPKTest1> TO_MEANINGFUL_PK = Property.create("toMeaningfulPK", MeaningfulPKTest1.class);
 
     public void setDescr(String descr) {
         writeProperty("descr", descr);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKTest1.java
index 7c21f13..4816c13 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/meaningful_pk/auto/_MeaningfulPKTest1.java
@@ -18,9 +18,9 @@ public abstract class _MeaningfulPKTest1 extends CayenneDataObject {
 
     public static final String PK_ATTRIBUTE_PK_COLUMN = "PK_ATTRIBUTE";
 
-    public static final Property<String> DESCR = new Property<>("descr");
-    public static final Property<Integer> PK_ATTRIBUTE = new Property<>("pkAttribute");
-    public static final Property<List<MeaningfulPKDep>> MEANINGFUL_PKDEP_ARRAY = new Property<>("meaningfulPKDepArray");
+    public static final Property<String> DESCR = Property.create("descr", String.class);
+    public static final Property<Integer> PK_ATTRIBUTE = Property.create("pkAttribute", Integer.class);
+    public static final Property<List<MeaningfulPKDep>> MEANINGFUL_PKDEP_ARRAY = Property.create("meaningfulPKDepArray", List.class);
 
     public void setDescr(String descr) {
         writeProperty("descr", descr);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 690f577..b988ecd 100644
--- 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
@@ -15,7 +15,7 @@ public abstract class _MeaningfulPk extends CayenneDataObject {
 
     public static final String PK_PK_COLUMN = "PK";
 
-    public static final Property<String> PK = new Property<>("pk");
+    public static final Property<String> PK = Property.create("pk", String.class);
 
     public void setPk(String pk) {
         writeProperty("pk", pk);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_ArraysEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_ArraysEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_ArraysEntity.java
index 556f2ee..611b076 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_ArraysEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_ArraysEntity.java
@@ -15,10 +15,10 @@ public abstract class _ArraysEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<byte[]> BYTE_ARRAY = new Property<>("byteArray");
-    public static final Property<Byte[]> BYTE_WRAPPER_ARRAY = new Property<>("byteWrapperArray");
-    public static final Property<char[]> CHAR_ARRAY = new Property<>("charArray");
-    public static final Property<Character[]> CHAR_WRAPPER_ARRAY = new Property<>("charWrapperArray");
+    public static final Property<byte[]> BYTE_ARRAY = Property.create("byteArray", byte[].class);
+    public static final Property<Byte[]> BYTE_WRAPPER_ARRAY = Property.create("byteWrapperArray", Byte[].class);
+    public static final Property<char[]> CHAR_ARRAY = Property.create("charArray", char[].class);
+    public static final Property<Character[]> CHAR_WRAPPER_ARRAY = Property.create("charWrapperArray", Character[].class);
 
     public void setByteArray(byte[] byteArray) {
         writeProperty("byteArray", byteArray);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_CharacterEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_CharacterEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_CharacterEntity.java
index d7e6fe4..836ecc1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_CharacterEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_CharacterEntity.java
@@ -15,7 +15,7 @@ public abstract class _CharacterEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Character> CHARACTER_FIELD = new Property<>("characterField");
+    public static final Property<Character> CHARACTER_FIELD = Property.create("characterField", Character.class);
 
     public void setCharacterField(Character characterField) {
         writeProperty("characterField", characterField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_SerializableEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_SerializableEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_SerializableEntity.java
index dca787e..1512815 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_SerializableEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/misc_types/auto/_SerializableEntity.java
@@ -16,7 +16,7 @@ public abstract class _SerializableEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<MockSerializable> SERIALIZABLE_FIELD = new Property<>("serializableField");
+    public static final Property<MockSerializable> SERIALIZABLE_FIELD = Property.create("serializableField", MockSerializable.class);
 
     public void setSerializableField(MockSerializable serializableField) {
         writeProperty("serializableField", serializableField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy.java
index 27bc489..b3f8b88 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy.java
@@ -18,9 +18,9 @@ public abstract class _MixedPersistenceStrategy extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> DESCRIPTION = new Property<>("description");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<MixedPersistenceStrategy2>> DETAILS = new Property<>("details");
+    public static final Property<String> DESCRIPTION = Property.create("description", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<MixedPersistenceStrategy2>> DETAILS = Property.create("details", List.class);
 
     public void setDescription(String description) {
         writeProperty("description", description);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy2.java
index 0fe090b..227192d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mixed_persistence_strategy/auto/_MixedPersistenceStrategy2.java
@@ -16,8 +16,8 @@ public abstract class _MixedPersistenceStrategy2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<MixedPersistenceStrategy> MASTER = new Property<>("master");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<MixedPersistenceStrategy> MASTER = Property.create("master", MixedPersistenceStrategy.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1.java
index b8292f7..8e14471 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1.java
@@ -18,9 +18,9 @@ public abstract class _MtTable1 extends CayenneDataObject {
 
     public static final String TABLE1_ID_PK_COLUMN = "TABLE1_ID";
 
-    public static final Property<String> GLOBAL_ATTRIBUTE1 = new Property<>("globalAttribute1");
-    public static final Property<String> SERVER_ATTRIBUTE1 = new Property<>("serverAttribute1");
-    public static final Property<List<MtTable2>> TABLE2ARRAY = new Property<>("table2Array");
+    public static final Property<String> GLOBAL_ATTRIBUTE1 = Property.create("globalAttribute1", String.class);
+    public static final Property<String> SERVER_ATTRIBUTE1 = Property.create("serverAttribute1", String.class);
+    public static final Property<List<MtTable2>> TABLE2ARRAY = Property.create("table2Array", List.class);
 
     public void setGlobalAttribute1(String globalAttribute1) {
         writeProperty("globalAttribute1", globalAttribute1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass1.java
index 0d7efd5..54e5146 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass1.java
@@ -15,7 +15,7 @@ public abstract class _MtTable1Subclass1 extends MtTable1 {
 
     public static final String TABLE1_ID_PK_COLUMN = "TABLE1_ID";
 
-    public static final Property<String> SUBCLASS1ATTRIBUTE1 = new Property<>("subclass1Attribute1");
+    public static final Property<String> SUBCLASS1ATTRIBUTE1 = Property.create("subclass1Attribute1", String.class);
 
     public void setSubclass1Attribute1(String subclass1Attribute1) {
         writeProperty("subclass1Attribute1", subclass1Attribute1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass2.java
index 1492830..7d64910 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable1Subclass2.java
@@ -15,7 +15,7 @@ public abstract class _MtTable1Subclass2 extends MtTable1 {
 
     public static final String TABLE1_ID_PK_COLUMN = "TABLE1_ID";
 
-    public static final Property<String> SUBCLASS2ATTRIBUTE1 = new Property<>("subclass2Attribute1");
+    public static final Property<String> SUBCLASS2ATTRIBUTE1 = Property.create("subclass2Attribute1", String.class);
 
     public void setSubclass2Attribute1(String subclass2Attribute1) {
         writeProperty("subclass2Attribute1", subclass2Attribute1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable2.java
index 19ab637..c03999f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable2.java
@@ -17,9 +17,9 @@ public abstract class _MtTable2 extends CayenneDataObject {
 
     public static final String TABLE2_ID_PK_COLUMN = "TABLE2_ID";
 
-    public static final Property<String> GLOBAL_ATTRIBUTE = new Property<>("globalAttribute");
-    public static final Property<MtTable1> TABLE1 = new Property<>("table1");
-    public static final Property<MtTable3> TABLE3 = new Property<>("table3");
+    public static final Property<String> GLOBAL_ATTRIBUTE = Property.create("globalAttribute", String.class);
+    public static final Property<MtTable1> TABLE1 = Property.create("table1", MtTable1.class);
+    public static final Property<MtTable3> TABLE3 = Property.create("table3", MtTable3.class);
 
     public void setGlobalAttribute(String globalAttribute) {
         writeProperty("globalAttribute", globalAttribute);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable3.java
index 5761c5d..af3177c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable3.java
@@ -18,10 +18,10 @@ public abstract class _MtTable3 extends CayenneDataObject {
 
     public static final String TABLE3_ID_PK_COLUMN = "TABLE3_ID";
 
-    public static final Property<byte[]> BINARY_COLUMN = new Property<>("binaryColumn");
-    public static final Property<String> CHAR_COLUMN = new Property<>("charColumn");
-    public static final Property<Integer> INT_COLUMN = new Property<>("intColumn");
-    public static final Property<List<MtTable2>> TABLE2ARRAY = new Property<>("table2Array");
+    public static final Property<byte[]> BINARY_COLUMN = Property.create("binaryColumn", byte[].class);
+    public static final Property<String> CHAR_COLUMN = Property.create("charColumn", String.class);
+    public static final Property<Integer> INT_COLUMN = Property.create("intColumn", Integer.class);
+    public static final Property<List<MtTable2>> TABLE2ARRAY = Property.create("table2Array", List.class);
 
     public void setBinaryColumn(byte[] binaryColumn) {
         writeProperty("binaryColumn", binaryColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable4.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable4.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable4.java
index fb1b8d7..7a8809d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable4.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable4.java
@@ -18,7 +18,7 @@ public abstract class _MtTable4 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<MtTable5>> TABLE5S = new Property<>("table5s");
+    public static final Property<List<MtTable5>> TABLE5S = Property.create("table5s", List.class);
 
     public void addToTable5s(MtTable5 obj) {
         addToManyTarget("table5s", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable5.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable5.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable5.java
index aa3e7bf..f9d308d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable5.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_MtTable5.java
@@ -18,7 +18,7 @@ public abstract class _MtTable5 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<MtTable4>> TABLE4S = new Property<>("table4s");
+    public static final Property<List<MtTable4>> TABLE4S = Property.create("table4s", List.class);
 
     public void addToTable4s(MtTable4 obj) {
         addToManyTarget("table4s", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/no_pk/auto/_NoPkTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/no_pk/auto/_NoPkTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/no_pk/auto/_NoPkTestEntity.java
index 34083f4..b239f13 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/no_pk/auto/_NoPkTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/no_pk/auto/_NoPkTestEntity.java
@@ -14,7 +14,7 @@ public abstract class _NoPkTestEntity extends CayenneDataObject {
     private static final long serialVersionUID = 1L; 
 
 
-    public static final Property<Integer> ATTRIBUTE1 = new Property<>("attribute1");
+    public static final Property<Integer> ATTRIBUTE1 = Property.create("attribute1", Integer.class);
 
     public void setAttribute1(Integer attribute1) {
         writeProperty("attribute1", attribute1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigDecimalEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigDecimalEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigDecimalEntity.java
index 718a600..b1af171 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigDecimalEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigDecimalEntity.java
@@ -17,7 +17,7 @@ public abstract class _BigDecimalEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<BigDecimal> BIG_DECIMAL_FIELD = new Property<>("bigDecimalField");
+    public static final Property<BigDecimal> BIG_DECIMAL_FIELD = Property.create("bigDecimalField", BigDecimal.class);
 
     public void setBigDecimalField(BigDecimal bigDecimalField) {
         writeProperty("bigDecimalField", bigDecimalField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigIntegerEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigIntegerEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigIntegerEntity.java
index 1fac071..565b104 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigIntegerEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BigIntegerEntity.java
@@ -17,7 +17,7 @@ public abstract class _BigIntegerEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<BigInteger> BIG_INTEGER_FIELD = new Property<>("bigIntegerField");
+    public static final Property<BigInteger> BIG_INTEGER_FIELD = Property.create("bigIntegerField", BigInteger.class);
 
     public void setBigIntegerField(BigInteger bigIntegerField) {
         writeProperty("bigIntegerField", bigIntegerField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitNumberTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitNumberTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitNumberTestEntity.java
index b0a4a82..9a4212e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitNumberTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitNumberTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _BitNumberTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> BIT_COLUMN = new Property<>("bitColumn");
+    public static final Property<Integer> BIT_COLUMN = Property.create("bitColumn", Integer.class);
 
     public void setBitColumn(Integer bitColumn) {
         writeProperty("bitColumn", bitColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitTestEntity.java
index 1820a4c..d81296b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BitTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _BitTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> BIT_COLUMN = new Property<>("bitColumn");
+    public static final Property<Boolean> BIT_COLUMN = Property.create("bitColumn", Boolean.class);
 
     public void setBitColumn(Boolean bitColumn) {
         writeProperty("bitColumn", bitColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BooleanTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BooleanTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BooleanTestEntity.java
index 4da9062..2382e16 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BooleanTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_BooleanTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _BooleanTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> BOOLEAN_COLUMN = new Property<>("booleanColumn");
+    public static final Property<Boolean> BOOLEAN_COLUMN = Property.create("booleanColumn", Boolean.class);
 
     public void setBooleanColumn(Boolean booleanColumn) {
         writeProperty("booleanColumn", booleanColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTest1.java
index 1877aae..965e61a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTest1.java
@@ -15,8 +15,8 @@ public abstract class _DecimalPKTest1 extends CayenneDataObject {
 
     public static final String DECIMAL_PK_PK_COLUMN = "DECIMAL_PK";
 
-    public static final Property<Double> DECIMAL_PK = new Property<>("decimalPK");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<Double> DECIMAL_PK = Property.create("decimalPK", Double.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDecimalPK(Double decimalPK) {
         writeProperty("decimalPK", decimalPK);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTestEntity.java
index 6a79d2c..22f5f93 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_DecimalPKTestEntity.java
@@ -17,8 +17,8 @@ public abstract class _DecimalPKTestEntity extends CayenneDataObject {
 
     public static final String DECIMAL_PK_PK_COLUMN = "DECIMAL_PK";
 
-    public static final Property<BigDecimal> DECIMAL_PK = new Property<>("decimalPK");
-    public static final Property<String> NAME = new Property<>("name");
+    public static final Property<BigDecimal> DECIMAL_PK = Property.create("decimalPK", BigDecimal.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
 
     public void setDecimalPK(BigDecimal decimalPK) {
         writeProperty("decimalPK", decimalPK);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_LongEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_LongEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_LongEntity.java
index 8d7789a..2322948 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_LongEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_LongEntity.java
@@ -15,7 +15,7 @@ public abstract class _LongEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Long> LONG_FIELD = new Property<>("longField");
+    public static final Property<Long> LONG_FIELD = Property.create("longField", Long.class);
 
     public void setLongField(Long longField) {
         writeProperty("longField", longField);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_SmallintTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_SmallintTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_SmallintTestEntity.java
index cc916ba..caa8225 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_SmallintTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_SmallintTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _SmallintTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Short> SMALLINT_COL = new Property<>("smallintCol");
+    public static final Property<Short> SMALLINT_COL = Property.create("smallintCol", Short.class);
 
     public void setSmallintCol(Short smallintCol) {
         writeProperty("smallintCol", smallintCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_TinyintTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_TinyintTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_TinyintTestEntity.java
index 3021254..f1829fd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_TinyintTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/numeric_types/auto/_TinyintTestEntity.java
@@ -15,7 +15,7 @@ public abstract class _TinyintTestEntity extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Byte> TINYINT_COL = new Property<>("tinyintCol");
+    public static final Property<Byte> TINYINT_COL = Property.create("tinyintCol", Byte.class);
 
     public void setTinyintCol(Byte tinyintCol) {
         writeProperty("tinyintCol", tinyintCol);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable2.java
index 6425946..9bfc2fb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable2.java
@@ -16,8 +16,8 @@ public abstract class _OnewayTable2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> ID = new Property<>("id");
-    public static final Property<OnewayTable1> TO_ONE_ONE_WAY_DB = new Property<>("toOneOneWayDb");
+    public static final Property<Integer> ID = Property.create("id", Integer.class);
+    public static final Property<OnewayTable1> TO_ONE_ONE_WAY_DB = Property.create("toOneOneWayDb", OnewayTable1.class);
 
     public void setId(Integer id) {
         writeProperty("id", id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable3.java
index bd25371..ff6dd56 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/oneway/auto/_OnewayTable3.java
@@ -18,7 +18,7 @@ public abstract class _OnewayTable3 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<OnewayTable4>> TO_MANY_ONE_WAY_DB = new Property<>("toManyOneWayDb");
+    public static final Property<List<OnewayTable4>> TO_MANY_ONE_WAY_DB = Property.create("toManyOneWayDb", List.class);
 
     public void addToToManyOneWayDb(OnewayTable4 obj) {
         addToManyTarget("toManyOneWayDb", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified1.java
index 3e92446..89bddae 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified1.java
@@ -18,9 +18,9 @@ public abstract class _Qualified1 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> DELETED = new Property<>("deleted");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Qualified2>> QUALIFIED2S = new Property<>("qualified2s");
+    public static final Property<Boolean> DELETED = Property.create("deleted", Boolean.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Qualified2>> QUALIFIED2S = Property.create("qualified2s", List.class);
 
     public void setDeleted(Boolean deleted) {
         writeProperty("deleted", deleted);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified2.java
index 2676435..c75b539 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/qualified/auto/_Qualified2.java
@@ -16,9 +16,9 @@ public abstract class _Qualified2 extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> DELETED = new Property<>("deleted");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<Qualified1> QUALIFIED1 = new Property<>("qualified1");
+    public static final Property<Boolean> DELETED = Property.create("deleted", Boolean.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Qualified1> QUALIFIED1 = Property.create("qualified1", Qualified1.class);
 
     public void setDeleted(Boolean deleted) {
         writeProperty("deleted", deleted);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_QuoteAdress.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_QuoteAdress.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_QuoteAdress.java
index 5e37233..a62ef4d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_QuoteAdress.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_QuoteAdress.java
@@ -16,9 +16,9 @@ public abstract class _QuoteAdress extends CayenneDataObject {
 
     public static final String ADDRESS_ID_PK_COLUMN = "ADDRESS ID";
 
-    public static final Property<String> CITY = new Property<>("city");
-    public static final Property<String> GROUP = new Property<>("group");
-    public static final Property<Quote_Person> PERSON_REL = new Property<>("person_Rel");
+    public static final Property<String> CITY = Property.create("city", String.class);
+    public static final Property<String> GROUP = Property.create("group", String.class);
+    public static final Property<Quote_Person> PERSON_REL = Property.create("person_Rel", Quote_Person.class);
 
     public void setCity(String city) {
         writeProperty("city", city);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_Quote_Person.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_Quote_Person.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_Quote_Person.java
index 6585299..32e734a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_Quote_Person.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/quotemap/auto/_Quote_Person.java
@@ -18,12 +18,12 @@ public abstract class _Quote_Person extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "id";
 
-    public static final Property<Date> D_ATE = new Property<>("dAte");
-    public static final Property<String> F_ULL_NAME = new Property<>("fULL_name");
-    public static final Property<String> GROUP = new Property<>("group");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<Integer> SALARY = new Property<>("salary");
-    public static final Property<QuoteAdress> ADDRESS_REL = new Property<>("address_Rel");
+    public static final Property<Date> D_ATE = Property.create("dAte", Date.class);
+    public static final Property<String> F_ULL_NAME = Property.create("fULL_name", String.class);
+    public static final Property<String> GROUP = Property.create("group", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Integer> SALARY = Property.create("salary", Integer.class);
+    public static final Property<QuoteAdress> ADDRESS_REL = Property.create("address_Rel", QuoteAdress.class);
 
     public void setDAte(Date dAte) {
         writeProperty("dAte", dAte);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/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
index 8a809bd..8ab8644 100644
--- 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
@@ -18,9 +18,9 @@ public abstract class _Reflexive extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Reflexive>> CHILDREN = new Property<>("children");
-    public static final Property<Reflexive> TO_PARENT = new Property<>("toParent");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Reflexive>> CHILDREN = Property.create("children", List.class);
+    public static final Property<Reflexive> TO_PARENT = Property.create("toParent", Reflexive.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_FkOfDifferentType.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_FkOfDifferentType.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_FkOfDifferentType.java
index 11a4093..0573abf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_FkOfDifferentType.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_FkOfDifferentType.java
@@ -16,7 +16,7 @@ public abstract class _FkOfDifferentType extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<RelationshipHelper> RELATIONSHIP_HELPER = new Property<>("relationshipHelper");
+    public static final Property<RelationshipHelper> RELATIONSHIP_HELPER = Property.create("relationshipHelper", RelationshipHelper.class);
 
     public void setRelationshipHelper(RelationshipHelper relationshipHelper) {
         setToOneTarget("relationshipHelper", relationshipHelper, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_MeaningfulFK.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_MeaningfulFK.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_MeaningfulFK.java
index a628172..97e939a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_MeaningfulFK.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_MeaningfulFK.java
@@ -16,8 +16,8 @@ public abstract class _MeaningfulFK extends CayenneDataObject {
 
     public static final String MEANIGNFUL_FK_ID_PK_COLUMN = "MEANIGNFUL_FK_ID";
 
-    public static final Property<Integer> RELATIONSHIP_HELPER_ID = new Property<>("relationshipHelperID");
-    public static final Property<RelationshipHelper> TO_RELATIONSHIP_HELPER = new Property<>("toRelationshipHelper");
+    public static final Property<Integer> RELATIONSHIP_HELPER_ID = Property.create("relationshipHelperID", Integer.class);
+    public static final Property<RelationshipHelper> TO_RELATIONSHIP_HELPER = Property.create("toRelationshipHelper", RelationshipHelper.class);
 
     public void setRelationshipHelperID(Integer relationshipHelperID) {
         writeProperty("relationshipHelperID", relationshipHelperID);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_ReflexiveAndToOne.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_ReflexiveAndToOne.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_ReflexiveAndToOne.java
index f556f18..1f180dd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_ReflexiveAndToOne.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_ReflexiveAndToOne.java
@@ -19,10 +19,10 @@ public abstract class _ReflexiveAndToOne extends CayenneDataObject {
 
     public static final String REFLEXIVE_AND_TO_ONE_ID_PK_COLUMN = "REFLEXIVE_AND_TO_ONE_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<ReflexiveAndToOne>> CHILDREN = new Property<>("children");
-    public static final Property<RelationshipHelper> TO_HELPER = new Property<>("toHelper");
-    public static final Property<ReflexiveAndToOne> TO_PARENT = new Property<>("toParent");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<ReflexiveAndToOne>> CHILDREN = Property.create("children", List.class);
+    public static final Property<RelationshipHelper> TO_HELPER = Property.create("toHelper", RelationshipHelper.class);
+    public static final Property<ReflexiveAndToOne> TO_PARENT = Property.create("toParent", ReflexiveAndToOne.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_RelationshipHelper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_RelationshipHelper.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_RelationshipHelper.java
index 1e4213e..86fd4e9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_RelationshipHelper.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships/auto/_RelationshipHelper.java
@@ -20,10 +20,10 @@ public abstract class _RelationshipHelper extends CayenneDataObject {
 
     public static final String RELATIONSHIP_HELPER_ID_PK_COLUMN = "RELATIONSHIP_HELPER_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<FkOfDifferentType>> FKS_OF_DIFFERENT_TYPE = new Property<>("fksOfDifferentType");
-    public static final Property<List<MeaningfulFK>> MEANIGFUL_FKS = new Property<>("meanigfulFKs");
-    public static final Property<List<ReflexiveAndToOne>> REFLEXIVE_AND_TO_ONE_ARRAY = new Property<>("reflexiveAndToOneArray");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<FkOfDifferentType>> FKS_OF_DIFFERENT_TYPE = Property.create("fksOfDifferentType", List.class);
+    public static final Property<List<MeaningfulFK>> MEANIGFUL_FKS = Property.create("meanigfulFKs", List.class);
+    public static final Property<List<ReflexiveAndToOne>> REFLEXIVE_AND_TO_ONE_ARRAY = Property.create("reflexiveAndToOneArray", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_Activity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_Activity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_Activity.java
index f5c51c8..85beb7f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_Activity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_Activity.java
@@ -19,9 +19,9 @@ public abstract class _Activity extends CayenneDataObject {
 
     public static final String ACTIVITY_ID_PK_COLUMN = "ACTIVITY_ID";
 
-    public static final Property<Date> APPOINTMENT_DATE = new Property<>("appointmentDate");
-    public static final Property<Integer> APPOINTMENT_NO = new Property<>("appointmentNo");
-    public static final Property<Map<String, ActivityResult>> RESULTS = new Property<>("results");
+    public static final Property<Date> APPOINTMENT_DATE = Property.create("appointmentDate", Date.class);
+    public static final Property<Integer> APPOINTMENT_NO = Property.create("appointmentNo", Integer.class);
+    public static final Property<Map<String, ActivityResult>> RESULTS = Property.create("results", Map.class);
 
     public void setAppointmentDate(Date appointmentDate) {
         writeProperty("appointmentDate", appointmentDate);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_ActivityResult.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_ActivityResult.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_ActivityResult.java
index 794bf39..5db7ad9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_ActivityResult.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_activity/auto/_ActivityResult.java
@@ -19,9 +19,9 @@ public abstract class _ActivityResult extends CayenneDataObject {
     public static final String APPOINT_NO_PK_COLUMN = "APPOINT_NO";
     public static final String RESULTNAME_PK_COLUMN = "RESULTNAME";
 
-    public static final Property<Date> APPOINT_DATE = new Property<>("appointDate");
-    public static final Property<Integer> APPOINT_NO = new Property<>("appointNo");
-    public static final Property<String> FIELD = new Property<>("field");
+    public static final Property<Date> APPOINT_DATE = Property.create("appointDate", Date.class);
+    public static final Property<Integer> APPOINT_NO = Property.create("appointNo", Integer.class);
+    public static final Property<String> FIELD = Property.create("field", String.class);
 
     public void setAppointDate(Date appointDate) {
         writeProperty("appointDate", appointDate);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
index afefdf4..2bfc434 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
@@ -16,7 +16,7 @@ public abstract class _Child extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Master> MASTER = new Property<>("master");
+    public static final Property<Master> MASTER = Property.create("master", Master.class);
 
     public void setMaster(Master master) {
         setToOneTarget("master", master, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
index d09eabb..387846c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
@@ -18,8 +18,8 @@ public abstract class _Master extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<Child>> CHILDREN = new Property<>("children");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Child>> CHILDREN = Property.create("children", List.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
index e044a13..59420b4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
@@ -16,8 +16,8 @@ public abstract class _ClobDetail extends CayenneDataObject {
 
     public static final String CLOB_DETAIL_ID_PK_COLUMN = "CLOB_DETAIL_ID";
 
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<ClobMaster> MASTER = new Property<>("master");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<ClobMaster> MASTER = Property.create("master", ClobMaster.class);
 
     public void setName(String name) {
         writeProperty("name", name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
index 3593963..da9527a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
@@ -18,9 +18,9 @@ public abstract class _ClobMaster extends CayenneDataObject {
 
     public static final String CLOB_MASTER_ID_PK_COLUMN = "CLOB_MASTER_ID";
 
-    public static final Property<String> CLOB_COLUMN = new Property<>("clobColumn");
-    public static final Property<String> NAME = new Property<>("name");
-    public static final Property<List<ClobDetail>> DETAILS = new Property<>("details");
+    public static final Property<String> CLOB_COLUMN = Property.create("clobColumn", String.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<ClobDetail>> DETAILS = Property.create("details", List.class);
 
     public void setClobColumn(String clobColumn) {
         writeProperty("clobColumn", clobColumn);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
index 02d8a75..4a3a328 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
@@ -18,7 +18,7 @@ public abstract class _CollectionToMany extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Collection<CollectionToManyTarget>> TARGETS = new Property<>("targets");
+    public static final Property<Collection<CollectionToManyTarget>> TARGETS = Property.create("targets", Collection.class);
 
     public void addToTargets(CollectionToManyTarget obj) {
         addToManyTarget("targets", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
index 21d0932..4bb3632 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
@@ -16,7 +16,7 @@ public abstract class _CollectionToManyTarget extends CayenneDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<CollectionToMany> COLLECTION_TO_MANY = new Property<>("collectionToMany");
+    public static final Property<CollectionToMany> COLLECTION_TO_MANY = Property.create("collectionToMany", CollectionToMany.class);
 
     public void setCollectionToMany(CollectionToMany collectionToMany) {
         setToOneTarget("collectionToMany", collectionToMany, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
index 6bfe499..76f1e74 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
@@ -18,7 +18,7 @@ public abstract class _DeleteRuleFlatA extends CayenneDataObject {
 
     public static final String FLATA_ID_PK_COLUMN = "FLATA_ID";
 
-    public static final Property<List<DeleteRuleFlatB>> FLAT_B = new Property<>("flatB");
+    public static final Property<List<DeleteRuleFlatB>> FLAT_B = Property.create("flatB", List.class);
 
     public void addToFlatB(DeleteRuleFlatB obj) {
         addToManyTarget("flatB", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
index da06854..2c1cc1b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
@@ -18,7 +18,7 @@ public abstract class _DeleteRuleFlatB extends CayenneDataObject {
 
     public static final String FLATB_ID_PK_COLUMN = "FLATB_ID";
 
-    public static final Property<List<DeleteRuleFlatA>> UNTITLED_REL = new Property<>("untitledRel");
+    public static final Property<List<DeleteRuleFlatA>> UNTITLED_REL = Property.create("untitledRel", List.class);
 
     public void addToUntitledRel(DeleteRuleFlatA obj) {
         addToManyTarget("untitledRel", obj, true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/fd8234d3/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
index 74234aa..e5cec94 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
@@ -16,7 +16,7 @@ public abstract class _DeleteRuleTest1 extends CayenneDataObject {
 
     public static final String DEL_RULE_TEST1_ID_PK_COLUMN = "DEL_RULE_TEST1_ID";
 
-    public static final Property<DeleteRuleTest2> TEST2 = new Property<>("test2");
+    public static final Property<DeleteRuleTest2> TEST2 = Property.create("test2", DeleteRuleTest2.class);
 
     public void setTest2(DeleteRuleTest2 test2) {
         setToOneTarget("test2", test2, true);