You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2020/08/06 11:24:20 UTC

[cayenne] branch STABLE-4.1 updated: applying latest 4.1 template

This is an automated email from the ASF dual-hosted git repository.

aadamchik pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/STABLE-4.1 by this push:
     new 5ee9053  applying latest 4.1 template
5ee9053 is described below

commit 5ee905398bd71d00d1be372bb06b07c5867addd3
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Thu Aug 6 14:23:14 2020 +0300

    applying latest 4.1 template
---
 .../cayenne/commitlog/db/auto/_AuditLog.java       | 67 +++++++++++++++-
 .../cayenne/commitlog/db/auto/_Auditable1.java     | 77 ++++++++++++++++--
 .../cayenne/commitlog/db/auto/_Auditable2.java     | 92 ++++++++++++++++++++--
 .../cayenne/commitlog/db/auto/_Auditable3.java     | 92 ++++++++++++++++++++--
 .../cayenne/commitlog/db/auto/_Auditable4.java     | 91 +++++++++++++++++++--
 .../commitlog/db/auto/_AuditableChild1.java        | 76 ++++++++++++++++--
 .../commitlog/db/auto/_AuditableChild3.java        | 91 +++++++++++++++++++--
 .../org/apache/cayenne/commitlog/db/auto/_E1.java  | 52 +++++++++++-
 .../org/apache/cayenne/commitlog/db/auto/_E2.java  | 52 +++++++++++-
 .../org/apache/cayenne/commitlog/db/auto/_E3.java  | 62 ++++++++++++++-
 .../org/apache/cayenne/commitlog/db/auto/_E4.java  | 62 ++++++++++++++-
 11 files changed, 762 insertions(+), 52 deletions(-)

diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditLog.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditLog.java
index d937b03..1682431 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditLog.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditLog.java
@@ -1,6 +1,10 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.exp.Property;
 
 /**
@@ -9,7 +13,7 @@ import org.apache.cayenne.exp.Property;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _AuditLog extends CayenneDataObject {
+public abstract class _AuditLog extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -17,11 +21,66 @@ public abstract class _AuditLog extends CayenneDataObject {
 
     public static final Property<String> LOG = Property.create("log", String.class);
 
+    protected String log;
+
+
     public void setLog(String log) {
-        writeProperty("log", log);
+        beforePropertyWrite("log", this.log, log);
+        this.log = log;
     }
+
     public String getLog() {
-        return (String)readProperty("log");
+        beforePropertyRead("log");
+        return this.log;
+    }
+
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "log":
+                return this.log;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "log":
+                this.log = (String)val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.log);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.log = (String)in.readObject();
     }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable1.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable1.java
index 1f05a74..5aad9be 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable1.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable1.java
@@ -1,10 +1,13 @@
 package org.apache.cayenne.commitlog.db.auto;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.List;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.AuditableChild1;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _Auditable1 was generated by Cayenne.
@@ -12,7 +15,7 @@ import org.apache.cayenne.commitlog.db.AuditableChild1;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _Auditable1 extends CayenneDataObject {
+public abstract class _Auditable1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -21,23 +24,87 @@ public abstract class _Auditable1 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY1 = Property.create("charProperty1", String.class);
     public static final Property<List<AuditableChild1>> CHILDREN1 = Property.create("children1", List.class);
 
+    protected String charProperty1;
+
+    protected Object children1;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void addToChildren1(AuditableChild1 obj) {
         addToManyTarget("children1", obj, true);
     }
+
     public void removeFromChildren1(AuditableChild1 obj) {
         removeToManyTarget("children1", obj, true);
     }
+
     @SuppressWarnings("unchecked")
     public List<AuditableChild1> getChildren1() {
         return (List<AuditableChild1>)readProperty("children1");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "children1":
+                return this.children1;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "children1":
+                this.children1 = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.children1);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.children1 = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable2.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable2.java
index fff2543..7a29276 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable2.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable2.java
@@ -1,10 +1,13 @@
 package org.apache.cayenne.commitlog.db.auto;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.List;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.AuditableChild3;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _Auditable2 was generated by Cayenne.
@@ -12,7 +15,7 @@ import org.apache.cayenne.commitlog.db.AuditableChild3;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _Auditable2 extends CayenneDataObject {
+public abstract class _Auditable2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -22,30 +25,105 @@ public abstract class _Auditable2 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY2 = Property.create("charProperty2", String.class);
     public static final Property<List<AuditableChild3>> CHILDREN = Property.create("children", List.class);
 
+    protected String charProperty1;
+    protected String charProperty2;
+
+    protected Object children;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void setCharProperty2(String charProperty2) {
-        writeProperty("charProperty2", charProperty2);
+        beforePropertyWrite("charProperty2", this.charProperty2, charProperty2);
+        this.charProperty2 = charProperty2;
     }
+
     public String getCharProperty2() {
-        return (String)readProperty("charProperty2");
+        beforePropertyRead("charProperty2");
+        return this.charProperty2;
     }
 
     public void addToChildren(AuditableChild3 obj) {
         addToManyTarget("children", obj, true);
     }
+
     public void removeFromChildren(AuditableChild3 obj) {
         removeToManyTarget("children", obj, true);
     }
+
     @SuppressWarnings("unchecked")
     public List<AuditableChild3> getChildren() {
         return (List<AuditableChild3>)readProperty("children");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "charProperty2":
+                return this.charProperty2;
+            case "children":
+                return this.children;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "charProperty2":
+                this.charProperty2 = (String)val;
+                break;
+            case "children":
+                this.children = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.charProperty2);
+        out.writeObject(this.children);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.charProperty2 = (String)in.readObject();
+        this.children = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable3.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable3.java
index 464f121..7a915ac 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable3.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable3.java
@@ -1,10 +1,13 @@
 package org.apache.cayenne.commitlog.db.auto;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.List;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.Auditable4;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _Auditable3 was generated by Cayenne.
@@ -12,7 +15,7 @@ import org.apache.cayenne.commitlog.db.Auditable4;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _Auditable3 extends CayenneDataObject {
+public abstract class _Auditable3 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -22,30 +25,105 @@ public abstract class _Auditable3 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY2 = Property.create("charProperty2", String.class);
     public static final Property<List<Auditable4>> AUDITABLE4S = Property.create("auditable4s", List.class);
 
+    protected String charProperty1;
+    protected String charProperty2;
+
+    protected Object auditable4s;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void setCharProperty2(String charProperty2) {
-        writeProperty("charProperty2", charProperty2);
+        beforePropertyWrite("charProperty2", this.charProperty2, charProperty2);
+        this.charProperty2 = charProperty2;
     }
+
     public String getCharProperty2() {
-        return (String)readProperty("charProperty2");
+        beforePropertyRead("charProperty2");
+        return this.charProperty2;
     }
 
     public void addToAuditable4s(Auditable4 obj) {
         addToManyTarget("auditable4s", obj, true);
     }
+
     public void removeFromAuditable4s(Auditable4 obj) {
         removeToManyTarget("auditable4s", obj, true);
     }
+
     @SuppressWarnings("unchecked")
     public List<Auditable4> getAuditable4s() {
         return (List<Auditable4>)readProperty("auditable4s");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "charProperty2":
+                return this.charProperty2;
+            case "auditable4s":
+                return this.auditable4s;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "charProperty2":
+                this.charProperty2 = (String)val;
+                break;
+            case "auditable4s":
+                this.auditable4s = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.charProperty2);
+        out.writeObject(this.auditable4s);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.charProperty2 = (String)in.readObject();
+        this.auditable4s = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable4.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable4.java
index 23aa652..2dc91b5 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable4.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_Auditable4.java
@@ -1,8 +1,12 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.Auditable3;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _Auditable4 was generated by Cayenne.
@@ -10,7 +14,7 @@ import org.apache.cayenne.commitlog.db.Auditable3;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _Auditable4 extends CayenneDataObject {
+public abstract class _Auditable4 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -20,18 +24,29 @@ public abstract class _Auditable4 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY2 = Property.create("charProperty2", String.class);
     public static final Property<Auditable3> AUDITABLE3 = Property.create("auditable3", Auditable3.class);
 
+    protected String charProperty1;
+    protected String charProperty2;
+
+    protected Object auditable3;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void setCharProperty2(String charProperty2) {
-        writeProperty("charProperty2", charProperty2);
+        beforePropertyWrite("charProperty2", this.charProperty2, charProperty2);
+        this.charProperty2 = charProperty2;
     }
+
     public String getCharProperty2() {
-        return (String)readProperty("charProperty2");
+        beforePropertyRead("charProperty2");
+        return this.charProperty2;
     }
 
     public void setAuditable3(Auditable3 auditable3) {
@@ -42,5 +57,67 @@ public abstract class _Auditable4 extends CayenneDataObject {
         return (Auditable3)readProperty("auditable3");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "charProperty2":
+                return this.charProperty2;
+            case "auditable3":
+                return this.auditable3;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "charProperty2":
+                this.charProperty2 = (String)val;
+                break;
+            case "auditable3":
+                this.auditable3 = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.charProperty2);
+        out.writeObject(this.auditable3);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.charProperty2 = (String)in.readObject();
+        this.auditable3 = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild1.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild1.java
index bc53ce4..8000383 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild1.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild1.java
@@ -1,8 +1,12 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.Auditable1;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _AuditableChild1 was generated by Cayenne.
@@ -10,7 +14,7 @@ import org.apache.cayenne.commitlog.db.Auditable1;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _AuditableChild1 extends CayenneDataObject {
+public abstract class _AuditableChild1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -19,11 +23,18 @@ public abstract class _AuditableChild1 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY1 = Property.create("charProperty1", String.class);
     public static final Property<Auditable1> PARENT = Property.create("parent", Auditable1.class);
 
+    protected String charProperty1;
+
+    protected Object parent;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void setParent(Auditable1 parent) {
@@ -34,5 +45,60 @@ public abstract class _AuditableChild1 extends CayenneDataObject {
         return (Auditable1)readProperty("parent");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "parent":
+                return this.parent;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "parent":
+                this.parent = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.parent);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.parent = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild3.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild3.java
index c09b035..5ec34d2 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild3.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_AuditableChild3.java
@@ -1,8 +1,12 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.Auditable2;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _AuditableChild3 was generated by Cayenne.
@@ -10,7 +14,7 @@ import org.apache.cayenne.commitlog.db.Auditable2;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _AuditableChild3 extends CayenneDataObject {
+public abstract class _AuditableChild3 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -20,18 +24,29 @@ public abstract class _AuditableChild3 extends CayenneDataObject {
     public static final Property<String> CHAR_PROPERTY2 = Property.create("charProperty2", String.class);
     public static final Property<Auditable2> PARENT = Property.create("parent", Auditable2.class);
 
+    protected String charProperty1;
+    protected String charProperty2;
+
+    protected Object parent;
+
     public void setCharProperty1(String charProperty1) {
-        writeProperty("charProperty1", charProperty1);
+        beforePropertyWrite("charProperty1", this.charProperty1, charProperty1);
+        this.charProperty1 = charProperty1;
     }
+
     public String getCharProperty1() {
-        return (String)readProperty("charProperty1");
+        beforePropertyRead("charProperty1");
+        return this.charProperty1;
     }
 
     public void setCharProperty2(String charProperty2) {
-        writeProperty("charProperty2", charProperty2);
+        beforePropertyWrite("charProperty2", this.charProperty2, charProperty2);
+        this.charProperty2 = charProperty2;
     }
+
     public String getCharProperty2() {
-        return (String)readProperty("charProperty2");
+        beforePropertyRead("charProperty2");
+        return this.charProperty2;
     }
 
     public void setParent(Auditable2 parent) {
@@ -42,5 +57,67 @@ public abstract class _AuditableChild3 extends CayenneDataObject {
         return (Auditable2)readProperty("parent");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "charProperty1":
+                return this.charProperty1;
+            case "charProperty2":
+                return this.charProperty2;
+            case "parent":
+                return this.parent;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "charProperty1":
+                this.charProperty1 = (String)val;
+                break;
+            case "charProperty2":
+                this.charProperty2 = (String)val;
+                break;
+            case "parent":
+                this.parent = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.charProperty1);
+        out.writeObject(this.charProperty2);
+        out.writeObject(this.parent);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.charProperty1 = (String)in.readObject();
+        this.charProperty2 = (String)in.readObject();
+        this.parent = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E1.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E1.java
index 74fe998..3ec47e2 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E1.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E1.java
@@ -1,6 +1,10 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 
 /**
  * Class _E1 was generated by Cayenne.
@@ -8,11 +12,55 @@ import org.apache.cayenne.CayenneDataObject;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _E1 extends CayenneDataObject {
+public abstract class _E1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
     public static final String ID_PK_COLUMN = "ID";
 
 
+
+
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+    }
+
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E2.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E2.java
index 89d9852..33a8bee 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E2.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E2.java
@@ -1,6 +1,10 @@
 package org.apache.cayenne.commitlog.db.auto;
 
-import org.apache.cayenne.CayenneDataObject;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.apache.cayenne.BaseDataObject;
 
 /**
  * Class _E2 was generated by Cayenne.
@@ -8,11 +12,55 @@ import org.apache.cayenne.CayenneDataObject;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _E2 extends CayenneDataObject {
+public abstract class _E2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
     public static final String ID_PK_COLUMN = "ID";
 
 
+
+
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+    }
+
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E3.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E3.java
index 99fe863..e13f9a1 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E3.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E3.java
@@ -1,10 +1,13 @@
 package org.apache.cayenne.commitlog.db.auto;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.List;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.E4;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _E3 was generated by Cayenne.
@@ -12,7 +15,7 @@ import org.apache.cayenne.commitlog.db.E4;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _E3 extends CayenneDataObject {
+public abstract class _E3 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -20,16 +23,69 @@ public abstract class _E3 extends CayenneDataObject {
 
     public static final Property<List<E4>> E4S = Property.create("e4s", List.class);
 
+
+    protected Object e4s;
+
     public void addToE4s(E4 obj) {
         addToManyTarget("e4s", obj, true);
     }
+
     public void removeFromE4s(E4 obj) {
         removeToManyTarget("e4s", obj, true);
     }
+
     @SuppressWarnings("unchecked")
     public List<E4> getE4s() {
         return (List<E4>)readProperty("e4s");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "e4s":
+                return this.e4s;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "e4s":
+                this.e4s = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.e4s);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.e4s = in.readObject();
+    }
 
 }
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E4.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E4.java
index c2cefdc..f549379 100644
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E4.java
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/db/auto/_E4.java
@@ -1,10 +1,13 @@
 package org.apache.cayenne.commitlog.db.auto;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.List;
 
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.BaseDataObject;
 import org.apache.cayenne.commitlog.db.E3;
+import org.apache.cayenne.exp.Property;
 
 /**
  * Class _E4 was generated by Cayenne.
@@ -12,7 +15,7 @@ import org.apache.cayenne.commitlog.db.E3;
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
  */
-public abstract class _E4 extends CayenneDataObject {
+public abstract class _E4 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
@@ -20,16 +23,69 @@ public abstract class _E4 extends CayenneDataObject {
 
     public static final Property<List<E3>> E3S = Property.create("e3s", List.class);
 
+
+    protected Object e3s;
+
     public void addToE3s(E3 obj) {
         addToManyTarget("e3s", obj, true);
     }
+
     public void removeFromE3s(E3 obj) {
         removeToManyTarget("e3s", obj, true);
     }
+
     @SuppressWarnings("unchecked")
     public List<E3> getE3s() {
         return (List<E3>)readProperty("e3s");
     }
 
+    @Override
+    public Object readPropertyDirectly(String propName) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch(propName) {
+            case "e3s":
+                return this.e3s;
+            default:
+                return super.readPropertyDirectly(propName);
+        }
+    }
+
+    @Override
+    public void writePropertyDirectly(String propName, Object val) {
+        if(propName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        switch (propName) {
+            case "e3s":
+                this.e3s = val;
+                break;
+            default:
+                super.writePropertyDirectly(propName, val);
+        }
+    }
+
+    private void writeObject(ObjectOutputStream out) throws IOException {
+        writeSerialized(out);
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        readSerialized(in);
+    }
+
+    @Override
+    protected void writeState(ObjectOutputStream out) throws IOException {
+        super.writeState(out);
+        out.writeObject(this.e3s);
+    }
+
+    @Override
+    protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        super.readState(in);
+        this.e3s = in.readObject();
+    }
 
 }