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"));