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/01/30 15:24:32 UTC

svn commit: r1780924 - in /felix/trunk/converter/converter/src: main/java/org/apache/felix/converter/impl/ConverterImpl.java main/java/org/osgi/util/function/ test/java/org/apache/felix/converter/impl/ConverterMapTest.java

Author: davidb
Date: Mon Jan 30 15:24:32 2017
New Revision: 1780924

URL: http://svn.apache.org/viewvc?rev=1780924&view=rev
Log:
compile with org.osgi.util.function 1.0

Patch applied on behalf of Neil Bartlett with many thanks.

This closes https://github.com/apache/felix/pull/88

Removed:
    felix/trunk/converter/converter/src/main/java/org/osgi/util/function/
Modified:
    felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java
    felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.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=1780924&r1=1780923&r2=1780924&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 Mon Jan 30 15:24:32 2017
@@ -49,7 +49,7 @@ public class ConverterImpl implements In
         cb.rule(Character.class, String.class, v -> v.toString(),
                 v -> v.length() > 0 ? v.charAt(0) : 0);
         cb.rule(Class.class, String.class, Class::toString,
-                v -> getClass().getClassLoader().loadClass(v));
+                this::loadClassUnchecked);
         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);
@@ -67,6 +67,14 @@ public class ConverterImpl implements In
         cb.rule(ZonedDateTime.class, String.class, ZonedDateTime::toString, ZonedDateTime::parse);
     }
 
+    private Class<?> loadClassUnchecked(String className) {
+        try {
+            return getClass().getClassLoader().loadClass(className);
+        } catch (ClassNotFoundException e) {
+            throw new NoClassDefFoundError(className);
+        }
+    }
+
     @Override
     public ConverterBuilderImpl newConverterBuilder() {
         return new ConverterBuilderImpl(this);

Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java?rev=1780924&r1=1780923&r2=1780924&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java Mon Jan 30 15:24:32 2017
@@ -18,6 +18,7 @@ package org.apache.felix.converter.impl;
 
 import java.math.BigInteger;
 import java.net.URL;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
@@ -103,7 +104,13 @@ public class ConverterMapTest {
         mb.setEnabled(true);
 
         ConverterBuilder cb = new StandardConverter().newConverterBuilder();
-        cb.rule(Date.class, String.class, v -> sdf.format(v), v -> sdf.parse(v));
+        cb.rule(Date.class, String.class, v -> sdf.format(v), v -> {
+            try {
+                return sdf.parse(v);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+        });
         Converter ca = cb.build();
         Map<String, String> m = ca.convert(mb).sourceAsBean().to(new TypeReference<Map<String, String>>(){});
         assertEquals("true", m.get("enabled"));