Repository: cayenne
Updated Branches:
  refs/heads/master fa605bf30 -> e91e11a44


CAY-2103 cayenne-crypto: support for mapping non-String and non-binary types

* parameterizing BytesConverter
* missing license headers


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

Branch: refs/heads/master
Commit: e91e11a44277e6a755636a514c43691b9f2755f1
Parents: fa605bf
Author: Andrus Adamchik <[email protected]>
Authored: Thu Aug 18 12:25:04 2016 +0300
Committer: Andrus Adamchik <[email protected]>
Committed: Thu Aug 18 16:04:25 2016 +0300

----------------------------------------------------------------------
 .../value/Base64StringConverter.java            | 10 +++---
 .../transformer/value/BooleanConverter.java     | 28 ++++++++++++++---
 .../crypto/transformer/value/ByteConverter.java | 16 +++-------
 .../transformer/value/BytesConverter.java       |  6 ++--
 .../value/BytesToBytesConverter.java            |  5 +--
 .../value/DefaultValueTransformerFactory.java   | 32 ++++++++++----------
 .../transformer/value/IntegerConverter.java     | 16 +++-------
 .../crypto/transformer/value/LongConverter.java | 26 +++++++++++++---
 .../transformer/value/ShortConverter.java       | 16 +++-------
 .../transformer/value/Utf8StringConverter.java  | 10 +++---
 .../transformer/value/UtilDateConverter.java    | 28 ++++++++++++++---
 .../cayenne/crypto/Runtime_AES128_IT.java       |  2 +-
 .../transformer/value/BooleanConverterTest.java | 18 +++++++++++
 .../transformer/value/IntegerConverterTest.java |  5 ---
 .../transformer/value/LongConverterTest.java    |  4 +--
 .../value/UtilDateConverterTest.java            | 18 +++++++++++
 16 files changed, 154 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Base64StringConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Base64StringConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Base64StringConverter.java
index 2f80d6e..652bdf5 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Base64StringConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Base64StringConverter.java
@@ -23,17 +23,17 @@ import javax.xml.bind.DatatypeConverter;
 /**
  * @since 4.0
  */
-public class Base64StringConverter implements BytesConverter {
+public class Base64StringConverter implements BytesConverter<String> {
 
-    static final BytesConverter INSTANCE = new Base64StringConverter();
+    static final BytesConverter<String> INSTANCE = new Base64StringConverter();
 
     @Override
-    public byte[] toBytes(Object value) {
-        return DatatypeConverter.parseBase64Binary((String) value);
+    public byte[] toBytes(String value) {
+        return DatatypeConverter.parseBase64Binary(value);
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public String fromBytes(byte[] bytes) {
         return DatatypeConverter.printBase64Binary(bytes);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BooleanConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BooleanConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BooleanConverter.java
index cf7636f..5282dbd 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BooleanConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BooleanConverter.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.crypto.transformer.value;
 
 /**
@@ -5,12 +23,12 @@ package org.apache.cayenne.crypto.transformer.value;
  *
  * @since 4.0
  */
-public class BooleanConverter implements BytesConverter {
+public class BooleanConverter implements BytesConverter<Boolean> {
 
-    static final BytesConverter INSTANCE = new BooleanConverter();
+    static final BytesConverter<Boolean> INSTANCE = new BooleanConverter();
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Boolean fromBytes(byte[] bytes) {
 
         if (bytes.length != 1) {
             throw new IllegalArgumentException("Unexpected number of bytes for 
boolean: " + bytes.length);
@@ -27,9 +45,9 @@ public class BooleanConverter implements BytesConverter {
     }
 
     @Override
-    public byte[] toBytes(Object value) {
+    public byte[] toBytes(Boolean value) {
         return new byte[]{
-                ((Boolean) value) ? (byte) 1 : 0
+                value ? (byte) 1 : 0
         };
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ByteConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ByteConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ByteConverter.java
index 77f97e0..e5db1fc 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ByteConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ByteConverter.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.crypto.transformer.value;
 /**
  * @since 4.0
  */
-public class ByteConverter implements BytesConverter {
+public class ByteConverter implements BytesConverter<Byte> {
 
-    public static final BytesConverter INSTANCE = new ByteConverter();
+    public static final BytesConverter<Byte> INSTANCE = new ByteConverter();
     private static final int BYTES = 1;
 
     static byte getByte(byte[] bytes) {
@@ -39,18 +39,12 @@ public class ByteConverter implements BytesConverter {
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Byte fromBytes(byte[] bytes) {
         return getByte(bytes);
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-
-        long number = ((Number) value).longValue();
-        if (number <= Byte.MAX_VALUE && number >= Byte.MIN_VALUE) {
-            return getBytes((byte) number);
-        }
-
-        throw new IllegalArgumentException("Byte is out of range: " + number);
+    public byte[] toBytes(Byte value) {
+        return getBytes(value);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesConverter.java
index 1caec01..c93466a 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesConverter.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.crypto.transformer.value;
 /**
  * @since 4.0
  */
-public interface BytesConverter {
+public interface BytesConverter<T> {
 
-    Object fromBytes(byte[] bytes);
+    T fromBytes(byte[] bytes);
 
-    byte[] toBytes(Object value);
+    byte[] toBytes(T value);
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesToBytesConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesToBytesConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesToBytesConverter.java
index 74f919c..0eb9e20 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesToBytesConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/BytesToBytesConverter.java
@@ -21,9 +21,10 @@ package org.apache.cayenne.crypto.transformer.value;
 /**
  * @since 4.0
  */
-class BytesToBytesConverter implements BytesConverter {
+// we can't use <byte[]> , so parameterizing this converter to Object
+public class BytesToBytesConverter implements BytesConverter<Object> {
 
-    static final BytesToBytesConverter INSTANCE = new BytesToBytesConverter();
+    static final BytesConverter<Object> INSTANCE = new BytesToBytesConverter();
 
     @Override
     public byte[] toBytes(Object value) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
index 26c4a36..2d68972 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
@@ -47,11 +47,11 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
 
     private final Key defaultKey;
 
-    private final Map<String, BytesConverter> objectToBytes;
-    private final Map<Integer, BytesConverter> dbToBytes;
+    private final Map<String, BytesConverter<?>> objectToBytes;
+    private final Map<Integer, BytesConverter<?>> dbToBytes;
 
-    private final Map<String, BytesConverter> bytesToObject;
-    private final Map<Integer, BytesConverter> bytesToDb;
+    private final Map<String, BytesConverter<?>> bytesToObject;
+    private final Map<Integer, BytesConverter<?>> bytesToDb;
 
     private final ConcurrentMap<DbAttribute, ValueEncryptor> encryptors;
     private final ConcurrentMap<DbAttribute, ValueDecryptor> decryptors;
@@ -98,8 +98,8 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
         return e;
     }
 
-    protected Map<Integer, BytesConverter> createDbToBytesConverters() {
-        Map<Integer, BytesConverter> map = new HashMap<Integer, 
BytesConverter>();
+    protected Map<Integer, BytesConverter<?>> createDbToBytesConverters() {
+        Map<Integer, BytesConverter<?>> map = new HashMap<>();
 
         map.put(Types.BINARY, BytesToBytesConverter.INSTANCE);
         map.put(Types.BLOB, BytesToBytesConverter.INSTANCE);
@@ -118,8 +118,8 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
         return map;
     }
 
-    protected Map<Integer, BytesConverter> createBytesToDbConverters() {
-        Map<Integer, BytesConverter> map = new HashMap<Integer, 
BytesConverter>();
+    protected Map<Integer, BytesConverter<?>> createBytesToDbConverters() {
+        Map<Integer, BytesConverter<?>> map = new HashMap<>();
 
         map.put(Types.BINARY, BytesToBytesConverter.INSTANCE);
         map.put(Types.BLOB, BytesToBytesConverter.INSTANCE);
@@ -138,8 +138,8 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
         return map;
     }
 
-    protected Map<String, BytesConverter> createObjectToBytesConverters() {
-        Map<String, BytesConverter> map = new HashMap<>();
+    protected Map<String, BytesConverter<?>> createObjectToBytesConverters() {
+        Map<String, BytesConverter<?>> map = new HashMap<>();
 
         map.put("byte[]", BytesToBytesConverter.INSTANCE);
         map.put(String.class.getName(), Utf8StringConverter.INSTANCE);
@@ -162,9 +162,9 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
         return map;
     }
 
-    protected Map<String, BytesConverter> createBytesToObjectConverters() {
+    protected Map<String, BytesConverter<?>> createBytesToObjectConverters() {
 
-        Map<String, BytesConverter> map = new HashMap<>();
+        Map<String, BytesConverter<?>> map = new HashMap<>();
 
         map.put("byte[]", BytesToBytesConverter.INSTANCE);
         map.put(String.class.getName(), Utf8StringConverter.INSTANCE);
@@ -191,13 +191,13 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
 
         String type = getJavaType(a);
 
-        BytesConverter toBytes = objectToBytes.get(type);
+        BytesConverter<?> toBytes = objectToBytes.get(type);
         if (toBytes == null) {
             throw new IllegalArgumentException("The type " + type + " for 
attribute " + a
                     + " has no object-to-bytes conversion");
         }
 
-        BytesConverter fromBytes = bytesToDb.get(a.getType());
+        BytesConverter<?> fromBytes = bytesToDb.get(a.getType());
         if (fromBytes == null) {
             throw new IllegalArgumentException("The type " + 
TypesMapping.getSqlNameByType(a.getType())
                     + " for attribute " + a + " has no bytes-to-db 
conversion");
@@ -208,14 +208,14 @@ public class DefaultValueTransformerFactory implements 
ValueTransformerFactory {
 
     protected ValueDecryptor createDecryptor(DbAttribute a) {
 
-        BytesConverter toBytes = dbToBytes.get(a.getType());
+        BytesConverter<?> toBytes = dbToBytes.get(a.getType());
         if (toBytes == null) {
             throw new IllegalArgumentException("The type " + 
TypesMapping.getSqlNameByType(a.getType())
                     + " for attribute " + a + " has no db-to-bytes 
conversion");
         }
 
         String type = getJavaType(a);
-        BytesConverter fromBytes = bytesToObject.get(type);
+        BytesConverter<?> fromBytes = bytesToObject.get(type);
         if (fromBytes == null) {
             throw new IllegalArgumentException("The type " + type + " for 
attribute " + a
                     + " has no bytes-to-object conversion");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/IntegerConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/IntegerConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/IntegerConverter.java
index e95a895..327c29f 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/IntegerConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/IntegerConverter.java
@@ -23,9 +23,9 @@ package org.apache.cayenne.crypto.transformer.value;
  *
  * @since 4.0
  */
-public class IntegerConverter implements BytesConverter {
+public class IntegerConverter implements BytesConverter<Integer> {
 
-    public static final BytesConverter INSTANCE = new IntegerConverter();
+    public static final BytesConverter<Integer> INSTANCE = new 
IntegerConverter();
     private static final int BYTES = 4;
 
     static int getInt(byte[] bytes) {
@@ -54,18 +54,12 @@ public class IntegerConverter implements BytesConverter {
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Integer fromBytes(byte[] bytes) {
         return getInt(bytes);
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-
-        long number = ((Number) value).longValue();
-        if (number <= Integer.MAX_VALUE && number >= Integer.MIN_VALUE) {
-            return getBytes((int) number);
-        }
-
-        throw new IllegalArgumentException("Integer is out of range: " + 
number);
+    public byte[] toBytes(Integer value) {
+        return getBytes(value);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LongConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LongConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LongConverter.java
index ab2a770..5863f3e 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LongConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/LongConverter.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.crypto.transformer.value;
 
 /**
@@ -5,7 +23,7 @@ package org.apache.cayenne.crypto.transformer.value;
  *
  * @since 4.0
  */
-public class LongConverter implements BytesConverter {
+public class LongConverter implements BytesConverter<Long> {
 
     public static final BytesConverter INSTANCE = new LongConverter();
     private static final int BYTES = 8;
@@ -47,12 +65,12 @@ public class LongConverter implements BytesConverter {
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Long fromBytes(byte[] bytes) {
         return getLong(bytes);
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-        return getBytes(((Number) value).longValue());
+    public byte[] toBytes(Long value) {
+        return getBytes(value);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ShortConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ShortConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ShortConverter.java
index 7df6dcf..c0d8905 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ShortConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ShortConverter.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.crypto.transformer.value;
 /**
  * @since 4.0
  */
-public class ShortConverter implements BytesConverter {
+public class ShortConverter implements BytesConverter<Short> {
 
-    public static final BytesConverter INSTANCE = new ShortConverter();
+    public static final BytesConverter<Short> INSTANCE = new ShortConverter();
     private static final int BYTES = 2;
 
     static short getShort(byte[] bytes) {
@@ -51,18 +51,12 @@ public class ShortConverter implements BytesConverter {
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Short fromBytes(byte[] bytes) {
         return getShort(bytes);
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-
-        long number = ((Number) value).longValue();
-        if (number <= Short.MAX_VALUE && number >= Short.MIN_VALUE) {
-            return getBytes((short) number);
-        }
-
-        throw new IllegalArgumentException("Short is out of range: " + number);
+    public byte[] toBytes(Short value) {
+        return getBytes(value);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Utf8StringConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Utf8StringConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Utf8StringConverter.java
index 314d122..23d6ae0 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Utf8StringConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/Utf8StringConverter.java
@@ -23,11 +23,11 @@ import java.nio.charset.Charset;
 /**
  * @since 4.0
  */
-public final class Utf8StringConverter implements BytesConverter {
+public final class Utf8StringConverter implements BytesConverter<String> {
 
     static final String DEFAULT_CHARSET = "UTF-8";
 
-    public static final BytesConverter INSTANCE = new Utf8StringConverter();
+    public static final BytesConverter<String> INSTANCE = new 
Utf8StringConverter();
 
     private Charset utf8;
 
@@ -36,12 +36,12 @@ public final class Utf8StringConverter implements 
BytesConverter {
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-        return ((String) value).getBytes(utf8);
+    public byte[] toBytes(String value) {
+        return value.getBytes(utf8);
     }
     
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public String fromBytes(byte[] bytes) {
         return new String(bytes, utf8);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverter.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverter.java
index 97458cc..205313a 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverter.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverter.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.crypto.transformer.value;
 
 import java.util.Date;
@@ -8,9 +26,9 @@ import java.util.Objects;
  *
  * @since 4.0
  */
-public class UtilDateConverter implements BytesConverter {
+public class UtilDateConverter implements BytesConverter<Date> {
 
-    public static final BytesConverter INSTANCE = new 
UtilDateConverter(LongConverter.INSTANCE);
+    public static final BytesConverter<Date> INSTANCE = new 
UtilDateConverter(LongConverter.INSTANCE);
 
     private BytesConverter longConverter;
 
@@ -19,12 +37,12 @@ public class UtilDateConverter implements BytesConverter {
     }
 
     @Override
-    public Object fromBytes(byte[] bytes) {
+    public Date fromBytes(byte[] bytes) {
         return new Date((long) longConverter.fromBytes(bytes));
     }
 
     @Override
-    public byte[] toBytes(Object value) {
-        return longConverter.toBytes(((Date) value).getTime());
+    public byte[] toBytes(Date value) {
+        return longConverter.toBytes(value.getTime());
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
index 2589243..82d2281 100644
--- 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
+++ 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
@@ -72,7 +72,7 @@ public class Runtime_AES128_IT extends Runtime_AES128_Base {
 
         Object[] data = table1.select();
         assertEquals(59, data[3]);
-        assertEquals(61, 
IntegerConverter.INSTANCE.fromBytes(CryptoUnitUtils.decrypt_AES_CBC((byte[]) 
data[4], runtime)));
+        assertEquals(new Integer(61), 
IntegerConverter.INSTANCE.fromBytes(CryptoUnitUtils.decrypt_AES_CBC((byte[]) 
data[4], runtime)));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/BooleanConverterTest.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/BooleanConverterTest.java
 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/BooleanConverterTest.java
index ff554cb..bfc79d8 100644
--- 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/BooleanConverterTest.java
+++ 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/BooleanConverterTest.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.crypto.transformer.value;
 
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
index ddc1472..22013f4 100644
--- 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
+++ 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
@@ -53,9 +53,4 @@ public class IntegerConverterTest {
         assertArrayEquals(new byte[]{127, -2}, new 
IntegerConverter().toBytes(Short.MAX_VALUE - 1));
         assertArrayEquals(new byte[]{-7}, new IntegerConverter().toBytes(-7));
     }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testToBytesOverflow() {
-        new IntegerConverter().toBytes(new Long(Integer.MAX_VALUE + 55l));
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
index f35b5bf..61a464d 100644
--- 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
+++ 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
@@ -43,7 +43,7 @@ public class LongConverterTest {
     public void testToBytes() {
         assertArrayEquals(new byte[]{127, -1, -1, -1, -1, -1, -1, -2}, new 
LongConverter().toBytes((long) (Long.MAX_VALUE - 1l)));
         assertArrayEquals(new byte[]{127, -1, -1, -2}, new 
LongConverter().toBytes((long) (Integer.MAX_VALUE - 1)));
-        assertArrayEquals(new byte[]{127, -2}, new 
LongConverter().toBytes(Short.MAX_VALUE - 1));
-        assertArrayEquals(new byte[]{-7}, new LongConverter().toBytes(-7));
+        assertArrayEquals(new byte[]{127, -2}, new 
LongConverter().toBytes(Short.MAX_VALUE - 1l));
+        assertArrayEquals(new byte[]{-7}, new LongConverter().toBytes(-7l));
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/e91e11a4/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverterTest.java
----------------------------------------------------------------------
diff --git 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverterTest.java
 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverterTest.java
index a2691ae..3282f5c 100644
--- 
a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverterTest.java
+++ 
b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/UtilDateConverterTest.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.crypto.transformer.value;
 
 import org.junit.Test;

Reply via email to