You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/08/10 14:32:59 UTC

[1/9] cayenne git commit: CAY-2447 Added crypto support for java.time

Repository: cayenne
Updated Branches:
  refs/heads/master e616dc140 -> 63518b81c


CAY-2447 Added crypto support for java.time


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

Branch: refs/heads/master
Commit: 097276917ca17d8d114a7a47d0655e7f8e504ac1
Parents: e616dc1
Author: kkomyak <co...@gmail.com>
Authored: Tue Aug 7 17:30:46 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 09:58:17 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  1 +
 .../org/apache/cayenne/crypto/CryptoModule.java | 11 ++++++
 .../transformer/value/LocalDateConverter.java   | 28 +++++++++++++++
 .../value/LocalDateTimeConverter.java           | 37 ++++++++++++++++++++
 .../transformer/value/LocalTimeConverter.java   | 27 ++++++++++++++
 .../value/LocalDateConverterTest.java           | 27 ++++++++++++++
 .../value/LocalDateTimeConverterTest.java       | 29 +++++++++++++++
 .../value/LocalTimeConverterTest.java           | 28 +++++++++++++++
 8 files changed, 188 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 8db9264..fff3063 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -19,6 +19,7 @@ Bug Fixes:
 
 CAY-2444 Change URI from http:// to https:// in xsi:schemaLocation
 CAY-2445 Oracle: Problem with ExpressionFactory.notInExp()
+CAY-2447 Crypto support for LocalDateTime
 
 ----------------------------------
 Release: 4.1.M2

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
index f12f22a..5c75ad5 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
@@ -45,6 +45,9 @@ import org.apache.cayenne.crypto.transformer.value.DoubleConverter;
 import org.apache.cayenne.crypto.transformer.value.FloatConverter;
 import org.apache.cayenne.crypto.transformer.value.IntegerConverter;
 import org.apache.cayenne.crypto.transformer.value.LazyValueTransformerFactory;
+import org.apache.cayenne.crypto.transformer.value.LocalDateConverter;
+import org.apache.cayenne.crypto.transformer.value.LocalDateTimeConverter;
+import org.apache.cayenne.crypto.transformer.value.LocalTimeConverter;
 import org.apache.cayenne.crypto.transformer.value.LongConverter;
 import org.apache.cayenne.crypto.transformer.value.ShortConverter;
 import org.apache.cayenne.crypto.transformer.value.Utf8StringConverter;
@@ -57,6 +60,9 @@ import org.apache.cayenne.di.Module;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.sql.Types;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.Date;
 
 /**
@@ -183,5 +189,10 @@ public class CryptoModule implements Module {
         mapBuilder.put(Date.class.getName(), UtilDateConverter.INSTANCE);
         mapBuilder.put(BigInteger.class.getName(), BigIntegerConverter.INSTANCE);
         mapBuilder.put(BigDecimal.class.getName(), BigDecimalConverter.INSTANCE);
+
+        mapBuilder.put(LocalDate.class.getName(), LocalDateConverter.INSTANCE);
+        mapBuilder.put(LocalTime.class.getName(), LocalTimeConverter.INSTANCE);
+        mapBuilder.put(LocalDateTime.class.getName(), LocalDateTimeConverter.INSTANCE);
+
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
new file mode 100644
index 0000000..d584034
--- /dev/null
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
@@ -0,0 +1,28 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import java.time.LocalDate;
+import java.util.Objects;
+
+/**
+ * @since 4.1.M3
+ */
+public class LocalDateConverter implements BytesConverter<LocalDate> {
+
+    public static final BytesConverter<LocalDate> INSTANCE = new LocalDateConverter(LongConverter.INSTANCE);
+
+    private BytesConverter<Long> longConverter;
+
+    public LocalDateConverter(BytesConverter<Long> longConverter) {
+        this.longConverter = Objects.requireNonNull(longConverter);
+    }
+
+    @Override
+    public LocalDate fromBytes(byte[] bytes) {
+        return LocalDate.ofEpochDay(longConverter.fromBytes(bytes));
+    }
+
+    @Override
+    public byte[] toBytes(LocalDate value) {
+        return longConverter.toBytes(value.toEpochDay());
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
new file mode 100644
index 0000000..9e98632
--- /dev/null
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -0,0 +1,37 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Objects;
+import java.util.TimeZone;
+
+/**
+ * @since 4.1.M3
+ */
+public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
+    public static final BytesConverter<LocalDateTime> INSTANCE = new LocalDateTimeConverter(LongConverter.INSTANCE);
+
+    private BytesConverter<Long> longConverter;
+
+    public LocalDateTimeConverter(BytesConverter<Long> longConverter) {
+        this.longConverter = Objects.requireNonNull(longConverter);
+    }
+
+
+    @Override
+    public LocalDateTime fromBytes(byte[] bytes) {
+
+        return LocalDateTime.ofInstant(Instant.ofEpochMilli(longConverter.fromBytes(bytes)),
+                        TimeZone.getDefault().toZoneId());
+    }
+
+
+    @Override
+    public byte[] toBytes(LocalDateTime value) {
+
+        long epochMilli = value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
+
+        return longConverter.toBytes(epochMilli);
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
new file mode 100644
index 0000000..a1fa9bf
--- /dev/null
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import java.time.LocalTime;
+import java.util.Objects;
+
+/**
+ * @since 4.1.M3
+ */
+public class LocalTimeConverter implements BytesConverter<LocalTime> {
+    public static final BytesConverter<LocalTime> INSTANCE = new LocalTimeConverter(LongConverter.INSTANCE);
+
+    private BytesConverter<Long> longConverter;
+
+    public LocalTimeConverter(BytesConverter<Long> longConverter) {
+        this.longConverter = Objects.requireNonNull(longConverter);
+    }
+
+    @Override
+    public LocalTime fromBytes(byte[] bytes) {
+        return LocalTime.ofNanoOfDay(longConverter.fromBytes(bytes));
+    }
+
+    @Override
+    public byte[] toBytes(LocalTime value) {
+        return longConverter.toBytes(value.toNanoOfDay());
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
new file mode 100644
index 0000000..9b5458a
--- /dev/null
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
@@ -0,0 +1,27 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.time.LocalDate;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+public class LocalDateConverterTest {
+
+    private LocalDate localDate(String dateString) {
+        return LocalDate.parse(dateString);
+    }
+
+    @Test
+    public void testFromBytes() throws ParseException {
+        assertEquals(localDate("2015-01-07"), LocalDateConverter.INSTANCE.fromBytes(new byte[]{64, 58}));
+    }
+
+    @Test
+    public void testToBytes() throws ParseException {
+        assertArrayEquals(new byte[]{64, 58},
+                LocalDateConverter.INSTANCE.toBytes(localDate("2015-01-07")));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
new file mode 100644
index 0000000..9b0e5f2
--- /dev/null
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
@@ -0,0 +1,29 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+public class LocalDateTimeConverterTest {
+    private LocalDateTime localDate(String dateString) {
+
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        return LocalDateTime.parse(dateString, formatter);
+    }
+
+    @Test
+    public void testFromBytes() throws ParseException {
+        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 1, 74, -61, 104, 83, -48}));
+    }
+
+    @Test
+    public void testToBytes() throws ParseException {
+        assertArrayEquals(new byte[]{0, 0, 1, 74, -61, 104, 83, -48},
+                LocalDateTimeConverter.INSTANCE.toBytes(localDate("2015-01-07 11:00:02")));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/09727691/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
new file mode 100644
index 0000000..4743217
--- /dev/null
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
@@ -0,0 +1,28 @@
+package org.apache.cayenne.crypto.transformer.value;
+
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.time.LocalTime;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+public class LocalTimeConverterTest {
+
+    private LocalTime localTime(String dateString) {
+        return LocalTime.parse(dateString);
+    }
+
+    @Test
+    public void testFromBytes() throws ParseException {
+        assertEquals(localTime("11:00:02"), LocalTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 36, 4, -113, 36, 116, 0}));
+    }
+
+    @Test
+    public void testToBytes() throws ParseException {
+        assertArrayEquals(new byte[]{0, 0, 36, 4, -113, 36, 116, 0},
+                LocalTimeConverter.INSTANCE.toBytes(localTime("11:00:02")));
+    }
+
+}


[3/9] cayenne git commit: Changed zone offset to 0.

Posted by nt...@apache.org.
Changed zone offset to 0.


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

Branch: refs/heads/master
Commit: 0129ce4f5788275f29c7baa009b1dfd3b0c95d1e
Parents: c9093b7
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 13:04:30 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 13:04:30 2018 +0300

----------------------------------------------------------------------
 .../crypto/transformer/value/LocalDateTimeConverter.java    | 9 +++------
 .../transformer/value/LocalDateTimeConverterTest.java       | 4 ++--
 2 files changed, 5 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/0129ce4f/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 6476e60..17e512b 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -2,7 +2,7 @@ package org.apache.cayenne.crypto.transformer.value;
 
 import java.time.Instant;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.util.Objects;
 
 /**
@@ -22,15 +22,12 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
     public LocalDateTime fromBytes(byte[] bytes) {
 
         return LocalDateTime.ofInstant(Instant.ofEpochMilli(longConverter.fromBytes(bytes)),
-                ZoneId.systemDefault());
+                ZoneOffset.ofHours(0));
     }
 
 
     @Override
     public byte[] toBytes(LocalDateTime value) {
-
-        long epochMilli = value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
-
-        return longConverter.toBytes(epochMilli);
+        return longConverter.toBytes(value.toInstant(ZoneOffset.ofHours(0)).toEpochMilli());
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0129ce4f/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
index 9b0e5f2..fc13e9e 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
@@ -18,12 +18,12 @@ public class LocalDateTimeConverterTest {
 
     @Test
     public void testFromBytes() throws ParseException {
-        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 1, 74, -61, 104, 83, -48}));
+        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 1, 74, -60, 13, 31, 80}));
     }
 
     @Test
     public void testToBytes() throws ParseException {
-        assertArrayEquals(new byte[]{0, 0, 1, 74, -61, 104, 83, -48},
+        assertArrayEquals(new byte[]{0, 0, 1, 74, -60, 13, 31, 80},
                 LocalDateTimeConverter.INSTANCE.toBytes(localDate("2015-01-07 11:00:02")));
     }
 }


[5/9] cayenne git commit: Changed to LocalDateTimeConverter uses LocalDate and LocalTime separately.

Posted by nt...@apache.org.
Changed to LocalDateTimeConverter uses LocalDate and LocalTime separately.


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

Branch: refs/heads/master
Commit: b919e3ea691b9378079873285dc88887e8c02a57
Parents: abe62d3
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 11:30:51 2018 +0000
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 11:30:51 2018 +0000

----------------------------------------------------------------------
 .../value/LocalDateTimeConverter.java           | 27 ++++++++++++++++----
 .../value/LocalDateTimeConverterTest.java       |  4 +--
 2 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/b919e3ea/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 71ad63f..6d3e081 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -1,8 +1,9 @@
 package org.apache.cayenne.crypto.transformer.value;
 
-import java.time.Instant;
+import java.lang.reflect.Array;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.ZoneOffset;
+import java.time.LocalTime;
 import java.util.Objects;
 
 /**
@@ -20,14 +21,30 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
 
     @Override
     public LocalDateTime fromBytes(byte[] bytes) {
+        int dateLength = 2;
+        int timeLength = 8;
 
-        return LocalDateTime.ofInstant(Instant.ofEpochMilli(longConverter.fromBytes(bytes)),
-                ZoneOffset.ofHours(0));
+        byte[] date = new byte[dateLength];
+        byte[] time = new byte[timeLength];
+
+        System.arraycopy(bytes, 0, date, 0, dateLength);
+        System.arraycopy(bytes, dateLength, time, 0, timeLength);
+
+        LocalDate localDate = LocalDate.ofEpochDay(longConverter.fromBytes(date));
+        LocalTime localTime = LocalTime.ofNanoOfDay(longConverter.fromBytes(time));
+        return LocalDateTime.of(localDate, localTime);
     }
 
 
     @Override
     public byte[] toBytes(LocalDateTime value) {
-        return longConverter.toBytes(value.toInstant(ZoneOffset.ofHours(0)).toEpochMilli());
+        byte[] date = longConverter.toBytes(value.toLocalDate().toEpochDay());
+        byte[] time = longConverter.toBytes(value.toLocalTime().toNanoOfDay());
+
+        byte [] datetime = (byte[]) Array.newInstance(byte.class, date.length + time.length);
+        System.arraycopy(date,0, datetime, 0, date.length);
+        System.arraycopy(time,0, datetime, date.length, time.length);
+
+        return datetime;
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b919e3ea/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
index fc13e9e..1cc9425 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
@@ -18,12 +18,12 @@ public class LocalDateTimeConverterTest {
 
     @Test
     public void testFromBytes() throws ParseException {
-        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 1, 74, -60, 13, 31, 80}));
+        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{64, 58, 0, 0, 36, 4, -113, 36, 116, 0}));
     }
 
     @Test
     public void testToBytes() throws ParseException {
-        assertArrayEquals(new byte[]{0, 0, 1, 74, -60, 13, 31, 80},
+        assertArrayEquals(new byte[]{64, 58, 0, 0, 36, 4, -113, 36, 116, 0},
                 LocalDateTimeConverter.INSTANCE.toBytes(localDate("2015-01-07 11:00:02")));
     }
 }


[2/9] cayenne git commit: Changed defaultTime zone to systemDefault.

Posted by nt...@apache.org.
Changed defaultTime zone to systemDefault.


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

Branch: refs/heads/master
Commit: c9093b7eff1cd5f43c819eab2f746b49b6721fc6
Parents: 0972769
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 11:03:17 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 11:03:17 2018 +0300

----------------------------------------------------------------------
 .../cayenne/crypto/transformer/value/LocalDateTimeConverter.java  | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/c9093b7e/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 9e98632..6476e60 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -4,7 +4,6 @@ import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Objects;
-import java.util.TimeZone;
 
 /**
  * @since 4.1.M3
@@ -23,7 +22,7 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
     public LocalDateTime fromBytes(byte[] bytes) {
 
         return LocalDateTime.ofInstant(Instant.ofEpochMilli(longConverter.fromBytes(bytes)),
-                        TimeZone.getDefault().toZoneId());
+                ZoneId.systemDefault());
     }
 
 


[8/9] cayenne git commit: Merge PR #302

Posted by nt...@apache.org.
Merge PR #302


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

Branch: refs/heads/master
Commit: c9d0fd32bc14dd6efbafc62928e0bcf91d14229a
Parents: e616dc1 c9f5517
Author: Nikita Timofeev <st...@gmail.com>
Authored: Fri Aug 10 12:08:44 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Fri Aug 10 12:08:44 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  1 +
 .../org/apache/cayenne/crypto/CryptoModule.java | 11 +++++
 .../transformer/value/LocalDateConverter.java   | 28 +++++++++++
 .../value/LocalDateTimeConverter.java           | 49 ++++++++++++++++++++
 .../transformer/value/LocalTimeConverter.java   | 27 +++++++++++
 .../value/LocalDateConverterTest.java           | 27 +++++++++++
 .../value/LocalDateTimeConverterTest.java       | 29 ++++++++++++
 .../value/LocalTimeConverterTest.java           | 28 +++++++++++
 8 files changed, 200 insertions(+)
----------------------------------------------------------------------



[9/9] cayenne git commit: CAY-2447 Crypto support for LocalDateTime

Posted by nt...@apache.org.
CAY-2447 Crypto support for LocalDateTime


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

Branch: refs/heads/master
Commit: 63518b81c6d8455a70558255cc160f91a26ed46d
Parents: c9d0fd3
Author: Nikita Timofeev <st...@gmail.com>
Authored: Fri Aug 10 17:32:09 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Fri Aug 10 17:32:09 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  2 +-
 .../value/LocalDateTimeConverter.java           | 27 ++++++++----
 .../transformer/value/LocalTimeConverter.java   |  1 +
 .../value/LocalDateConverterTest.java           | 14 +++----
 .../value/LocalDateTimeConverterTest.java       | 43 +++++++++++++++-----
 .../value/LocalTimeConverterTest.java           | 20 +++++----
 6 files changed, 71 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index fff3063..d2e5421 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -14,12 +14,12 @@ Date:
 Changes/New Features:
 
 CAY-2446 Run Disjoint By Id queries outside of synchronized block
+CAY-2447 Crypto support for LocalDateTime
 
 Bug Fixes:
 
 CAY-2444 Change URI from http:// to https:// in xsi:schemaLocation
 CAY-2445 Oracle: Problem with ExpressionFactory.notInExp()
-CAY-2447 Crypto support for LocalDateTime
 
 ----------------------------------
 Release: 4.1.M2

http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 91dd318..6307c46 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -5,10 +5,13 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.Objects;
 
+import org.apache.cayenne.crypto.CayenneCryptoException;
+
 /**
  * @since 4.1
  */
 public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
+
     public static final BytesConverter<LocalDateTime> INSTANCE = new LocalDateTimeConverter(LongConverter.INSTANCE);
 
     private BytesConverter<Long> longConverter;
@@ -20,14 +23,22 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
 
     @Override
     public LocalDateTime fromBytes(byte[] bytes) {
-        int dateLength = 2;
-        int timeLength = 8;
+        if (bytes.length < 2) {
+            throw new IllegalArgumentException("Unexpected number of bytes: " + bytes.length);
+        }
+
+        // long values converted to varying length byte arrays, so first byte is length
+        int dateLength = bytes[0];
+        if(dateLength <= 0 || dateLength >= bytes.length - 1) {
+            throw new CayenneCryptoException("Corrupted data for LocalDateTime: wrong encoded length");
+        }
+        int timeLength = bytes.length - 1 - dateLength;
 
         byte[] date = new byte[dateLength];
         byte[] time = new byte[timeLength];
 
-        System.arraycopy(bytes, 0, date, 0, dateLength);
-        System.arraycopy(bytes, dateLength, time, 0, timeLength);
+        System.arraycopy(bytes, 1, date, 0, dateLength);
+        System.arraycopy(bytes, dateLength + 1, time, 0, timeLength);
 
         LocalDate localDate = LocalDate.ofEpochDay(longConverter.fromBytes(date));
         LocalTime localTime = LocalTime.ofNanoOfDay(longConverter.fromBytes(time));
@@ -40,9 +51,11 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
         byte[] date = longConverter.toBytes(value.toLocalDate().toEpochDay());
         byte[] time = longConverter.toBytes(value.toLocalTime().toNanoOfDay());
 
-        byte [] datetime = new byte[date.length + time.length];
-        System.arraycopy(date,0, datetime, 0, date.length);
-        System.arraycopy(time,0, datetime, date.length, time.length);
+        byte [] datetime = new byte[date.length + time.length  + 1];
+        // store date part length as first byte
+        datetime[0] = (byte)date.length;
+        System.arraycopy(date,0, datetime, 1, date.length);
+        System.arraycopy(time,0, datetime, date.length + 1, time.length);
 
         return datetime;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
index 82908ec..ae49c80 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
@@ -7,6 +7,7 @@ import java.util.Objects;
  * @since 4.1
  */
 public class LocalTimeConverter implements BytesConverter<LocalTime> {
+
     public static final BytesConverter<LocalTime> INSTANCE = new LocalTimeConverter(LongConverter.INSTANCE);
 
     private BytesConverter<Long> longConverter;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
index 9b5458a..7cf6aa8 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverterTest.java
@@ -2,7 +2,6 @@ package org.apache.cayenne.crypto.transformer.value;
 
 import org.junit.Test;
 
-import java.text.ParseException;
 import java.time.LocalDate;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -10,18 +9,15 @@ import static org.junit.Assert.assertEquals;
 
 public class LocalDateConverterTest {
 
-    private LocalDate localDate(String dateString) {
-        return LocalDate.parse(dateString);
-    }
-
     @Test
-    public void testFromBytes() throws ParseException {
-        assertEquals(localDate("2015-01-07"), LocalDateConverter.INSTANCE.fromBytes(new byte[]{64, 58}));
+    public void testFromBytes() {
+        assertEquals(LocalDate.of(2015, 1, 7),
+                LocalDateConverter.INSTANCE.fromBytes(new byte[]{64, 58}));
     }
 
     @Test
-    public void testToBytes() throws ParseException {
+    public void testToBytes() {
         assertArrayEquals(new byte[]{64, 58},
-                LocalDateConverter.INSTANCE.toBytes(localDate("2015-01-07")));
+                LocalDateConverter.INSTANCE.toBytes(LocalDate.of(2015, 1, 7)));
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
index 1cc9425..6be15e9 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverterTest.java
@@ -2,28 +2,51 @@ package org.apache.cayenne.crypto.transformer.value;
 
 import org.junit.Test;
 
-import java.text.ParseException;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
 public class LocalDateTimeConverterTest {
-    private LocalDateTime localDate(String dateString) {
 
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        return LocalDateTime.parse(dateString, formatter);
+    @Test
+    public void testFromBytes() {
+        assertEquals(LocalDateTime.of(2015, 1, 7, 11, 0, 2),
+                LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{2, 64, 58, 0, 0, 36, 4, -113, 36, 116, 0}));
+    }
+
+    @Test
+    public void testToBytes() {
+        byte[] bytes = LocalDateTimeConverter.INSTANCE
+                .toBytes(LocalDateTime.of(2015, 1, 7, 11, 0, 2));
+        assertArrayEquals(new byte[]{2, 64, 58, 0, 0, 36, 4, -113, 36, 116, 0}, bytes);
+    }
+
+    @Test
+    public void testToBytesBig() {
+        byte[] bytes = LocalDateTimeConverter.INSTANCE
+                .toBytes(LocalDateTime.of(123456, 12, 31, 23, 59, 59));
+        assertArrayEquals(new byte[]{4, 2, -91, 16, -9, 0, 0, 78, -108, 85, -76, 54, 0}, bytes);
+    }
+
+    @Test
+    public void testFromBytesBig() {
+        LocalDateTime localDateTime = LocalDateTimeConverter.INSTANCE
+                .fromBytes(new byte[]{4, 2, -91, 16, -9, 0, 0, 78, -108, 85, -76, 54, 0});
+        assertEquals(LocalDateTime.of(123456, 12, 31, 23, 59, 59), localDateTime);
     }
 
     @Test
-    public void testFromBytes() throws ParseException {
-        assertEquals(localDate("2015-01-07 11:00:02"), LocalDateTimeConverter.INSTANCE.fromBytes(new byte[]{64, 58, 0, 0, 36, 4, -113, 36, 116, 0}));
+    public void testToBytesSmall() {
+        byte[] bytes = LocalDateTimeConverter.INSTANCE
+                .toBytes(LocalDateTime.of(0, 1, 1, 0, 0, 0));
+        assertArrayEquals(new byte[]{4, -1, -11, 5, 88, 0}, bytes);
     }
 
     @Test
-    public void testToBytes() throws ParseException {
-        assertArrayEquals(new byte[]{64, 58, 0, 0, 36, 4, -113, 36, 116, 0},
-                LocalDateTimeConverter.INSTANCE.toBytes(localDate("2015-01-07 11:00:02")));
+    public void testFromBytesSmall() {
+        LocalDateTime localDateTime = LocalDateTimeConverter.INSTANCE
+                .fromBytes(new byte[]{4, -1, -11, 5, 88, 0});
+        assertEquals(LocalDateTime.of(0, 1, 1, 0, 0, 0), localDateTime);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/63518b81/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
index 4743217..e0dca79 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverterTest.java
@@ -2,7 +2,6 @@ package org.apache.cayenne.crypto.transformer.value;
 
 import org.junit.Test;
 
-import java.text.ParseException;
 import java.time.LocalTime;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -10,19 +9,22 @@ import static org.junit.Assert.assertEquals;
 
 public class LocalTimeConverterTest {
 
-    private LocalTime localTime(String dateString) {
-        return LocalTime.parse(dateString);
-    }
-
     @Test
-    public void testFromBytes() throws ParseException {
-        assertEquals(localTime("11:00:02"), LocalTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 36, 4, -113, 36, 116, 0}));
+    public void testFromBytes() {
+        assertEquals(LocalTime.of(11, 0, 2),
+                LocalTimeConverter.INSTANCE.fromBytes(new byte[]{0, 0, 36, 4, -113, 36, 116, 0}));
+
+        assertEquals(LocalTime.of(0, 0, 0),
+                LocalTimeConverter.INSTANCE.fromBytes(new byte[]{0}));
     }
 
     @Test
-    public void testToBytes() throws ParseException {
+    public void testToBytes() {
         assertArrayEquals(new byte[]{0, 0, 36, 4, -113, 36, 116, 0},
-                LocalTimeConverter.INSTANCE.toBytes(localTime("11:00:02")));
+                LocalTimeConverter.INSTANCE.toBytes(LocalTime.of(11, 0, 2)));
+
+        assertArrayEquals(new byte[]{0},
+                LocalTimeConverter.INSTANCE.toBytes(LocalTime.of(0, 0, 0)));
     }
 
 }


[6/9] cayenne git commit: Refactoring.

Posted by nt...@apache.org.
Refactoring.


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

Branch: refs/heads/master
Commit: 0afdecb44c06edbcc545bc68d48be59dcef006d4
Parents: b919e3e
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 15:40:03 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 15:40:03 2018 +0300

----------------------------------------------------------------------
 .../cayenne/crypto/transformer/value/LocalDateTimeConverter.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/0afdecb4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 6d3e081..1b4d80d 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -41,7 +41,7 @@ public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
         byte[] date = longConverter.toBytes(value.toLocalDate().toEpochDay());
         byte[] time = longConverter.toBytes(value.toLocalTime().toNanoOfDay());
 
-        byte [] datetime = (byte[]) Array.newInstance(byte.class, date.length + time.length);
+        byte [] datetime = new byte[date.length + time.length];
         System.arraycopy(date,0, datetime, 0, date.length);
         System.arraycopy(time,0, datetime, date.length, time.length);
 


[4/9] cayenne git commit: Changed since javadoc.

Posted by nt...@apache.org.
Changed since javadoc.


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

Branch: refs/heads/master
Commit: abe62d3ab900f23a3d7ca01c075c1b99f07eec96
Parents: 0129ce4
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 13:19:16 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 13:19:16 2018 +0300

----------------------------------------------------------------------
 .../cayenne/crypto/transformer/value/LocalDateConverter.java       | 2 +-
 .../cayenne/crypto/transformer/value/LocalDateTimeConverter.java   | 2 +-
 .../cayenne/crypto/transformer/value/LocalTimeConverter.java       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/abe62d3a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
index d584034..71f0db7 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateConverter.java
@@ -4,7 +4,7 @@ import java.time.LocalDate;
 import java.util.Objects;
 
 /**
- * @since 4.1.M3
+ * @since 4.1
  */
 public class LocalDateConverter implements BytesConverter<LocalDate> {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/abe62d3a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 17e512b..71ad63f 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -6,7 +6,7 @@ import java.time.ZoneOffset;
 import java.util.Objects;
 
 /**
- * @since 4.1.M3
+ * @since 4.1
  */
 public class LocalDateTimeConverter implements BytesConverter<LocalDateTime> {
     public static final BytesConverter<LocalDateTime> INSTANCE = new LocalDateTimeConverter(LongConverter.INSTANCE);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/abe62d3a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
index a1fa9bf..82908ec 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalTimeConverter.java
@@ -4,7 +4,7 @@ import java.time.LocalTime;
 import java.util.Objects;
 
 /**
- * @since 4.1.M3
+ * @since 4.1
  */
 public class LocalTimeConverter implements BytesConverter<LocalTime> {
     public static final BytesConverter<LocalTime> INSTANCE = new LocalTimeConverter(LongConverter.INSTANCE);


[7/9] cayenne git commit: Refactoring.

Posted by nt...@apache.org.
Refactoring.


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

Branch: refs/heads/master
Commit: c9f5517f529be0d360bdd74fa42184e5f77c6bfe
Parents: 0afdecb
Author: kkomyak <co...@gmail.com>
Authored: Wed Aug 8 15:41:38 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Wed Aug 8 15:41:38 2018 +0300

----------------------------------------------------------------------
 .../cayenne/crypto/transformer/value/LocalDateTimeConverter.java    | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/c9f5517f/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
index 1b4d80d..91dd318 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LocalDateTimeConverter.java
@@ -1,6 +1,5 @@
 package org.apache.cayenne.crypto.transformer.value;
 
-import java.lang.reflect.Array;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;