You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2017/03/10 16:15:51 UTC

svn commit: r1786376 - in /felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl: ConverterImpl.java ConvertingImpl.java

Author: davidb
Date: Fri Mar 10 16:15:51 2017
New Revision: 1786376

URL: http://svn.apache.org/viewvc?rev=1786376&view=rev
Log:
Felix Converter - support Date <-> Long conversions

Also fixed an issue in which sometimes objects were considered as JavaBeans when they shouldn't have.

Modified:
    felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java
    felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java

Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java?rev=1786376&r1=1786375&r2=1786376&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java (original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java Fri Mar 10 16:15:51 2017
@@ -50,6 +50,7 @@ public class ConverterImpl implements In
                 v -> v.length() > 0 ? v.charAt(0) : 0);
         cb.rule(Class.class, String.class, Class::toString,
                 this::loadClassUnchecked);
+        cb.rule(Date.class, Long.class, d -> d.getTime(), l -> new Date(l));
         cb.rule(Date.class, String.class, v -> v.toInstant().toString(),
                 v -> Date.from(Instant.parse(v)));
         cb.rule(Double.class, String.class, v -> v.toString(), Double::parseDouble);

Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java?rev=1786376&r1=1786375&r2=1786376&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java (original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java Fri Mar 10 16:15:51 2017
@@ -200,7 +200,7 @@ public class ConvertingImpl implements C
             return convertToCollection();
         } else if (isDTOType(targetAsClass) || ((sourceAsDTO || targetAsDTO) && DTO.class.isAssignableFrom(targetClass))) {
             return convertToDTO();
-        } else if (isMapType(targetAsClass)) {
+        } else if (isMapType(targetAsClass, targetAsJavaBean)) {
             return convertToMapType();
         }
 
@@ -540,7 +540,7 @@ public class ConvertingImpl implements C
         return true;
     }
 
-    private static boolean isMapType(Class<?> cls) {
+    private static boolean isMapType(Class<?> cls, boolean asJavaBean) {
         // All interface types that are not Collections are treated as maps
         if (Map.class.isAssignableFrom(cls))
             return true;
@@ -548,7 +548,7 @@ public class ConvertingImpl implements C
             return true;
         else if (isDTOType(cls))
             return true;
-        else if (isWriteableJavaBean(cls))
+        else if (asJavaBean && isWriteableJavaBean(cls))
             return true;
         else
             return Dictionary.class.isAssignableFrom(cls);