You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/06/11 11:12:54 UTC

[cayenne] branch master updated: CAY-2557 Add java.time.Duration and java.time.Period to supported types

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

abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f02a3e  CAY-2557 Add java.time.Duration and java.time.Period to supported types
7f02a3e is described below

commit 7f02a3e3c14903d055b34173ffc59b78a5fc052b
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Tue Jun 11 14:12:40 2019 +0300

    CAY-2557 Add java.time.Duration and java.time.Period to supported types
---
 .../apache/cayenne/access/types/DurationType.java  | 18 +---------
 .../apache/cayenne/access/types/Java8TimeIT.java   | 10 ------
 .../testdo/java8/auto/_DurationTestEntity.java     | 38 ----------------------
 cayenne-server/src/test/resources/java8.map.xml    | 28 +++++++---------
 4 files changed, 13 insertions(+), 81 deletions(-)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
index ab2da3c..6f33abd 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
@@ -29,13 +29,9 @@ public class DurationType implements ExtendedType<Duration> {
             return val.toString();
         } else if(type == Types.LONGVARCHAR) {
             return val.toString();
-        } else if(type == Types.NVARCHAR) {
-            return val.toString();
-        } else if(type == Types.LONGNVARCHAR) {
-            return val.toString();
         } else {
             throw new IllegalArgumentException(
-                    "Only INTEGER, NUMERIC, DECIMAL, BIGINT, VARCHAR, LONGVARCHAR, NVARCHAR, LONGNVARCHAR " +
+                    "Only INTEGER, NUMERIC, DECIMAL, BIGINT, VARCHAR, LONGVARCHAR " +
                             "can be mapped as '" + getClassName()
                             + "', got " + TypesMapping.getSqlNameByType(type));
         }
@@ -72,12 +68,6 @@ public class DurationType implements ExtendedType<Duration> {
             case Types.LONGVARCHAR:
                 val = Duration.parse(rs.getString(index));
                 break;
-            case Types.NVARCHAR:
-                val = Duration.parse(rs.getNString(index));
-                break;
-            case Types.LONGNVARCHAR:
-                val = Duration.parse(rs.getNString(index));
-                break;
         }
 
         if(rs.wasNull()) {
@@ -111,12 +101,6 @@ public class DurationType implements ExtendedType<Duration> {
             case Types.LONGVARCHAR:
                 val = Duration.parse(rs.getString(index));
                 break;
-            case Types.NVARCHAR:
-                val = Duration.parse(rs.getNString(index));
-                break;
-            case Types.LONGNVARCHAR:
-                val = Duration.parse(rs.getNString(index));
-                break;
         }
 
         if(rs.wasNull()) {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/types/Java8TimeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/types/Java8TimeIT.java
index cf9611b..dd30dea 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/types/Java8TimeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/types/Java8TimeIT.java
@@ -154,11 +154,9 @@ public class Java8TimeIT extends ServerCase {
 		durationTestEntity.setDurationBigInt(duration);
 		durationTestEntity.setDurationDecimal(duration);
 		durationTestEntity.setDurationInt(duration);
-		durationTestEntity.setDurationLongNVarchar(duration);
 		durationTestEntity.setDurationLongVarchar(duration);
 		durationTestEntity.setDurationNumeric(duration);
 		durationTestEntity.setDurationVarchar(duration);
-		durationTestEntity.setDurationNVarchar(duration);
 
 		context.commitChanges();
 
@@ -176,10 +174,6 @@ public class Java8TimeIT extends ServerCase {
 		assertEquals(Duration.class, testRead.getDurationInt().getClass());
 		assertEquals(duration, testRead.getDurationInt());
 
-		assertNotNull(testRead.getDurationLongNVarchar());
-		assertEquals(Duration.class, testRead.getDurationLongNVarchar().getClass());
-		assertEquals(duration, testRead.getDurationLongNVarchar());
-
 		assertNotNull(testRead.getDurationLongVarchar());
 		assertEquals(Duration.class, testRead.getDurationLongVarchar().getClass());
 		assertEquals(duration, testRead.getDurationLongVarchar());
@@ -191,10 +185,6 @@ public class Java8TimeIT extends ServerCase {
 		assertNotNull(testRead.getDurationVarchar());
 		assertEquals(Duration.class, testRead.getDurationVarchar().getClass());
 		assertEquals(duration, testRead.getDurationVarchar());
-
-		assertNotNull(testRead.getDurationNVarchar());
-		assertEquals(Duration.class, testRead.getDurationNVarchar().getClass());
-		assertEquals(duration, testRead.getDurationNVarchar());
 	}
 
 	@Test
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/java8/auto/_DurationTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/java8/auto/_DurationTestEntity.java
index 3b9d018..f0d5c72 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/java8/auto/_DurationTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/java8/auto/_DurationTestEntity.java
@@ -26,8 +26,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
     public static final BaseProperty<Duration> DURATION_NUMERIC = PropertyFactory.createBase("durationNumeric", Duration.class);
     public static final BaseProperty<Duration> DURATION_DECIMAL = PropertyFactory.createBase("durationDecimal", Duration.class);
     public static final BaseProperty<Duration> DURATION_LONG_VARCHAR = PropertyFactory.createBase("durationLongVarchar", Duration.class);
-    public static final BaseProperty<Duration> DURATION_NVARCHAR = PropertyFactory.createBase("durationNVarchar", Duration.class);
-    public static final BaseProperty<Duration> DURATION_LONG_NVARCHAR = PropertyFactory.createBase("durationLongNVarchar", Duration.class);
     public static final BaseProperty<Duration> DURATION_INT = PropertyFactory.createBase("durationInt", Duration.class);
 
     protected Duration durationVarchar;
@@ -35,8 +33,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
     protected Duration durationNumeric;
     protected Duration durationDecimal;
     protected Duration durationLongVarchar;
-    protected Duration durationNVarchar;
-    protected Duration durationLongNVarchar;
     protected Duration durationInt;
 
 
@@ -90,26 +86,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
         return this.durationLongVarchar;
     }
 
-    public void setDurationNVarchar(Duration durationNVarchar) {
-        beforePropertyWrite("durationNVarchar", this.durationNVarchar, durationNVarchar);
-        this.durationNVarchar = durationNVarchar;
-    }
-
-    public Duration getDurationNVarchar() {
-        beforePropertyRead("durationNVarchar");
-        return this.durationNVarchar;
-    }
-
-    public void setDurationLongNVarchar(Duration durationLongNVarchar) {
-        beforePropertyWrite("durationLongNVarchar", this.durationLongNVarchar, durationLongNVarchar);
-        this.durationLongNVarchar = durationLongNVarchar;
-    }
-
-    public Duration getDurationLongNVarchar() {
-        beforePropertyRead("durationLongNVarchar");
-        return this.durationLongNVarchar;
-    }
-
     public void setDurationInt(Duration durationInt) {
         beforePropertyWrite("durationInt", this.durationInt, durationInt);
         this.durationInt = durationInt;
@@ -137,10 +113,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
                 return this.durationDecimal;
             case "durationLongVarchar":
                 return this.durationLongVarchar;
-            case "durationNVarchar":
-                return this.durationNVarchar;
-            case "durationLongNVarchar":
-                return this.durationLongNVarchar;
             case "durationInt":
                 return this.durationInt;
             default:
@@ -170,12 +142,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
             case "durationLongVarchar":
                 this.durationLongVarchar = (Duration)val;
                 break;
-            case "durationNVarchar":
-                this.durationNVarchar = (Duration)val;
-                break;
-            case "durationLongNVarchar":
-                this.durationLongNVarchar = (Duration)val;
-                break;
             case "durationInt":
                 this.durationInt = (Duration)val;
                 break;
@@ -200,8 +166,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
         out.writeObject(this.durationNumeric);
         out.writeObject(this.durationDecimal);
         out.writeObject(this.durationLongVarchar);
-        out.writeObject(this.durationNVarchar);
-        out.writeObject(this.durationLongNVarchar);
         out.writeObject(this.durationInt);
     }
 
@@ -213,8 +177,6 @@ public abstract class _DurationTestEntity extends BaseDataObject {
         this.durationNumeric = (Duration)in.readObject();
         this.durationDecimal = (Duration)in.readObject();
         this.durationLongVarchar = (Duration)in.readObject();
-        this.durationNVarchar = (Duration)in.readObject();
-        this.durationLongNVarchar = (Duration)in.readObject();
         this.durationInt = (Duration)in.readObject();
     }
 
diff --git a/cayenne-server/src/test/resources/java8.map.xml b/cayenne-server/src/test/resources/java8.map.xml
index 692cc77..b07d557 100644
--- a/cayenne-server/src/test/resources/java8.map.xml
+++ b/cayenne-server/src/test/resources/java8.map.xml
@@ -5,14 +5,12 @@
 	 project-version="10">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.java8"/>
 	<db-entity name="DURATION_TEST">
-		<db-attribute name="DurationBigInt" type="BIGINT"/>
-		<db-attribute name="DurationDecimal" type="DECIMAL"/>
-		<db-attribute name="DurationInt" type="INTEGER" length="100"/>
-		<db-attribute name="DurationLongNVarchar" type="LONGNVARCHAR" length="100"/>
-		<db-attribute name="DurationLongVarchar" type="LONGVARCHAR" length="100"/>
-		<db-attribute name="DurationNVarchar" type="NVARCHAR" length="100"/>
-		<db-attribute name="DurationNumeric" type="NUMERIC"/>
-		<db-attribute name="DurationVarchar" type="VARCHAR" length="100"/>
+		<db-attribute name="DURATION_BIG_INT" type="BIGINT"/>
+		<db-attribute name="DURATION_DECIMAL" type="DECIMAL" length="19" scale="2"/>
+		<db-attribute name="DURATION_INT" type="INTEGER"/>
+		<db-attribute name="DURATION_LONG_VARCHAR" type="LONGVARCHAR"/>
+		<db-attribute name="DURATION_NUMERIC" type="NUMERIC" length="19" scale="2"/>
+		<db-attribute name="DURATION_VARCHAR" type="VARCHAR" length="255"/>
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 	</db-entity>
 	<db-entity name="LOCAL_DATETIME_TEST">
@@ -32,14 +30,12 @@
 		<db-attribute name="PeriodField" type="VARCHAR" length="100"/>
 	</db-entity>
 	<obj-entity name="DurationTest" className="org.apache.cayenne.testdo.java8.DurationTestEntity" dbEntityName="DURATION_TEST">
-		<obj-attribute name="durationVarchar" type="java.time.Duration" db-attribute-path="DurationVarchar"/>
-		<obj-attribute name="durationBigInt" type="java.time.Duration" db-attribute-path="DurationBigInt"/>
-		<obj-attribute name="durationNumeric" type="java.time.Duration" db-attribute-path="DurationNumeric"/>
-		<obj-attribute name="durationDecimal" type="java.time.Duration" db-attribute-path="DurationDecimal"/>
-		<obj-attribute name="durationLongVarchar" type="java.time.Duration" db-attribute-path="DurationLongVarchar"/>
-		<obj-attribute name="durationNVarchar" type="java.time.Duration" db-attribute-path="DurationNVarchar"/>
-		<obj-attribute name="durationLongNVarchar" type="java.time.Duration" db-attribute-path="DurationLongNVarchar"/>
-		<obj-attribute name="durationInt" type="java.time.Duration" db-attribute-path="DurationInt"/>
+		<obj-attribute name="durationVarchar" type="java.time.Duration" db-attribute-path="DURATION_VARCHAR"/>
+		<obj-attribute name="durationBigInt" type="java.time.Duration" db-attribute-path="DURATION_BIG_INT"/>
+		<obj-attribute name="durationNumeric" type="java.time.Duration" db-attribute-path="DURATION_NUMERIC"/>
+		<obj-attribute name="durationDecimal" type="java.time.Duration" db-attribute-path="DURATION_DECIMAL"/>
+		<obj-attribute name="durationLongVarchar" type="java.time.Duration" db-attribute-path="DURATION_LONG_VARCHAR"/>
+		<obj-attribute name="durationInt" type="java.time.Duration" db-attribute-path="DURATION_INT"/>
 	</obj-entity>
 	<obj-entity name="LocalDateTest" className="org.apache.cayenne.testdo.java8.LocalDateTestEntity" dbEntityName="LOCAL_DATE_TEST">
 		<obj-attribute name="date" type="java.time.LocalDate" db-attribute-path="DateField"/>