You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2015/05/07 13:21:28 UTC

[1/4] cayenne git commit: init Java8 time Extensions

Repository: cayenne
Updated Branches:
  refs/heads/master 6d7bc02dc -> 6716f6b88


init Java8 time Extensions


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

Branch: refs/heads/master
Commit: e9e82bdeee1cfee4bc32bc7b891887ebd84aef56
Parents: 09c924c
Author: Savva Kolbachev <s....@gmail.com>
Authored: Fri Nov 28 11:17:37 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Fri Nov 28 11:17:37 2014 +0300

----------------------------------------------------------------------
 cayenne-java8/pom.xml                           | 113 +++++++++++++++++++
 .../cayenne/java8/CayenneJava8Module.java       |  40 +++++++
 .../java8/access/types/LocalDateTimeType.java   |  53 +++++++++
 .../java8/access/types/LocalDateType.java       |  54 +++++++++
 .../java8/access/types/LocalTimeType.java       |  54 +++++++++
 .../org/apache/cayenne/java8/Java8TimesIT.java  |  92 +++++++++++++++
 .../org/apache/cayenne/java8/RuntimeBase.java   |  38 +++++++
 .../java/org/apache/cayenne/java8/db/Java8.java |  18 +++
 .../cayenne/java8/db/LocalDateTestEntity.java   |   9 ++
 .../java8/db/LocalDateTimeTestEntity.java       |   9 ++
 .../cayenne/java8/db/LocalTimeTestEntity.java   |   9 ++
 .../apache/cayenne/java8/db/auto/_Java8.java    |  12 ++
 .../java8/db/auto/_LocalDateTestEntity.java     |  32 ++++++
 .../java8/db/auto/_LocalDateTimeTestEntity.java |  32 ++++++
 .../java8/db/auto/_LocalTimeTestEntity.java     |  32 ++++++
 .../src/test/resources/cayenne-java8.xml        |  21 ++++
 cayenne-java8/src/test/resources/java8.map.xml  |  28 +++++
 pom.xml                                         |   1 +
 18 files changed, 647 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/pom.xml b/cayenne-java8/pom.xml
new file mode 100644
index 0000000..46af7f0
--- /dev/null
+++ b/cayenne-java8/pom.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>cayenne-parent</artifactId>
+        <groupId>org.apache.cayenne</groupId>
+        <version>4.0.M2-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>cayenne-java8</artifactId>
+    <name>Cayenne Java8 Extensions</name>
+    <packaging>jar</packaging>
+    <dependencies>
+
+        <!-- Compile dependencies -->
+        <dependency>
+            <groupId>org.apache.cayenne</groupId>
+            <artifactId>cayenne-server</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cayenne</groupId>
+            <artifactId>cayenne-di</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <!-- Test dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cayenne.build-tools</groupId>
+            <artifactId>cayenne-test-utilities</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.cayenne.plugins</groupId>
+                <artifactId>maven-cayenne-plugin</artifactId>
+                <version>${project.version}</version>
+                <configuration>
+                    <map>${project.basedir}/src/test/resources/java8.map.xml</map>
+                    <destDir>${project.basedir}/src/test/java</destDir>
+                    <defaultPackage>org.apache.cayenne.java8.db</defaultPackage>
+                    <superPkg>org.apache.cayenne.java8.db.auto</superPkg>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-cli</id>
+                        <goals>
+                            <goal>cgen</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <!--<configuration>
+                    <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
+                </configuration>-->
+            </plugin>
+            <plugin>
+                <artifactId>maven-pmd-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
new file mode 100644
index 0000000..1c321ba
--- /dev/null
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
@@ -0,0 +1,40 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8;
+
+import org.apache.cayenne.configuration.Constants;
+import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.Module;
+import org.apache.cayenne.java8.access.types.LocalDateTimeType;
+import org.apache.cayenne.java8.access.types.LocalDateType;
+import org.apache.cayenne.java8.access.types.LocalTimeType;
+
+public class CayenneJava8Module implements Module {
+
+    @Override
+    public void configure(Binder binder) {
+        binder
+                .bindList(Constants.SERVER_DEFAULT_TYPES_LIST)
+                .add(new LocalDateType())
+                .add(new LocalTimeType())
+                .add(new LocalDateTimeType());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateTimeType.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateTimeType.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateTimeType.java
new file mode 100644
index 0000000..aa47c22
--- /dev/null
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateTimeType.java
@@ -0,0 +1,53 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8.access.types;
+
+import org.apache.cayenne.access.types.ExtendedType;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+
+public class LocalDateTimeType implements ExtendedType {
+
+    @Override
+    public String getClassName() {
+        return LocalDateTime.class.getName();
+    }
+
+    @Override
+    public void setJdbcObject(PreparedStatement statement, Object value, int pos, int type, int scale) throws Exception {
+        statement.setTimestamp(pos, Timestamp.valueOf((LocalDateTime) value));
+    }
+
+    @Override
+    public LocalDateTime materializeObject(ResultSet rs, int index, int type) throws Exception {
+        Timestamp timestamp = rs.getTimestamp(index);
+        return timestamp != null ? timestamp.toLocalDateTime() : null;
+    }
+
+    @Override
+    public Object materializeObject(CallableStatement rs, int index, int type) throws Exception {
+        Timestamp timestamp = rs.getTimestamp(index);
+        return timestamp != null ? timestamp.toLocalDateTime() : null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateType.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateType.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateType.java
new file mode 100644
index 0000000..72cfff7
--- /dev/null
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalDateType.java
@@ -0,0 +1,54 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8.access.types;
+
+import org.apache.cayenne.access.types.ExtendedType;
+
+import java.sql.CallableStatement;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.time.LocalDate;
+
+public class LocalDateType implements ExtendedType {
+
+    @Override
+    public String getClassName() {
+        return LocalDate.class.getName();
+    }
+
+    @Override
+    public void setJdbcObject(PreparedStatement statement, Object value, int pos, int type, int scale) throws Exception {
+        statement.setDate(pos, Date.valueOf((LocalDate) value));
+    }
+
+    @Override
+    public LocalDate materializeObject(ResultSet rs, int index, int type) throws Exception {
+        Date date = rs.getDate(index);
+        return date != null ? date.toLocalDate() : null;
+    }
+
+    @Override
+    public LocalDate materializeObject(CallableStatement rs, int index, int type) throws Exception {
+        Date date = rs.getDate(index);
+        return date != null ? date.toLocalDate() : null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalTimeType.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalTimeType.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalTimeType.java
new file mode 100644
index 0000000..2d109ba
--- /dev/null
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/access/types/LocalTimeType.java
@@ -0,0 +1,54 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8.access.types;
+
+import org.apache.cayenne.access.types.ExtendedType;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Time;
+import java.time.LocalTime;
+
+public class LocalTimeType implements ExtendedType {
+
+    @Override
+    public String getClassName() {
+        return LocalTime.class.getName();
+    }
+
+    @Override
+    public void setJdbcObject(PreparedStatement statement, Object value, int pos, int type, int scale) throws Exception {
+        statement.setTime(pos, Time.valueOf((LocalTime) value));
+    }
+
+    @Override
+    public LocalTime materializeObject(ResultSet rs, int index, int type) throws Exception {
+        Time time = rs.getTime(index);
+        return time != null ? time.toLocalTime() : null;
+    }
+
+    @Override
+    public Object materializeObject(CallableStatement rs, int index, int type) throws Exception {
+        Time time = rs.getTime(index);
+        return time != null ? time.toLocalTime() : null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
new file mode 100644
index 0000000..7db3243
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
@@ -0,0 +1,92 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.java8.db.LocalDateTestEntity;
+import org.apache.cayenne.java8.db.LocalDateTimeTestEntity;
+import org.apache.cayenne.java8.db.LocalTimeTestEntity;
+import org.apache.cayenne.query.SelectQuery;
+import org.junit.Test;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class Java8TimesIT extends RuntimeBase {
+
+    @Test
+    public void testJava8LocalDate() {
+        ObjectContext context = runtime.newContext();
+
+        LocalDateTestEntity localDateTestEntity = context.newObject(LocalDateTestEntity.class);
+        LocalDate localDate = LocalDate.now();
+        localDateTestEntity.setDate(localDate);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalDateTestEntity.class);
+        LocalDateTestEntity testRead = (LocalDateTestEntity) context.performQuery(q).get(0);
+        assertNotNull(testRead.getDate());
+        assertEquals(localDate, testRead.getDate());
+        assertEquals(LocalDate.class, testRead.getDate().getClass());
+
+    }
+
+    @Test
+    public void testJava8LocalTime() {
+        ObjectContext context = runtime.newContext();
+
+        LocalTimeTestEntity localTimeTestEntity = context.newObject(LocalTimeTestEntity.class);
+        LocalTime localTime = LocalTime.now();
+        localTimeTestEntity.setTime(localTime);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalTimeTestEntity.class);
+        LocalTimeTestEntity testRead = (LocalTimeTestEntity) context.performQuery(q).get(0);
+        assertNotNull(testRead.getTime());
+        assertEquals(localTime.toSecondOfDay(), testRead.getTime().toSecondOfDay());
+        assertEquals(LocalTime.class, testRead.getTime().getClass());
+
+    }
+
+    @Test
+    public void testJava8LocalDateTime() {
+        ObjectContext context = runtime.newContext();
+
+        LocalDateTimeTestEntity localDateTimeTestEntity = context.newObject(LocalDateTimeTestEntity.class);
+        LocalDateTime localDateTime = LocalDateTime.now();
+        localDateTimeTestEntity.setTimestamp(localDateTime);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalDateTimeTestEntity.class);
+        LocalDateTimeTestEntity testRead = (LocalDateTimeTestEntity) context.performQuery(q).get(0);
+        assertNotNull(testRead.getTimestamp());
+        assertEquals(localDateTime, testRead.getTimestamp());
+        assertEquals(LocalDateTime.class, testRead.getTimestamp().getClass());
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
new file mode 100644
index 0000000..bcff242
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
@@ -0,0 +1,38 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8;
+
+import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.di.Module;
+import org.junit.Before;
+
+public class RuntimeBase {
+
+    protected ServerRuntime runtime;
+
+    @Before
+    public void setUpRuntime() throws Exception {
+
+        Module java8Module = new CayenneJava8Module();
+
+        this.runtime = new ServerRuntime("cayenne-java8.xml", java8Module);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
new file mode 100644
index 0000000..0e0f242
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
@@ -0,0 +1,18 @@
+package org.apache.cayenne.java8.db;
+
+import org.apache.cayenne.java8.db.auto._Java8;
+
+public class Java8 extends _Java8 {
+
+    private static Java8 instance;
+
+    private Java8() {}
+
+    public static Java8 getInstance() {
+        if(instance == null) {
+            instance = new Java8();
+        }
+
+        return instance;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTestEntity.java
new file mode 100644
index 0000000..0b29d55
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTestEntity.java
@@ -0,0 +1,9 @@
+package org.apache.cayenne.java8.db;
+
+import org.apache.cayenne.java8.db.auto._LocalDateTestEntity;
+
+public class LocalDateTestEntity extends _LocalDateTestEntity {
+
+    private static final long serialVersionUID = 1L; 
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTimeTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTimeTestEntity.java
new file mode 100644
index 0000000..a2fc644
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalDateTimeTestEntity.java
@@ -0,0 +1,9 @@
+package org.apache.cayenne.java8.db;
+
+import org.apache.cayenne.java8.db.auto._LocalDateTimeTestEntity;
+
+public class LocalDateTimeTestEntity extends _LocalDateTimeTestEntity {
+
+    private static final long serialVersionUID = 1L; 
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalTimeTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalTimeTestEntity.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalTimeTestEntity.java
new file mode 100644
index 0000000..21c651e
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/LocalTimeTestEntity.java
@@ -0,0 +1,9 @@
+package org.apache.cayenne.java8.db;
+
+import org.apache.cayenne.java8.db.auto._LocalTimeTestEntity;
+
+public class LocalTimeTestEntity extends _LocalTimeTestEntity {
+
+    private static final long serialVersionUID = 1L; 
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
new file mode 100644
index 0000000..793c3c8
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
@@ -0,0 +1,12 @@
+package org.apache.cayenne.java8.db.auto;
+
+
+
+/**
+ * This class was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public class _Java8 {
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/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
new file mode 100644
index 0000000..f38668c
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTestEntity.java
@@ -0,0 +1,32 @@
+package org.apache.cayenne.java8.db.auto;
+
+import java.time.LocalDate;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.exp.Property;
+
+/**
+ * Class _LocalDateTestEntity was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _LocalDateTestEntity extends CayenneDataObject {
+
+    private static final long serialVersionUID = 1L; 
+
+    @Deprecated
+    public static final String DATE_PROPERTY = "date";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public static final Property<LocalDate> DATE = new Property<LocalDate>("date");
+
+    public void setDate(LocalDate date) {
+        writeProperty("date", date);
+    }
+    public LocalDate getDate() {
+        return (LocalDate)readProperty("date");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/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
new file mode 100644
index 0000000..af7eb64
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalDateTimeTestEntity.java
@@ -0,0 +1,32 @@
+package org.apache.cayenne.java8.db.auto;
+
+import java.time.LocalDateTime;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.exp.Property;
+
+/**
+ * Class _LocalDateTimeTestEntity was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _LocalDateTimeTestEntity extends CayenneDataObject {
+
+    private static final long serialVersionUID = 1L; 
+
+    @Deprecated
+    public static final String TIMESTAMP_PROPERTY = "timestamp";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public static final Property<LocalDateTime> TIMESTAMP = new Property<LocalDateTime>("timestamp");
+
+    public void setTimestamp(LocalDateTime timestamp) {
+        writeProperty("timestamp", timestamp);
+    }
+    public LocalDateTime getTimestamp() {
+        return (LocalDateTime)readProperty("timestamp");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/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
new file mode 100644
index 0000000..563cf26
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_LocalTimeTestEntity.java
@@ -0,0 +1,32 @@
+package org.apache.cayenne.java8.db.auto;
+
+import java.time.LocalTime;
+
+import org.apache.cayenne.CayenneDataObject;
+import org.apache.cayenne.exp.Property;
+
+/**
+ * Class _LocalTimeTestEntity was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _LocalTimeTestEntity extends CayenneDataObject {
+
+    private static final long serialVersionUID = 1L; 
+
+    @Deprecated
+    public static final String TIME_PROPERTY = "time";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public static final Property<LocalTime> TIME = new Property<LocalTime>("time");
+
+    public void setTime(LocalTime time) {
+        writeProperty("time", time);
+    }
+    public LocalTime getTime() {
+        return (LocalTime)readProperty("time");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/resources/cayenne-java8.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8.xml b/cayenne-java8/src/test/resources/cayenne-java8.xml
new file mode 100644
index 0000000..0f0e8d1
--- /dev/null
+++ b/cayenne-java8/src/test/resources/cayenne-java8.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+	<map name="java8"/>
+
+	<node name="datanode"
+		 factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
+		 schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
+		>
+		<map-ref name="java8"/>
+		<data-source>
+			<!--<driver value="org.apache.derby.jdbc.EmbeddedDriver"/>-->
+			<!--<url value="jdbc:derby:memory:java8;create=true"/>-->
+			<!--<connectionPool min="1" max="1"/>-->
+			<!--<login/>-->
+			<driver value="org.hsqldb.jdbcDriver"/>
+			<url value="jdbc:hsqldb:mem:java8"/>
+			<connectionPool min="1" max="1"/>
+			<login userName="sa"/>
+		</data-source>
+	</node>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/cayenne-java8/src/test/resources/java8.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8.map.xml b/cayenne-java8/src/test/resources/java8.map.xml
new file mode 100644
index 0000000..15d0e8c
--- /dev/null
+++ b/cayenne-java8/src/test/resources/java8.map.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+	 project-version="7">
+	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
+	<db-entity name="LocalDateTest">
+		<db-attribute name="Date" type="DATE"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="LocalDateTimeTest">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Timestamp" type="TIMESTAMP"/>
+	</db-entity>
+	<db-entity name="LocalTimeTest">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Time" type="TIME"/>
+	</db-entity>
+	<obj-entity name="LocalDateTest" className="org.apache.cayenne.java8.db.LocalDateTestEntity" dbEntityName="LocalDateTest">
+		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="Date"/>
+	</obj-entity>
+	<obj-entity name="LocalDateTimeTest" className="org.apache.cayenne.java8.db.LocalDateTimeTestEntity" dbEntityName="LocalDateTimeTest">
+		<obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="Timestamp"/>
+	</obj-entity>
+	<obj-entity name="LocalTimeTest" className="org.apache.cayenne.java8.db.LocalTimeTestEntity" dbEntityName="LocalTimeTest">
+		<obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="Time"/>
+	</obj-entity>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e9e82bde/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f543fc2..6037f2d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,7 @@
 		<module>tutorials</module>
 		<module>docs</module>
 		<module>assembly</module>
+		<module>cayenne-java8</module>
 	</modules>
 	<issueManagement>
 		<system>jira</system>


[4/4] cayenne git commit: cleanup

Posted by sk...@apache.org.
cleanup


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

Branch: refs/heads/master
Commit: 6716f6b88dfbf1081702a6f803ed93cbd1f0d069
Parents: ba8167e
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu May 7 14:20:21 2015 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu May 7 14:20:21 2015 +0300

----------------------------------------------------------------------
 cayenne-java8/pom.xml                           |  7 +-
 .../org/apache/cayenne/java8/Java8TimeIT.java   | 95 ++++++++++++++++++++
 .../org/apache/cayenne/java8/Java8TimesIT.java  | 92 -------------------
 .../org/apache/cayenne/java8/RuntimeBase.java   |  4 +-
 .../org/apache/cayenne/java8/db/Java8Times.java | 18 ----
 .../cayenne/java8/db/auto/_Java8Times.java      | 12 ---
 .../src/test/resources/cayenne-java8-times.xml  | 17 ----
 .../src/test/resources/cayenne-java8.xml        | 17 ++++
 .../src/test/resources/java8-times.map.xml      | 28 ------
 cayenne-java8/src/test/resources/java8.map.xml  | 28 ++++++
 pom.xml                                         |  1 -
 11 files changed, 145 insertions(+), 174 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/pom.xml b/cayenne-java8/pom.xml
index 1f473dd..5555dc9 100644
--- a/cayenne-java8/pom.xml
+++ b/cayenne-java8/pom.xml
@@ -12,15 +12,16 @@ language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>cayenne-parent</artifactId>
         <groupId>org.apache.cayenne</groupId>
-        <version>4.0.M2-SNAPSHOT</version>
+        <version>4.0.M3-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
     <artifactId>cayenne-java8</artifactId>
     <name>Cayenne Java8 Extensions</name>
     <packaging>jar</packaging>
+
     <dependencies>
 
         <!-- Compile dependencies -->
@@ -65,7 +66,7 @@ language governing permissions and limitations under the License. -->
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <version>${project.version}</version>
                 <configuration>
-                    <map>${project.basedir}/src/test/resources/java8-times.map.xml</map>
+                    <map>${project.basedir}/src/test/resources/java8.map.xml</map>
                     <destDir>${project.basedir}/src/test/java</destDir>
                     <defaultPackage>org.apache.cayenne.java8.db</defaultPackage>
                     <superPkg>org.apache.cayenne.java8.db.auto</superPkg>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimeIT.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimeIT.java
new file mode 100644
index 0000000..56f94c8
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimeIT.java
@@ -0,0 +1,95 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.java8;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.java8.db.LocalDateTestEntity;
+import org.apache.cayenne.java8.db.LocalDateTimeTestEntity;
+import org.apache.cayenne.java8.db.LocalTimeTestEntity;
+import org.apache.cayenne.query.SelectQuery;
+import org.junit.Test;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class Java8TimeIT extends RuntimeBase {
+
+    @Test
+    public void testJava8LocalDate() {
+        ObjectContext context = runtime.newContext();
+
+        LocalDateTestEntity localDateTestEntity = context.newObject(LocalDateTestEntity.class);
+        LocalDate localDate = LocalDate.now();
+        localDateTestEntity.setDate(localDate);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalDateTestEntity.class);
+        LocalDateTestEntity testRead = (LocalDateTestEntity) context.performQuery(q).get(0);
+
+        assertNotNull(testRead.getDate());
+        assertEquals(LocalDate.class, testRead.getDate().getClass());
+        assertEquals(localDate, testRead.getDate());
+
+    }
+
+    @Test
+    public void testJava8LocalTime() {
+        ObjectContext context = runtime.newContext();
+
+        LocalTimeTestEntity localTimeTestEntity = context.newObject(LocalTimeTestEntity.class);
+        LocalTime localTime = LocalTime.now();
+        localTimeTestEntity.setTime(localTime);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalTimeTestEntity.class);
+        LocalTimeTestEntity testRead = (LocalTimeTestEntity) context.performQuery(q).get(0);
+
+        assertNotNull(testRead.getTime());
+        assertEquals(LocalTime.class, testRead.getTime().getClass());
+        assertEquals(localTime.toSecondOfDay(), testRead.getTime().toSecondOfDay());
+
+    }
+
+    @Test
+    public void testJava8LocalDateTime() {
+        ObjectContext context = runtime.newContext();
+
+        LocalDateTimeTestEntity localDateTimeTestEntity = context.newObject(LocalDateTimeTestEntity.class);
+        LocalDateTime localDateTime = LocalDateTime.now();
+        localDateTimeTestEntity.setTimestamp(localDateTime);
+
+        context.commitChanges();
+
+        SelectQuery q = new SelectQuery(LocalDateTimeTestEntity.class);
+        LocalDateTimeTestEntity testRead = (LocalDateTimeTestEntity) context.performQuery(q).get(0);
+
+        assertNotNull(testRead.getTimestamp());
+        assertEquals(LocalDateTime.class, testRead.getTimestamp().getClass());
+        assertEquals(localDateTime, testRead.getTimestamp());
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
deleted file mode 100644
index 7db3243..0000000
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/Java8TimesIT.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-
-package org.apache.cayenne.java8;
-
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.java8.db.LocalDateTestEntity;
-import org.apache.cayenne.java8.db.LocalDateTimeTestEntity;
-import org.apache.cayenne.java8.db.LocalTimeTestEntity;
-import org.apache.cayenne.query.SelectQuery;
-import org.junit.Test;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-public class Java8TimesIT extends RuntimeBase {
-
-    @Test
-    public void testJava8LocalDate() {
-        ObjectContext context = runtime.newContext();
-
-        LocalDateTestEntity localDateTestEntity = context.newObject(LocalDateTestEntity.class);
-        LocalDate localDate = LocalDate.now();
-        localDateTestEntity.setDate(localDate);
-
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(LocalDateTestEntity.class);
-        LocalDateTestEntity testRead = (LocalDateTestEntity) context.performQuery(q).get(0);
-        assertNotNull(testRead.getDate());
-        assertEquals(localDate, testRead.getDate());
-        assertEquals(LocalDate.class, testRead.getDate().getClass());
-
-    }
-
-    @Test
-    public void testJava8LocalTime() {
-        ObjectContext context = runtime.newContext();
-
-        LocalTimeTestEntity localTimeTestEntity = context.newObject(LocalTimeTestEntity.class);
-        LocalTime localTime = LocalTime.now();
-        localTimeTestEntity.setTime(localTime);
-
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(LocalTimeTestEntity.class);
-        LocalTimeTestEntity testRead = (LocalTimeTestEntity) context.performQuery(q).get(0);
-        assertNotNull(testRead.getTime());
-        assertEquals(localTime.toSecondOfDay(), testRead.getTime().toSecondOfDay());
-        assertEquals(LocalTime.class, testRead.getTime().getClass());
-
-    }
-
-    @Test
-    public void testJava8LocalDateTime() {
-        ObjectContext context = runtime.newContext();
-
-        LocalDateTimeTestEntity localDateTimeTestEntity = context.newObject(LocalDateTimeTestEntity.class);
-        LocalDateTime localDateTime = LocalDateTime.now();
-        localDateTimeTestEntity.setTimestamp(localDateTime);
-
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(LocalDateTimeTestEntity.class);
-        LocalDateTimeTestEntity testRead = (LocalDateTimeTestEntity) context.performQuery(q).get(0);
-        assertNotNull(testRead.getTimestamp());
-        assertEquals(localDateTime, testRead.getTimestamp());
-        assertEquals(LocalDateTime.class, testRead.getTimestamp().getClass());
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
index 5379b37..f150818 100644
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
@@ -29,10 +29,8 @@ public class RuntimeBase {
 
     @Before
     public void setUpRuntime() throws Exception {
-
         Module java8Module = new CayenneJava8Module();
-
-        this.runtime = new ServerRuntime("cayenne-java8-times.xml", java8Module);
+        this.runtime = new ServerRuntime("cayenne-java8.xml", java8Module);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
deleted file mode 100644
index c01f4cc..0000000
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.apache.cayenne.java8.db;
-
-import org.apache.cayenne.java8.db.auto._Java8Times;
-
-public class Java8Times extends _Java8Times {
-
-    private static Java8Times instance;
-
-    private Java8Times() {}
-
-    public static Java8Times getInstance() {
-        if(instance == null) {
-            instance = new Java8Times();
-        }
-
-        return instance;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
deleted file mode 100644
index 1d44ef6..0000000
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.apache.cayenne.java8.db.auto;
-
-
-
-/**
- * This class was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public class _Java8Times {
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/resources/cayenne-java8-times.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8-times.xml b/cayenne-java8/src/test/resources/cayenne-java8-times.xml
deleted file mode 100644
index bb7a77d..0000000
--- a/cayenne-java8/src/test/resources/cayenne-java8-times.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<domain project-version="7">
-	<map name="java8-times"/>
-
-	<node name="datanode"
-		 factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
-		 schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
-		>
-		<map-ref name="java8-times"/>
-		<data-source>
-			<driver value="org.hsqldb.jdbcDriver"/>
-			<url value="jdbc:hsqldb:mem:java8"/>
-			<connectionPool min="1" max="1"/>
-			<login userName="sa"/>
-		</data-source>
-	</node>
-</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/resources/cayenne-java8.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8.xml b/cayenne-java8/src/test/resources/cayenne-java8.xml
new file mode 100644
index 0000000..8e07370
--- /dev/null
+++ b/cayenne-java8/src/test/resources/cayenne-java8.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+	<map name="java8"/>
+
+	<node name="datanode"
+		 factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
+		 schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
+		>
+		<map-ref name="java8"/>
+		<data-source>
+			<driver value="org.hsqldb.jdbcDriver"/>
+			<url value="jdbc:hsqldb:mem:java8"/>
+			<connectionPool min="1" max="1"/>
+			<login userName="sa"/>
+		</data-source>
+	</node>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/resources/java8-times.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8-times.map.xml b/cayenne-java8/src/test/resources/java8-times.map.xml
deleted file mode 100644
index ac170f9..0000000
--- a/cayenne-java8/src/test/resources/java8-times.map.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
-	 project-version="7">
-	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
-	<db-entity name="LOCAL_DATE_TEST">
-		<db-attribute name="Date" type="DATE"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="LOCAL_DATETIME_TEST">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="Timestamp" type="TIMESTAMP"/>
-	</db-entity>
-	<db-entity name="LOCAL_TIME_TEST">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="Time" type="TIME"/>
-	</db-entity>
-	<obj-entity name="LocalDateTest" className="org.apache.cayenne.java8.db.LocalDateTestEntity" dbEntityName="LOCAL_DATE_TEST">
-		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="Date"/>
-	</obj-entity>
-	<obj-entity name="LocalDateTimeTest" className="org.apache.cayenne.java8.db.LocalDateTimeTestEntity" dbEntityName="LOCAL_DATETIME_TEST">
-		<obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="Timestamp"/>
-	</obj-entity>
-	<obj-entity name="LocalTimeTest" className="org.apache.cayenne.java8.db.LocalTimeTestEntity" dbEntityName="LOCAL_TIME_TEST">
-		<obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="Time"/>
-	</obj-entity>
-</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/cayenne-java8/src/test/resources/java8.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8.map.xml b/cayenne-java8/src/test/resources/java8.map.xml
new file mode 100644
index 0000000..ac170f9
--- /dev/null
+++ b/cayenne-java8/src/test/resources/java8.map.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+	 project-version="7">
+	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
+	<db-entity name="LOCAL_DATE_TEST">
+		<db-attribute name="Date" type="DATE"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="LOCAL_DATETIME_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Timestamp" type="TIMESTAMP"/>
+	</db-entity>
+	<db-entity name="LOCAL_TIME_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Time" type="TIME"/>
+	</db-entity>
+	<obj-entity name="LocalDateTest" className="org.apache.cayenne.java8.db.LocalDateTestEntity" dbEntityName="LOCAL_DATE_TEST">
+		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="Date"/>
+	</obj-entity>
+	<obj-entity name="LocalDateTimeTest" className="org.apache.cayenne.java8.db.LocalDateTimeTestEntity" dbEntityName="LOCAL_DATETIME_TEST">
+		<obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="Timestamp"/>
+	</obj-entity>
+	<obj-entity name="LocalTimeTest" className="org.apache.cayenne.java8.db.LocalTimeTestEntity" dbEntityName="LOCAL_TIME_TEST">
+		<obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="Time"/>
+	</obj-entity>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6716f6b8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f8ebab9..b676493 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,6 @@
 		<module>docs</module>
 		<module>assembly</module>
         <module>cayenne-joda</module>
-		<module>cayenne-java8</module>
 	</modules>
 	<issueManagement>
 		<system>jira</system>


[3/4] cayenne git commit: fix and clean up code

Posted by sk...@apache.org.
fix and clean up code


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

Branch: refs/heads/master
Commit: ba8167e88be3686aba2e8f801b9557637c90b00b
Parents: d37f217
Author: Savva Kolbachev <s....@gmail.com>
Authored: Mon Dec 1 16:07:28 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed May 6 16:45:41 2015 +0300

----------------------------------------------------------------------
 cayenne-java8/pom.xml                           | 48 +++++++-------------
 .../cayenne/java8/CayenneJava8Module.java       |  3 ++
 .../org/apache/cayenne/java8/RuntimeBase.java   |  2 +-
 .../java/org/apache/cayenne/java8/db/Java8.java | 18 --------
 .../org/apache/cayenne/java8/db/Java8Times.java | 18 ++++++++
 .../apache/cayenne/java8/db/auto/_Java8.java    | 12 -----
 .../cayenne/java8/db/auto/_Java8Times.java      | 12 +++++
 .../src/test/resources/cayenne-java8-times.xml  | 17 +++++++
 .../src/test/resources/cayenne-java8.xml        | 21 ---------
 .../src/test/resources/java8-times.map.xml      | 28 ++++++++++++
 cayenne-java8/src/test/resources/java8.map.xml  | 28 ------------
 .../cayenne/modeler/util/ModelerUtil.java       | 32 +++++++------
 pom.xml                                         |  9 ++++
 13 files changed, 121 insertions(+), 127 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/pom.xml b/cayenne-java8/pom.xml
index 46af7f0..1f473dd 100644
--- a/cayenne-java8/pom.xml
+++ b/cayenne-java8/pom.xml
@@ -1,4 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE file distributed with this work for additional
+information regarding copyright ownership. The ASF licenses this file to
+you under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of
+the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, either express or implied. See the License for the specific
+language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -19,12 +29,7 @@
             <artifactId>cayenne-server</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-di</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
+
         <!-- Test dependencies -->
         <dependency>
             <groupId>junit</groupId>
@@ -38,35 +43,10 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>hsqldb</groupId>
             <artifactId>hsqldb</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <build>
         <plugins>
@@ -85,7 +65,7 @@
                 <artifactId>maven-cayenne-plugin</artifactId>
                 <version>${project.version}</version>
                 <configuration>
-                    <map>${project.basedir}/src/test/resources/java8.map.xml</map>
+                    <map>${project.basedir}/src/test/resources/java8-times.map.xml</map>
                     <destDir>${project.basedir}/src/test/java</destDir>
                     <defaultPackage>org.apache.cayenne.java8.db</defaultPackage>
                     <superPkg>org.apache.cayenne.java8.db.auto</superPkg>
@@ -108,6 +88,10 @@
             <plugin>
                 <artifactId>maven-pmd-plugin</artifactId>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+            </plugin>
         </plugins>
     </build>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
index 1c321ba..563c3c0 100644
--- a/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java
@@ -28,6 +28,9 @@ import org.apache.cayenne.java8.access.types.LocalTimeType;
 
 public class CayenneJava8Module implements Module {
 
+    public CayenneJava8Module() {
+    }
+
     @Override
     public void configure(Binder binder) {
         binder

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
index bcff242..5379b37 100644
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/RuntimeBase.java
@@ -32,7 +32,7 @@ public class RuntimeBase {
 
         Module java8Module = new CayenneJava8Module();
 
-        this.runtime = new ServerRuntime("cayenne-java8.xml", java8Module);
+        this.runtime = new ServerRuntime("cayenne-java8-times.xml", java8Module);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
deleted file mode 100644
index 0e0f242..0000000
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.apache.cayenne.java8.db;
-
-import org.apache.cayenne.java8.db.auto._Java8;
-
-public class Java8 extends _Java8 {
-
-    private static Java8 instance;
-
-    private Java8() {}
-
-    public static Java8 getInstance() {
-        if(instance == null) {
-            instance = new Java8();
-        }
-
-        return instance;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
new file mode 100644
index 0000000..c01f4cc
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/Java8Times.java
@@ -0,0 +1,18 @@
+package org.apache.cayenne.java8.db;
+
+import org.apache.cayenne.java8.db.auto._Java8Times;
+
+public class Java8Times extends _Java8Times {
+
+    private static Java8Times instance;
+
+    private Java8Times() {}
+
+    public static Java8Times getInstance() {
+        if(instance == null) {
+            instance = new Java8Times();
+        }
+
+        return instance;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
deleted file mode 100644
index 793c3c8..0000000
--- a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.apache.cayenne.java8.db.auto;
-
-
-
-/**
- * This class was generated by Cayenne.
- * It is probably a good idea to avoid changing this class manually,
- * since it may be overwritten next time code is regenerated.
- * If you need to make any customizations, please use subclass.
- */
-public class _Java8 {
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
new file mode 100644
index 0000000..1d44ef6
--- /dev/null
+++ b/cayenne-java8/src/test/java/org/apache/cayenne/java8/db/auto/_Java8Times.java
@@ -0,0 +1,12 @@
+package org.apache.cayenne.java8.db.auto;
+
+
+
+/**
+ * This class was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public class _Java8Times {
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/resources/cayenne-java8-times.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8-times.xml b/cayenne-java8/src/test/resources/cayenne-java8-times.xml
new file mode 100644
index 0000000..bb7a77d
--- /dev/null
+++ b/cayenne-java8/src/test/resources/cayenne-java8-times.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+	<map name="java8-times"/>
+
+	<node name="datanode"
+		 factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
+		 schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
+		>
+		<map-ref name="java8-times"/>
+		<data-source>
+			<driver value="org.hsqldb.jdbcDriver"/>
+			<url value="jdbc:hsqldb:mem:java8"/>
+			<connectionPool min="1" max="1"/>
+			<login userName="sa"/>
+		</data-source>
+	</node>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/resources/cayenne-java8.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8.xml b/cayenne-java8/src/test/resources/cayenne-java8.xml
deleted file mode 100644
index 0f0e8d1..0000000
--- a/cayenne-java8/src/test/resources/cayenne-java8.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<domain project-version="7">
-	<map name="java8"/>
-
-	<node name="datanode"
-		 factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
-		 schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
-		>
-		<map-ref name="java8"/>
-		<data-source>
-			<!--<driver value="org.apache.derby.jdbc.EmbeddedDriver"/>-->
-			<!--<url value="jdbc:derby:memory:java8;create=true"/>-->
-			<!--<connectionPool min="1" max="1"/>-->
-			<!--<login/>-->
-			<driver value="org.hsqldb.jdbcDriver"/>
-			<url value="jdbc:hsqldb:mem:java8"/>
-			<connectionPool min="1" max="1"/>
-			<login userName="sa"/>
-		</data-source>
-	</node>
-</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/resources/java8-times.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8-times.map.xml b/cayenne-java8/src/test/resources/java8-times.map.xml
new file mode 100644
index 0000000..ac170f9
--- /dev/null
+++ b/cayenne-java8/src/test/resources/java8-times.map.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+	 project-version="7">
+	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
+	<db-entity name="LOCAL_DATE_TEST">
+		<db-attribute name="Date" type="DATE"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="LOCAL_DATETIME_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Timestamp" type="TIMESTAMP"/>
+	</db-entity>
+	<db-entity name="LOCAL_TIME_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="Time" type="TIME"/>
+	</db-entity>
+	<obj-entity name="LocalDateTest" className="org.apache.cayenne.java8.db.LocalDateTestEntity" dbEntityName="LOCAL_DATE_TEST">
+		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="Date"/>
+	</obj-entity>
+	<obj-entity name="LocalDateTimeTest" className="org.apache.cayenne.java8.db.LocalDateTimeTestEntity" dbEntityName="LOCAL_DATETIME_TEST">
+		<obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="Timestamp"/>
+	</obj-entity>
+	<obj-entity name="LocalTimeTest" className="org.apache.cayenne.java8.db.LocalTimeTestEntity" dbEntityName="LOCAL_TIME_TEST">
+		<obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="Time"/>
+	</obj-entity>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/cayenne-java8/src/test/resources/java8.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8.map.xml b/cayenne-java8/src/test/resources/java8.map.xml
deleted file mode 100644
index 15d0e8c..0000000
--- a/cayenne-java8/src/test/resources/java8.map.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
-	 project-version="7">
-	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
-	<db-entity name="LocalDateTest">
-		<db-attribute name="Date" type="DATE"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="LocalDateTimeTest">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="Timestamp" type="TIMESTAMP"/>
-	</db-entity>
-	<db-entity name="LocalTimeTest">
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="Time" type="TIME"/>
-	</db-entity>
-	<obj-entity name="LocalDateTest" className="org.apache.cayenne.java8.db.LocalDateTestEntity" dbEntityName="LocalDateTest">
-		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="Date"/>
-	</obj-entity>
-	<obj-entity name="LocalDateTimeTest" className="org.apache.cayenne.java8.db.LocalDateTimeTestEntity" dbEntityName="LocalDateTimeTest">
-		<obj-attribute name="timestamp" type="java.time.LocalDateTime" db-attribute-path="Timestamp"/>
-	</obj-entity>
-	<obj-entity name="LocalTimeTest" className="org.apache.cayenne.java8.db.LocalTimeTestEntity" dbEntityName="LocalTimeTest">
-		<obj-attribute name="time" type="java.time.LocalTime" db-attribute-path="Time"/>
-	</obj-entity>
-</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ModelerUtil.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ModelerUtil.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ModelerUtil.java
index 13f81d1..844eab3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ModelerUtil.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ModelerUtil.java
@@ -19,6 +19,20 @@
 
 package org.apache.cayenne.modeler.util;
 
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.ModelerConstants;
+import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
+import org.apache.cayenne.modeler.action.MultipleObjectsAction;
+import org.apache.cayenne.reflect.PropertyUtils;
+import org.apache.cayenne.util.CayenneMapEntry;
+
+import javax.swing.Action;
+import javax.swing.ImageIcon;
 import java.awt.Dimension;
 import java.awt.Point;
 import java.awt.Window;
@@ -40,21 +54,6 @@ import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.UUID;
 
-import javax.swing.Action;
-import javax.swing.ImageIcon;
-
-import org.apache.cayenne.configuration.DataChannelDescriptor;
-import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ModelerConstants;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.ActionManager;
-import org.apache.cayenne.modeler.action.MultipleObjectsAction;
-import org.apache.cayenne.reflect.PropertyUtils;
-import org.apache.cayenne.util.CayenneMapEntry;
-
 /**
  * Various unorganized utility methods used by CayenneModeler.
  * 
@@ -136,6 +135,9 @@ public final class ModelerUtil {
         nonPrimitives.add(Serializable.class.getName());
         nonPrimitives.add("java.lang.Character[]");
         nonPrimitives.add("java.lang.Byte[]");
+        nonPrimitives.add("java.time.LocalDate");
+        nonPrimitives.add("java.time.LocalTime");
+        nonPrimitives.add("java.time.LocalDateTime");
 
         String[] nonPrimitivesNames = new String[nonPrimitives.size()];
         nonPrimitives.toArray(nonPrimitivesNames);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba8167e8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1f38a05..f8ebab9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1460,6 +1460,15 @@
 				<javadoc.doclint.none>-Xdoclint:none</javadoc.doclint.none>
 			</properties>
 		</profile>
+		<profile>
+			<id>cayenne-java8-module-to-build</id>
+			<activation>
+				<jdk>[1.8,)</jdk>
+			</activation>
+			<modules>
+				<module>cayenne-java8</module>
+			</modules>
+		</profile>
 	</profiles>
 
     <reporting>


[2/4] cayenne git commit: Merge remote-tracking branch 'origin/master' into java8-times

Posted by sk...@apache.org.
Merge remote-tracking branch 'origin/master' into java8-times


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

Branch: refs/heads/master
Commit: d37f217f7af5351bf481b0f74f3914a44d9f8c93
Parents: e9e82bd 6d7bc02
Author: Savva Kolbachev <s....@gmail.com>
Authored: Mon Dec 1 11:58:09 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed May 6 16:43:40 2015 +0300

----------------------------------------------------------------------
 README.md                                       |   18 +
 assembly/pom.xml                                |   11 +-
 .../resources/assemblies/assembly-generic.xml   |    6 +-
 .../main/resources/assemblies/assembly-mac.xml  |    6 +-
 .../main/resources/assemblies/assembly-src.xml  |    5 +
 .../resources/assemblies/assembly-windows.xml   |    6 +-
 build-tools/cayenne-checkers/pom.xml            |    2 +-
 build-tools/cayenne-coverage/pom.xml            |    2 +-
 build-tools/cayenne-legal/pom.xml               |    2 +-
 build-tools/cayenne-test-utilities/pom.xml      |    2 +-
 .../org/apache/cayenne/test/jdbc/SQLReader.java |   90 +
 .../cayenne/test/resource/ResourceUtil.java     |  154 +-
 build-tools/pom.xml                             |    5 +-
 cayenne-client/pom.xml                          |   40 +-
 .../apache/cayenne/query/SelectByIdTest.java    |    8 +-
 cayenne-crypto/pom.xml                          |   39 +-
 .../CryptoBatchTranslatorFactoryDecorator.java  |    8 +-
 .../crypto/transformer/BindingsTransformer.java |    4 +-
 .../transformer/DefaultBindingsTransformer.java |    6 +-
 .../transformer/DefaultTransformerFactory.java  |    6 +-
 .../crypto/transformer/TransformerFactory.java  |    4 +-
 .../value/DefaultValueTransformerFactory.java   |   22 +-
 .../cayenne/crypto/key/README-keystore.txt      |   17 +
 cayenne-di/pom.xml                              |   39 +-
 .../apache/cayenne/di/ScopeEventListener.java   |   19 +-
 cayenne-joda/pom.xml                            |  102 ++
 .../org/apache/cayenne/CayenneJodaModule.java   |   48 +
 .../cayenne/access/types/DateTimeType.java      |   79 +
 .../cayenne/access/types/LocalDateTimeType.java |   80 +
 .../cayenne/access/types/LocalDateType.java     |   88 +
 .../cayenne/access/types/LocalTimeType.java     |   92 ++
 .../apache/cayenne/joda/DateTimeTypeTest.java   |   62 +
 .../org/apache/cayenne/joda/JodaTestCase.java   |   40 +
 .../org/apache/cayenne/joda/JodaTimeIT.java     |  131 ++
 .../cayenne/joda/LocalDateTimeTypeTest.java     |   64 +
 .../apache/cayenne/joda/LocalDateTypeTest.java  |   76 +
 .../apache/cayenne/joda/LocalTimeTypeTest.java  |   76 +
 .../cayenne/joda/db/DateTimeTestEntity.java     |    9 +
 .../cayenne/joda/db/LocalDateTestEntity.java    |    9 +
 .../joda/db/LocalDateTimeTestEntity.java        |    9 +
 .../cayenne/joda/db/LocalTimeTestEntity.java    |    9 +
 .../joda/db/auto/_DateTimeTestEntity.java       |   28 +
 .../joda/db/auto/_LocalDateTestEntity.java      |   28 +
 .../joda/db/auto/_LocalDateTimeTestEntity.java  |   28 +
 .../joda/db/auto/_LocalTimeTestEntity.java      |   28 +
 .../src/test/resources/cayenne-joda.xml         |   17 +
 cayenne-joda/src/test/resources/joda.map.xml    |   35 +
 cayenne-lifecycle/pom.xml                       |   35 +-
 cayenne-project/pom.xml                         |   36 +-
 .../validation/DbAttributeValidator.java        |    5 +-
 .../validation/ProcedureParameterValidator.java |    5 +-
 cayenne-server/pom.xml                          |   90 +-
 .../java/org/apache/cayenne/BaseContext.java    |   29 +-
 .../java/org/apache/cayenne/ObjectContext.java  |   43 +-
 .../org/apache/cayenne/ResultBatchIterator.java |   79 +
 .../java/org/apache/cayenne/ResultIterator.java |    7 +-
 .../org/apache/cayenne/access/DataPort.java     |  533 +++---
 .../org/apache/cayenne/access/DbGenerator.java  |    2 +-
 .../org/apache/cayenne/access/DbLoader.java     | 1052 +++++-------
 .../cayenne/access/DbLoaderConfiguration.java   |   48 -
 .../apache/cayenne/access/DbLoaderDelegate.java |   27 +-
 .../cayenne/access/DefaultDbLoaderDelegate.java |   54 -
 .../access/HierarchicalObjectResolver.java      |    3 +-
 .../access/ManyToManyCandidateEntity.java       |  126 --
 .../cayenne/access/OperationObserver.java       |    4 +-
 .../cayenne/access/PrefetchProcessorNode.java   |   35 +-
 .../org/apache/cayenne/access/QueryResult.java  |  267 ---
 .../apache/cayenne/access/jdbc/BatchAction.java |   10 +-
 .../cayenne/access/jdbc/ParameterBinding.java   |   68 -
 .../access/jdbc/SQLParameterBinding.java        |   62 +
 .../cayenne/access/jdbc/SQLStatement.java       |   10 +-
 .../cayenne/access/jdbc/SQLTemplateAction.java  |    2 +-
 .../cayenne/access/jdbc/SelectAction.java       |  344 ++--
 .../access/loader/DbAttributesBaseLoader.java   |  107 ++
 .../access/loader/DbAttributesLoader.java       |   43 +
 .../loader/DbAttributesPerSchemaLoader.java     |  120 ++
 .../access/loader/DbLoaderConfiguration.java    |  150 ++
 .../cayenne/access/loader/DbTableLoader.java    |  189 +++
 .../access/loader/DefaultDbLoaderDelegate.java  |   60 +
 .../access/loader/LoggingDbLoaderDelegate.java  |   76 +
 .../loader/ManyToManyCandidateEntity.java       |  142 ++
 .../cayenne/access/loader/NameFilter.java       |   27 +
 .../access/loader/NamePatternMatcher.java       |  225 +++
 .../access/loader/filters/CatalogFilter.java    |   62 +
 .../access/loader/filters/FiltersConfig.java    |   62 +
 .../loader/filters/IncludeTableFilter.java      |   71 +
 .../loader/filters/OldFilterConfigBridge.java   |  150 ++
 .../access/loader/filters/PatternFilter.java    |  167 ++
 .../access/loader/filters/SchemaFilter.java     |   49 +
 .../access/loader/filters/TableFilter.java      |  136 ++
 .../cayenne/access/loader/mapper/DbType.java    |  194 +++
 .../mapper/DefaultJdbc2JavaTypeMapper.java      |  287 ++++
 .../loader/mapper/Jdbc2JavaTypeMapper.java      |   33 +
 .../access/translator/ParameterBinding.java     |   81 +
 .../translator/batch/BatchParameterBinding.java |   79 -
 .../translator/batch/BatchTranslator.java       |    5 +-
 .../batch/DefaultBatchTranslator.java           |   11 +-
 .../translator/batch/DeleteBatchTranslator.java |   11 +-
 .../translator/batch/InsertBatchTranslator.java |   11 +-
 .../batch/SoftDeleteBatchTranslator.java        |   13 +-
 .../translator/batch/UpdateBatchTranslator.java |   11 +-
 .../ejbql/EJBQLOrderByTranslator.java           |    6 +
 .../select/DefaultSelectTranslator.java         |  630 +++++++
 .../access/translator/select/JoinStack.java     |  349 ++--
 .../translator/select/OrderingTranslator.java   |  166 +-
 .../translator/select/QualifierTranslator.java  | 1003 ++++++------
 .../translator/select/QueryAssembler.java       |  302 ++--
 .../translator/select/QueryAssemblerHelper.java |  885 +++++-----
 .../translator/select/SelectTranslator.java     |  602 +------
 .../select/TrimmingQualifierTranslator.java     |  113 +-
 .../apache/cayenne/access/types/CharType.java   |   70 +-
 .../access/util/DoNothingOperationObserver.java |   80 +
 .../apache/cayenne/configuration/Constants.java |    5 +
 .../server/DataContextFactory.java              |    1 +
 .../server/PropertyDataSourceFactory.java       |  107 +-
 .../server/ServerRuntimeBuilder.java            |   93 +-
 .../server/SyntheticNodeDataDomainProvider.java |    6 +
 .../server/XMLPoolingDataSourceFactory.java     |   59 +-
 .../apache/cayenne/conn/ConnectionWrapper.java  |  749 ---------
 .../org/apache/cayenne/conn/DataSourceInfo.java |  758 ++++-----
 .../apache/cayenne/conn/DriverDataSource.java   |  298 ----
 .../org/apache/cayenne/conn/PoolDataSource.java |   85 -
 .../org/apache/cayenne/conn/PoolManager.java    |  649 --------
 .../cayenne/conn/PooledConnectionImpl.java      |  201 ---
 .../java/org/apache/cayenne/conn/package.html   |   26 -
 .../datasource/BadValidationQueryException.java |   41 +
 .../cayenne/datasource/DataSourceBuilder.java   |  136 ++
 .../cayenne/datasource/DriverDataSource.java    |  298 ++++
 .../datasource/ManagedPoolingDataSource.java    |  120 ++
 .../cayenne/datasource/PoolAwareConnection.java |  593 +++++++
 .../cayenne/datasource/PoolingDataSource.java   |  360 ++++
 .../datasource/PoolingDataSourceManager.java    |   74 +
 .../datasource/PoolingDataSourceParameters.java |   64 +
 .../cayenne/datasource/StoppedDataSource.java   |   88 +
 .../org/apache/cayenne/dba/AutoAdapter.java     |   13 +-
 .../java/org/apache/cayenne/dba/DbAdapter.java  |   18 +-
 .../org/apache/cayenne/dba/JdbcAdapter.java     |  131 +-
 .../org/apache/cayenne/dba/TypesHandler.java    |    2 +-
 .../org/apache/cayenne/dba/TypesMapping.java    |  393 ++---
 .../cayenne/dba/db2/DB2QualifierTranslator.java |  172 +-
 .../apache/cayenne/dba/derby/DerbyAdapter.java  |   64 +-
 .../dba/derby/DerbyQualifierTranslator.java     |   59 +-
 .../cayenne/dba/firebird/FirebirdAdapter.java   |   33 +-
 .../firebird/FirebirdQualifierTranslator.java   |   30 +-
 .../dba/frontbase/FrontBaseActionBuilder.java   |    6 +-
 .../dba/frontbase/FrontBasePkGenerator.java     |  191 +--
 .../frontbase/FrontBaseSelectTranslator.java    |   41 +-
 .../cayenne/dba/hsqldb/HSQLSelectAction.java    |   24 +-
 .../dba/hsqldb/HSQLSelectTranslator.java        |   60 +-
 .../cayenne/dba/ingres/IngresSelectAction.java  |    6 +-
 .../dba/ingres/IngresSelectTranslator.java      |   13 +-
 .../apache/cayenne/dba/mysql/MySQLAdapter.java  |   19 +
 .../cayenne/dba/mysql/MySQLSelectAction.java    |   24 +-
 .../dba/mysql/MySQLSelectTranslator.java        |   61 +-
 .../dba/openbase/OpenBaseActionBuilder.java     |   26 +-
 .../cayenne/dba/openbase/OpenBaseJoinStack.java |  158 +-
 .../openbase/OpenBaseQualifierTranslator.java   |  262 ++-
 .../dba/openbase/OpenBaseSelectTranslator.java  |   45 +-
 .../cayenne/dba/oracle/Oracle8JoinStack.java    |  146 +-
 .../dba/oracle/Oracle8LOBBatchAction.java       |    8 +-
 .../dba/oracle/Oracle8LOBBatchQueryWrapper.java |    2 +-
 .../dba/oracle/Oracle8LOBBatchTranslator.java   |   12 +-
 .../dba/oracle/Oracle8QualifierTranslator.java  |   38 +-
 .../cayenne/dba/oracle/Oracle8SelectAction.java |   16 +-
 .../dba/oracle/Oracle8SelectTranslator.java     |   35 +-
 .../cayenne/dba/oracle/OracleAdapter.java       |   40 +-
 .../dba/oracle/OracleQualifierTranslator.java   |  104 +-
 .../cayenne/dba/oracle/OracleSelectAction.java  |   24 +-
 .../dba/oracle/OracleSelectTranslator.java      |   89 +-
 .../cayenne/dba/postgres/PostgresAdapter.java   |  115 +-
 .../postgres/PostgresQualifierTranslator.java   |  188 +--
 .../dba/postgres/PostgresSelectAction.java      |   24 +-
 .../dba/postgres/PostgresSelectTranslator.java  |   56 +-
 .../cayenne/dba/sqlite/SQLiteAdapter.java       |   20 +
 .../dba/sqlserver/SQLServerSelectAction.java    |    6 +-
 .../sqlserver/SQLServerSelectTranslator.java    |   65 +-
 .../SQLServerTrimmingQualifierTranslator.java   |  164 +-
 .../java/org/apache/cayenne/exp/Expression.java |   91 +-
 .../cayenne/exp/LikeExpressionHelper.java       |    1 -
 .../java/org/apache/cayenne/exp/Property.java   |    4 +-
 .../apache/cayenne/exp/parser/Evaluator.java    |  143 ++
 .../cayenne/log/CommonsJdbcEventLogger.java     |  819 +++++-----
 .../org/apache/cayenne/log/JdbcEventLogger.java |   21 +-
 .../apache/cayenne/log/NoopJdbcEventLogger.java |  142 +-
 .../java/org/apache/cayenne/map/DataMap.java    |   69 +-
 .../org/apache/cayenne/map/DbAttribute.java     |   25 +
 .../org/apache/cayenne/map/DbRelationship.java  |   40 +-
 .../org/apache/cayenne/map/ObjAttribute.java    |    6 +
 .../java/org/apache/cayenne/map/ObjEntity.java  |   13 +-
 .../org/apache/cayenne/map/ObjRelationship.java |    2 +
 .../org/apache/cayenne/map/Relationship.java    |   13 +-
 .../map/naming/DefaultUniqueNameGenerator.java  |    7 +-
 .../apache/cayenne/map/naming/ExportedKey.java  |  173 +-
 .../apache/cayenne/map/naming/NameCheckers.java |    6 +-
 .../org/apache/cayenne/merge/AddColumnToDb.java |   72 +-
 .../cayenne/merge/AddRelationshipToDb.java      |    8 +-
 .../cayenne/merge/AddRelationshipToModel.java   |   38 +-
 .../cayenne/merge/CreateTableToModel.java       |   20 +-
 .../java/org/apache/cayenne/merge/DbMerger.java |  192 +--
 .../apache/cayenne/merge/DbMergerConfig.java    |   63 +
 .../merge/DefaultValueForNullProvider.java      |   10 +-
 .../cayenne/merge/DropRelationshipToDb.java     |    2 +-
 .../cayenne/merge/DropRelationshipToModel.java  |    4 +-
 .../cayenne/merge/ProxyModelMergeDelegate.java  |  108 ++
 .../apache/cayenne/merge/SetColumnTypeToDb.java |   68 +-
 .../org/apache/cayenne/query/ObjectSelect.java  |   50 +-
 .../org/apache/cayenne/query/SQLSelect.java     |   95 +-
 .../org/apache/cayenne/query/SQLTemplate.java   |   22 +-
 .../cayenne/query/SQLTemplateMetadata.java      |  117 +-
 .../java/org/apache/cayenne/query/Select.java   |   82 +
 .../org/apache/cayenne/query/SelectById.java    |  210 ++-
 .../org/apache/cayenne/query/SelectQuery.java   |   49 +-
 .../apache/cayenne/reflect/BeanAccessor.java    |  182 ++-
 .../org/apache/cayenne/reflect/MapAccessor.java |   52 +
 .../apache/cayenne/reflect/PropertyUtils.java   |  582 +++----
 .../cayenne/remote/IncrementalSelectQuery.java  |   42 +-
 .../apache/cayenne/util/EntityMergeSupport.java |  217 +--
 .../apache/cayenne/velocity/BindDirective.java  |   19 +-
 .../cayenne/velocity/BindEqualDirective.java    |    4 +-
 .../cayenne/velocity/BindNotEqualDirective.java |    4 +-
 .../velocity/BindObjectEqualDirective.java      |    6 +-
 .../velocity/BindObjectNotEqualDirective.java   |    4 +-
 .../apache/cayenne/velocity/ChainDirective.java |    2 +-
 .../cayenne/velocity/VelocityParamSequence.java |   68 -
 .../velocity/VelocitySQLTemplateProcessor.java  |   26 +-
 .../org/apache/cayenne/ejbql/EJBQLParser.jjt    |    5 +-
 .../org/apache/cayenne/dba/db2/types.xml        |   12 +
 .../org/apache/cayenne/dba/derby/types.xml      |   12 +
 .../org/apache/cayenne/dba/firebird/types.xml   |    6 +
 .../org/apache/cayenne/dba/h2/types.xml         |   15 +
 .../org/apache/cayenne/dba/hsqldb/types.xml     |   12 +
 .../org/apache/cayenne/dba/mysql/types.xml      |   15 +
 .../org/apache/cayenne/dba/oracle/types.xml     |   18 +
 .../org/apache/cayenne/dba/postgres/types.xml   |   15 +
 .../org/apache/cayenne/dba/sqlite/types.xml     |   12 +
 .../org/apache/cayenne/dba/sqlserver/types.xml  |   14 +
 .../org/apache/cayenne/dba/sybase/types.xml     |   15 +
 .../resources/org/apache/cayenne/dba/types.xml  |   18 +
 .../CayenneDataObjectFlattenedRelIT.java        |    7 +
 .../org/apache/cayenne/CayenneDataObjectIT.java |  260 ++-
 .../org/apache/cayenne/MockBaseContext.java     |   11 +-
 .../apache/cayenne/OneWayRelationshipsIT.java   |  257 +--
 .../cayenne/access/DataContextBlobIT.java       |    4 +-
 .../access/DataContextDeleteRulesIT.java        |  424 +++--
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |  154 +-
 .../apache/cayenne/access/DataContextIT.java    | 1545 +++++++++---------
 .../cayenne/access/DataContextOuterJoinsIT.java |  285 ++--
 .../org/apache/cayenne/access/DbLoaderIT.java   |  116 +-
 .../cayenne/access/DbLoaderPartialIT.java       |   23 +-
 .../cayenne/access/FlattenedPrefetchIT.java     |    1 -
 .../access/ManyToManyCandidateEntityTest.java   |  113 --
 .../cayenne/access/NestedDataContextReadIT.java |   14 +
 .../access/NestedDataContext_DeadlockIT.java    |  139 +-
 .../cayenne/access/ReturnTypesMappingIT.java    |   88 +
 .../cayenne/access/jdbc/SQLStatementTest.java   |    2 +-
 ...ectActionWithUnsupportedDistinctTypesIT.java |  163 ++
 .../loader/ManyToManyCandidateEntityTest.java   |  113 ++
 .../loader/filters/FiltersConfigTest.java       |   74 +
 .../loader/filters/IncludeFilterTest.java       |   34 +
 .../loader/filters/PatternFilterTest.java       |   78 +
 .../access/loader/filters/TableFilterTest.java  |   91 ++
 .../access/loader/mapper/DbTypeTest.java        |   87 +
 .../batch/DefaultBatchTranslatorIT.java         |   25 +-
 .../select/DefaultSelectTranslatorIT.java       |  787 +++++++++
 .../translator/select/OrderingTranslatorIT.java |  216 ++-
 .../select/QualifierTranslatorIT.java           |  197 ++-
 .../translator/select/QueryAssemblerIT.java     |   62 +-
 .../translator/select/SelectTranslatorIT.java   |  794 ---------
 .../translator/select/TstQueryAssembler.java    |   64 +-
 .../cayenne/access/types/CharTypeTest.java      |   17 +-
 .../server/ServerRuntimeBuilderIT.java          |   31 +-
 .../cayenne/conn/DriverDataSourceTest.java      |   43 -
 .../org/apache/cayenne/conn/PoolManagerIT.java  |  128 --
 .../cayenne/conn/PooledConnectionImplTest.java  |   53 -
 .../datafactory/CombinedValueProvider.java      |   25 +
 .../apache/cayenne/datafactory/DataFactory.java |  407 +++++
 .../datafactory/DictionaryValueProvider.java    |  104 ++
 .../cayenne/datafactory/ValueProvider.java      |  707 ++++++++
 .../datasource/BasePoolingDataSourceIT.java     |   77 +
 .../datasource/DriverDataSourceTest.java        |   44 +
 .../ManagedPoolingDataSourceTest.java           |   97 ++
 .../datasource/PoolAwareConnectionTest.java     |   99 ++
 .../datasource/PoolDataSourceManagerTest.java   |   80 +
 .../cayenne/datasource/PoolingDataSourceIT.java |  172 ++
 .../datasource/PoolingDataSourceTest.java       |  196 +++
 ...lingDataSource_FailingValidationQueryIT.java |   66 +
 .../PoolingDataSource_StaticsTest.java          |   41 +
 .../PoolingDataSource_ValidationQueryIT.java    |   56 +
 .../cayenne/exp/Expression_ParamsTest.java      |    6 +-
 .../cayenne/exp/LikeExpressionHelperTest.java   |   83 +
 .../org/apache/cayenne/exp/PropertyTest.java    |   38 +-
 .../cayenne/exp/parser/EvaluatorTest.java       |  133 ++
 .../org/apache/cayenne/map/DataMapTest.java     |    6 +-
 .../java/org/apache/cayenne/map/DbEntityIT.java |    4 +-
 .../apache/cayenne/map/DbRelationshipIT.java    |    4 +-
 .../apache/cayenne/map/ObjRelationshipIT.java   |   14 +-
 .../apache/cayenne/map/RelationshipTest.java    |    2 +-
 .../map/naming/LegacyNameGeneratorTest.java     |    4 +-
 .../cayenne/merge/AddColumnToModelIT.java       |   19 +-
 .../cayenne/merge/CreateTableToModelIT.java     |  144 +-
 .../org/apache/cayenne/merge/DbMergerTest.java  |   25 +-
 .../cayenne/merge/DropColumnToModelIT.java      |  407 +++--
 .../merge/DropRelationshipToModelIT.java        |  275 ++--
 .../cayenne/merge/DropTableToModelIT.java       |  131 +-
 .../org/apache/cayenne/merge/MergeCase.java     |  326 ++--
 .../apache/cayenne/merge/MergerFactoryIT.java   |   73 +-
 .../cayenne/merge/SetAllowNullToDbIT.java       |   64 +-
 .../apache/cayenne/merge/SetNotNullToDbIT.java  |   57 +-
 .../cayenne/merge/SetPrimaryKeyToDbIT.java      |   51 +-
 .../apache/cayenne/merge/ValueForNullIT.java    |  184 +--
 .../merge/builders/DbAttributeBuilder.java      |   15 +-
 .../cayenne/merge/builders/DbEntityBuilder.java |    6 +-
 .../cayenne/merge/builders/DefaultBuilder.java  |    2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |   43 +
 .../cayenne/query/ObjectSelect_RunIT.java       |  116 ++
 .../org/apache/cayenne/query/SQLSelectIT.java   |  284 +++-
 .../org/apache/cayenne/query/SQLSelectTest.java |   56 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |   27 +-
 .../org/apache/cayenne/query/SelectByIdIT.java  |  201 ---
 .../apache/cayenne/query/SelectByIdTest.java    |   78 +
 .../apache/cayenne/query/SelectById_RunIT.java  |  227 +++
 .../cayenne/query/SelectQueryBasicsTest.java    |  159 --
 .../org/apache/cayenne/query/SelectQueryIT.java | 1336 ++++++++-------
 .../apache/cayenne/query/SelectQueryTest.java   |  190 +++
 .../cayenne/reflect/PropertyUtilsTest.java      |  649 ++++----
 .../cayenne/testdo/lob/NClobTestEntity.java     |   28 +
 .../testdo/lob/auto/_NClobTestEntity.java       |   55 +
 .../return_types/auto/_ReturnTypesMap1.java     |   21 +
 .../return_types/auto/_ReturnTypesMapLobs1.java |    8 +
 .../unsupported_distinct_types/Customer.java    |   27 +
 .../unsupported_distinct_types/Product.java     |   27 +
 .../UnsupportedDistinctTypes.java               |   36 +
 .../auto/_Customer.java                         |   48 +
 .../auto/_Product.java                          |   79 +
 .../auto/_UnsupportedDistinctTypes.java         |   12 +
 .../cayenne/unit/di/server/CayenneProjects.java |    1 +
 .../cayenne/unit/di/server/SchemaBuilder.java   |    2 +-
 .../di/server/ServerCaseDataSourceFactory.java  |   89 +-
 .../cayenne/util/EntityMergeSupportIT.java      |  145 +-
 .../cayenne/velocity/ResultDirectiveIT.java     |  107 +-
 .../VelocitySQLTemplateProcessorTest.java       |   10 +-
 .../cayenne-relationships-activity.xml          |    4 +-
 .../cayenne-unsupported-distinct-types.xml      |    4 +
 cayenne-server/src/test/resources/lob.map.xml   |    7 +
 .../cayenne-relationship-optimisation.xml       |    4 -
 .../cayenne-relationship-optimisation.xml       |    4 +
 .../loader/relationship-optimisation.map.xml    |   43 +
 .../access/relationship-optimisation.map.xml    |   43 -
 .../resources/relationships-activity.map.xml    |   12 +-
 .../src/test/resources/return-types.map.xml     |    8 +
 .../src/test/resources/things.map.xml           |    8 +-
 .../unsupported-distinct-types.map.xml          |   57 +
 cayenne-tools/pom.xml                           |   67 +-
 .../java/org/apache/cayenne/gen/Artifact.java   |    1 +
 .../cayenne/gen/ClassGenerationAction.java      |   32 +-
 .../cayenne/gen/ClientDataMapArtifact.java      |   17 +-
 .../org/apache/cayenne/gen/DataMapArtifact.java |   13 +-
 .../map/naming/DefaultNameGenerator.java        |   12 +-
 .../cayenne/tools/AntDataPortDelegate.java      |    7 +-
 .../CayenneGeneratorEntityFilterAction.java     |   20 +-
 .../cayenne/tools/CayenneGeneratorTask.java     |   31 +-
 .../apache/cayenne/tools/DbGeneratorTask.java   |    2 +-
 .../apache/cayenne/tools/DbImporterTask.java    |  190 ++-
 .../org/apache/cayenne/tools/ExcludeTable.java  |   33 +
 .../cayenne/tools/NamePatternMatcher.java       |  294 ----
 .../configuration/DriverDataSourceFactory.java  |    2 +-
 .../cayenne/tools/dbimport/DbImportAction.java  |  165 +-
 .../tools/dbimport/DbImportConfiguration.java   |  366 ++---
 .../dbimport/DbImportDbLoaderDelegate.java      |   15 +-
 .../tools/dbimport/config/AntNestedElement.java |   42 +
 .../cayenne/tools/dbimport/config/Catalog.java  |  110 ++
 .../config/DefaultReverseEngineeringLoader.java |  230 +++
 .../config/DefaultTypeMapperBuilder.java        |   82 +
 .../tools/dbimport/config/ExcludeColumn.java    |   31 +
 .../tools/dbimport/config/ExcludeProcedure.java |   31 +
 .../tools/dbimport/config/FilterContainer.java  |  144 ++
 .../dbimport/config/FiltersConfigBuilder.java   |  367 +++++
 .../tools/dbimport/config/IncludeColumn.java    |   31 +
 .../tools/dbimport/config/IncludeProcedure.java |   31 +
 .../tools/dbimport/config/IncludeTable.java     |   85 +
 .../tools/dbimport/config/PatternParam.java     |   79 +
 .../dbimport/config/ReverseEngineering.java     |  135 ++
 .../config/ReverseEngineeringLoader.java        |   31 +
 .../cayenne/tools/dbimport/config/Schema.java   |   65 +
 .../cayenne/tools/dbimport/config/Type.java     |  136 ++
 .../tools/dbimport/config/TypeMapper.java       |   95 ++
 .../src/main/resources/reverseEngineering.xsd   |  139 ++
 .../templates/v1_2/client-superclass.vm         |    7 +-
 .../templates/v1_2/embeddable-singleclass.vm    |    5 +-
 .../templates/v1_2/embeddable-superclass.vm     |    5 +-
 .../resources/templates/v1_2/singleclass.vm     |   19 +-
 .../main/resources/templates/v1_2/superclass.vm |    7 +-
 .../cayenne/gen/ClassGenerationActionTest.java  |  419 +++--
 .../apache/cayenne/gen/ClassGenerationCase.java |   59 +
 .../gen/ClientSuperClassGenerationTest.java     |   86 +
 .../cayenne/gen/SingleClassGenerationTest.java  |   86 +
 .../cayenne/gen/SuperClassGenerationTest.java   |   86 +
 .../map/naming/DefaultNameGeneratorTest.java    |    6 +-
 .../cayenne/tools/AntDataPortDelegateTest.java  |    1 +
 .../cayenne/tools/DbImporterTaskTest.java       |  246 +++
 .../cayenne/tools/NamePatternMatcherTest.java   |  127 +-
 .../tools/dbimport/DbImportActionTest.java      |  566 ++++---
 .../dbimport/DbImportConfigurationTest.java     |  193 ---
 .../dbimport/DbImportDbLoaderDelegateTest.java  |    7 -
 .../DefaultReverseEngineeringLoaderTest.java    |  241 +++
 .../config/FiltersConfigBuilderTest.java        |  383 +++++
 .../cayenne/tools/build-catalog-and-schema.xml  |   78 +
 .../org/apache/cayenne/tools/build-catalog.xml  |   83 +
 .../org/apache/cayenne/tools/build-flat.xml     |   75 +
 .../org/apache/cayenne/tools/build-mapping.xml  |   44 +
 ...ild-reverse-engineering-in-external-file.xml |   33 +
 .../org/apache/cayenne/tools/build-schema.xml   |   83 +
 .../tools/build-skip-primary-key-loading.xml    |   37 +
 .../tools/build-skip-relationships-loading.xml  |   37 +
 .../apache/cayenne/tools/build-table-types.xml  |   40 +
 .../dbimport/build-include-table.map.xml-result |   37 +
 .../tools/dbimport/build-include-table.xml      |   35 +
 .../tools/dbimport/build-include-table.xml.sql  |   38 +
 .../config/reverseEngineering-ant-mapping.xml   |   31 +
 .../reverseEngineering-catalog-and-schema.xml   |   65 +
 .../config/reverseEngineering-catalog.xml       |   68 +
 .../dbimport/config/reverseEngineering-flat.xml |   61 +
 .../config/reverseEngineering-maven-mapping.xml |   55 +
 .../config/reverseEngineering-mixed-mapping.xml |   43 +
 .../config/reverseEngineering-schema.xml        |   69 +
 ...reverseEngineering-skipPrimaryKeyLoading.xml |   23 +
 ...erseEngineering-skipRelationshipsLoading.xml |   23 +
 .../config/reverseEngineering-tableTypes.xml    |   29 +
 docs/doc/pom.xml                                |    2 +-
 docs/doc/src/main/resources/KEYS                |   39 +
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |   43 +-
 docs/doc/src/main/resources/UPGRADE.txt         |   23 +
 docs/docbook/cayenne-guide/pom.xml              |    2 +-
 .../src/docbkx/including-cayenne-in-project.xml |    6 +
 .../src/docbkx/performance-tuning.xml           |   10 +-
 docs/docbook/cayenne-guide/src/docbkx/setup.xml |    4 +-
 docs/docbook/docbook-stylesheets/pom.xml        |    2 +-
 docs/docbook/getting-started-rop/pom.xml        |    2 +-
 docs/docbook/getting-started/pom.xml            |    2 +-
 docs/docbook/pom.xml                            |    4 +-
 docs/docbook/upgrade-guide/pom.xml              |    2 +-
 docs/docbook/upgrade-guide/src/docbkx/index.xml |    2 +-
 .../upgrade-guide/src/docbkx/new-features.xml   |  317 ++--
 docs/pom.xml                                    |    2 +-
 itests/cayenne-tools-itest/pom.xml              |    2 +-
 itests/pom.xml                                  |    2 +-
 modeler/cayenne-modeler-generic-ext/pom.xml     |   41 +-
 modeler/cayenne-modeler-generic/pom.xml         |   41 +-
 modeler/cayenne-modeler-mac-ext/pom.xml         |   40 +-
 modeler/cayenne-modeler-mac-legacy/pom.xml      |   40 +-
 modeler/cayenne-modeler-mac/pom.xml             |   38 +-
 modeler/cayenne-modeler-win/pom.xml             |   23 +-
 modeler/cayenne-modeler/pom.xml                 |   44 +-
 .../modeler/CayenneModelerController.java       |   11 +-
 .../cayenne/modeler/ProjectController.java      |   30 +-
 .../apache/cayenne/modeler/ProjectTreeView.java |   59 +-
 .../modeler/action/CreateObjEntityAction.java   |  209 ++-
 .../cayenne/modeler/action/MigrateAction.java   |    2 -
 .../cayenne/modeler/action/PasteAction.java     |   49 +-
 .../cayenne/modeler/dialog/FindDialog.java      |  104 +-
 .../cayenne/modeler/dialog/LogConsole.java      |   23 +-
 .../cayenne/modeler/dialog/LogConsoleView.java  |   69 +-
 .../dialog/ResolveDbRelationshipDialog.java     |    2 +-
 .../InferRelationshipsController.java           |    2 +-
 .../InferRelationshipsControllerBase.java       |    2 +-
 .../dialog/codegen/CustomModeController.java    |    6 +
 .../modeler/dialog/codegen/CustomModePanel.java |   10 +-
 .../codegen/CustomPreferencesUpdater.java       |   17 +-
 .../dialog/codegen/StandardModeController.java  |    4 +-
 .../dialog/codegen/StandardModePanel.java       |    9 +
 .../modeler/dialog/datadomain/FilterDialog.java |   31 +-
 .../dialog/datamap/PackageUpdateController.java |   20 +-
 .../modeler/dialog/db/DbLoaderHelper.java       |  268 +--
 .../modeler/dialog/db/DbLoaderMergeDialog.java  |  131 --
 .../dialog/db/DbLoaderOptionsDialog.java        |   76 +-
 .../modeler/dialog/db/MergerOptions.java        |   64 +-
 .../dialog/objentity/ClassNameUpdater.java      |   31 +-
 .../dialog/objentity/EntitySyncController.java  |   32 +-
 .../dialog/objentity/ObjRelationshipInfo.java   |   12 +-
 .../dialog/pref/DataSourcePreferences.java      |    2 +-
 .../cayenne/modeler/editor/EditorView.java      |    9 +-
 .../ObjEntityAttributeRelationshipTab.java      |   14 +
 .../editor/ObjRelationshipTableModel.java       |    2 +-
 .../modeler/editor/ProcedureTabbedView.java     |   14 +-
 .../modeler/editor/SQLTemplateScriptsTab.java   |   54 +-
 .../DbEntityAttributeRelationshipTab.java       |   14 +
 .../dbentity/DbRelationshipTableModel.java      |    2 +-
 .../cayenne/modeler/pref/DBConnectionInfo.java  |    2 +-
 .../cayenne/modeler/pref/DataMapDefaults.java   |   21 +-
 .../modeler/pref/ProjectStatePreferences.java   |  323 ++++
 .../modeler/util/NameGeneratorPreferences.java  |   14 +-
 .../modeler/util/StayOpenJCheckBoxMenuItem.java |   56 +
 .../util/state/AttributeDisplayEventType.java   |  107 ++
 .../util/state/DataMapDisplayEventType.java     |   58 +
 .../util/state/DataNodeDisplayEventType.java    |   55 +
 .../modeler/util/state/DisplayEventType.java    |   76 +
 .../modeler/util/state/DisplayEventTypes.java   |  198 +++
 .../util/state/DomainDisplayEventType.java      |   49 +
 .../EmbeddableAttributeDisplayEventType.java    |   98 ++
 .../util/state/EmbeddableDisplayEventType.java  |   62 +
 .../util/state/EntityDisplayEventType.java      |   84 +
 .../state/MultipleObjectsDisplayEventType.java  |  166 ++
 .../util/state/ProcedureDisplayEventType.java   |   63 +
 .../ProcedureParameterDisplayEventType.java     |   93 ++
 .../modeler/util/state/ProjectStateUtil.java    |   72 +
 .../util/state/QueryDisplayEventType.java       |   62 +
 .../state/RelationshipDisplayEventType.java     |  107 ++
 .../apache/cayenne/modeler/images/popupmenu.gif |  Bin 0 -> 285 bytes
 modeler/cayenne-wocompat/pom.xml                |   39 +-
 .../cayenne/wocompat/EOModelProcessor.java      |    4 +-
 modeler/pom.xml                                 |    2 +-
 plugins/maven-cayenne-modeler-plugin/pom.xml    |   40 +-
 plugins/maven-cayenne-plugin/pom.xml            |  130 +-
 .../cayenne/tools/CayenneGeneratorMojo.java     |   62 +-
 .../apache/cayenne/tools/DbGeneratorMojo.java   |   24 +-
 .../apache/cayenne/tools/DbImporterMojo.java    |  352 ++--
 .../tools/DbImporterMojoConfigurationTest.java  |  102 ++
 .../cayenne/tools/DbImporterMojoTest.java       |  367 ++++-
 .../org/apache/cayenne/tools/DerbyManager.java  |   63 +
 .../org/apache/cayenne/tools/config/pom-01.xml  |   99 ++
 .../tools/config/pom-catalog-and-schema.xml     |   82 +
 .../apache/cayenne/tools/config/pom-catalog.xml |   85 +
 .../tools/config/pom-default-package.xml        |   36 +
 .../apache/cayenne/tools/config/pom-flat.xml    |   78 +
 .../apache/cayenne/tools/config/pom-mapping.xml |   67 +
 .../cayenne/tools/config/pom-schema-2.xml       |   41 +
 .../apache/cayenne/tools/config/pom-schema.xml  |   85 +
 .../config/pom-skip-primary-key-loading.xml     |   39 +
 .../config/pom-skip-relationships-loading.xml   |   39 +
 .../cayenne/tools/config/pom-table-types.xml    |   41 +
 .../tools/dbimport/testDefaultPackage-pom.xml   |   42 +
 .../dbimport/testDefaultPackage.map.xml-result  |   52 +
 .../tools/dbimport/testDefaultPackage.sql       |   40 +
 .../dbimport/testFilteringWithSchema-pom.xml    |   41 +
 .../testFilteringWithSchema.map.xml-result      |   51 +
 .../tools/dbimport/testFilteringWithSchema.sql  |   64 +
 .../dbimport/testImportAddTableAndColumn.sql    |   17 +
 .../tools/dbimport/testImportNewDataMap.sql     |   17 +
 .../tools/dbimport/testImportWithoutChanges.sql |   17 +
 .../testOldParamsSchemasAndTableExclude-pom.xml |   43 +
 ...dParamsSchemasAndTableExclude.map.xml-result |   37 +
 .../testOldParamsSchemasAndTableExclude.sql     |   64 +
 .../cayenne/tools/dbimport/testOneToOne-pom.xml |   39 +
 .../tools/dbimport/testOneToOne.map.xml-result  |   58 +
 .../cayenne/tools/dbimport/testOneToOne.sql     |   41 +
 .../dbimport/testPreserveRelationships-pom.xml  |   44 +
 .../dbimport/testPreserveRelationships.map.xml  |   44 +
 .../testPreserveRelationships.map.xml-result    |   34 +
 .../dbimport/testPreserveRelationships.sql      |   28 +
 .../dbimport/testSchemasAndTableExclude-pom.xml |   45 +
 .../testSchemasAndTableExclude.map.xml-result   |   38 +
 .../dbimport/testSchemasAndTableExclude.sql     |   64 +
 .../tools/dbimport/testSimpleFiltering-pom.xml  |   41 +
 .../dbimport/testSimpleFiltering.map.xml-result |   37 +
 .../tools/dbimport/testSimpleFiltering.sql      |   37 +
 .../dbimport/testSkipPrimaryKeyLoading-pom.xml  |   43 +
 .../dbimport/testSkipPrimaryKeyLoading.map.xml  |   35 +
 .../testSkipPrimaryKeyLoading.map.xml-result    |   41 +
 .../dbimport/testSkipPrimaryKeyLoading.sql      |   30 +
 .../testSkipRelationshipsLoading-pom.xml        |   43 +
 .../testSkipRelationshipsLoading.map.xml        |   55 +
 .../testSkipRelationshipsLoading.map.xml-result |   55 +
 .../dbimport/testSkipRelationshipsLoading.sql   |   36 +
 ...SupportsCatalogsOnReverseEngineering-pom.xml |   41 +
 ...SupportsCatalogsOnReverseEngineering.map.xml |   25 +
 .../tools/dbimport/testTableTypes-pom.xml       |   43 +
 .../dbimport/testTableTypes.map.xml-result      |   29 +
 .../cayenne/tools/dbimport/testTableTypes.sql   |   25 +
 .../dbimport/testUnFlattensManyToMany-pom.xml   |   40 +
 .../dbimport/testUnFlattensManyToMany.map.xml   |   55 +
 .../testUnFlattensManyToMany.map.xml-result     |   88 +
 .../tools/dbimport/testUnFlattensManyToMany.sql |   64 +
 .../tools/dbimport/testViewsExclude-pom.xml     |   41 +
 .../dbimport/testViewsExclude.map.xml-result    |   43 +
 .../cayenne/tools/dbimport/testViewsExclude.sql |   30 +
 plugins/pom.xml                                 |   45 +-
 pom.xml                                         |  355 ++--
 rat.sh                                          |    1 +
 tutorials/pom.xml                               |    5 +-
 tutorials/tutorial-rop-client/pom.xml           |   36 +-
 .../tutorial/persistent/client/Main.java        |    2 +-
 tutorials/tutorial-rop-server/pom.xml           |   37 +-
 tutorials/tutorial/pom.xml                      |   21 +-
 .../java/org/apache/cayenne/tutorial/Main.java  |    8 +-
 584 files changed, 34865 insertions(+), 18457 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/d37f217f/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 6037f2d,35de260..1f38a05
--- a/pom.xml
+++ b/pom.xml
@@@ -61,8 -63,8 +63,9 @@@
  		<module>tutorials</module>
  		<module>docs</module>
  		<module>assembly</module>
+         <module>cayenne-joda</module>
 -    </modules>
 +		<module>cayenne-java8</module>
 +	</modules>
  	<issueManagement>
  		<system>jira</system>
  		<url>http://issues.apache.org/cayenne/</url>