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/07 21:42:43 UTC
svn commit: r1785891 - in /felix/trunk/converter/converter: ./
src/main/java/org/apache/felix/converter/impl/
src/main/java/org/osgi/util/converter/
src/test/java/org/apache/felix/converter/impl/
Author: davidb
Date: Tue Mar 7 21:42:43 2017
New Revision: 1785891
URL: http://svn.apache.org/viewvc?rev=1785891&view=rev
Log:
Felix Converter - pick up OSGi API from snapshot repository.
Copied API has been removed since the OSGi API is now available via a snapshot repository.
Also updated the ConvertFunction handling.
Removed:
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConversionException.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converter.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConverterBuilder.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Rule.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/TypeReference.java
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/package-info.java
Modified:
felix/trunk/converter/converter/pom.xml
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java
Modified: felix/trunk/converter/converter/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/pom.xml?rev=1785891&r1=1785890&r2=1785891&view=diff
==============================================================================
--- felix/trunk/converter/converter/pom.xml (original)
+++ felix/trunk/converter/converter/pom.xml Tue Mar 7 21:42:43 2017
@@ -90,6 +90,12 @@
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
+ <artifactId>org.osgi.util.converter</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.osgi</groupId>
<artifactId>org.osgi.util.function</artifactId>
<version>1.0.0</version>
</dependency>
@@ -121,4 +127,12 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <repositories>
+ <repository>
+ <id>osgi-snapshots</id>
+ <name>OSGi Snapshot Repository</name>
+ <url>https://oss.sonatype.org/content/repositories/osgi/</url>
+ </repository>
+ </repositories>
</project>
Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java?rev=1785891&r1=1785890&r2=1785891&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java (original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java Tue Mar 7 21:42:43 2017
@@ -82,8 +82,6 @@ public class AdapterImpl implements Inte
private volatile Object defaultValue;
private volatile Class<?> treatAsClass;
private volatile boolean hasDefault;
- private volatile List<Object> keys = new ArrayList<>();
- private volatile Object root;
ConvertingWrapper(Object obj, InternalConverting c) {
object = obj;
@@ -190,7 +188,7 @@ public class AdapterImpl implements Inte
for (ConvertFunction<Object,Object> cf : converters) {
try {
- Object res = cf.convert(object, type, root, keys.toArray());
+ Object res = cf.convert(object, type);
if (res != null) {
return res;
}
@@ -208,7 +206,7 @@ public class AdapterImpl implements Inte
} catch (Exception ex) {
// do custom error handling
for (ConvertFunction<Object, Object> cf : converters) {
- Object eh = cf.handleError(object, type, root, keys.toArray());
+ Object eh = cf.handleError(object, type);
if (eh != null)
return eh;
}
@@ -273,7 +271,7 @@ public class AdapterImpl implements Inte
}
@Override
- public T convert(F obj, Type targetType, Object root, Object[] keys) throws Exception {
+ public T convert(F obj, Type targetType) throws Exception {
return function.apply(obj);
}
}
Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java?rev=1785891&r1=1785890&r2=1785891&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java Tue Mar 7 21:42:43 2017
@@ -85,7 +85,7 @@ public class ConverterBuilderTest {
cb.rule(char[].class, String.class, ConverterBuilderTest::convertToString, null);
cb.rule(new Rule<String, Number>(String.class, Number.class, new ConvertFunction<String, Number>() {
@Override
- public Number convert(String obj, Type targetType, Object root, Object[] key) throws Exception {
+ public Number convert(String obj, Type targetType) throws Exception {
if (Integer.class.equals(targetType))
return Integer.valueOf(-1);
else if (Long.class.equals(targetType))
@@ -110,7 +110,7 @@ public class ConverterBuilderTest {
Converter ca = converter.newConverterBuilder().rule(
new Rule<Integer, Long>(Integer.class, Long.class, new ConvertFunction<Integer,Long>() {
@Override
- public Long convert(Integer obj, Type targetType, Object root, Object[] key) throws Exception {
+ public Long convert(Integer obj, Type targetType) throws Exception {
if (obj.intValue() != 1)
return new Long(-obj.intValue());
return null;
@@ -127,7 +127,7 @@ public class ConverterBuilderTest {
public void testWildcardAdapter() {
ConvertFunction<List, Object> foo = new ConvertFunction<List, Object>() {
@Override
- public Object convert(List t, Type type, Object root, Object[] key) throws Exception {
+ public Object convert(List t, Type type) throws Exception {
if (type instanceof Class) {
if (Number.class.isAssignableFrom((Class<?>) type))
return converter.convert(t.size()).to(type);
@@ -138,7 +138,7 @@ public class ConverterBuilderTest {
Rule<List, Object> r = new Rule<>(List.class, Object.class, foo);
Rule<Object, Object> allCatch = new Rule<>(Object.class, Object.class,
- (v,t,o,k) -> v.toString());
+ (v,t) -> v.toString());
ConverterBuilder cb = converter.newConverterBuilder();
cb.rule(r);
@@ -154,13 +154,13 @@ public class ConverterBuilderTest {
public void testWildcardAdapter2() {
Map<Object, Object> snooped = new HashMap<>();
Rule<Object, ArrayList> r = new Rule<>(Object.class, ArrayList.class,
- (v,t,o,k) -> null,
- (v,t,o,k) -> "arraylist");
+ (v,t) -> null,
+ (v,t) -> "arraylist");
Rule<Object, List> r2 = new Rule<>(Object.class, List.class,
- (v,t,o,k) -> null,
- (v,t,o,k) -> "list");
+ (v,t) -> null,
+ (v,t) -> "list");
Rule<Object, Object> allCatch = new Rule<>(Object.class, Object.class,
- (v,t,o,k) -> {snooped.put(v,t); return null;}, null);
+ (v,t) -> {snooped.put(v,t); return null;}, null);
ConverterBuilder cb = converter.newConverterBuilder();
cb.rule(r);
@@ -184,9 +184,9 @@ public class ConverterBuilderTest {
public void testConvertAs() {
ConverterBuilder cb = converter.newConverterBuilder();
cb.rule(new Rule<>(MyIntf.class, MyCustomDTO.class,
- (i, t, o, k) -> { MyCustomDTO dto = new MyCustomDTO(); dto.field = "" + i.value(); return dto; }));
+ (i, t) -> { MyCustomDTO dto = new MyCustomDTO(); dto.field = "" + i.value(); return dto; }));
cb.rule(new Rule<>(MyBean.class, MyCustomDTO.class,
- (b, t, o, k) -> { MyCustomDTO dto = new MyCustomDTO(); dto.field = b.getValue(); return dto; }));
+ (b, t) -> { MyCustomDTO dto = new MyCustomDTO(); dto.field = b.getValue(); return dto; }));
Converter cc = cb.build();
MyBean mb = new MyBean();
@@ -223,16 +223,12 @@ public class ConverterBuilderTest {
ConverterBuilder cb = converter.newConverterBuilder();
ConvertFunction<MyDTO6, Map> fun = new ConvertFunction<MyDTO6, Map>() {
@Override @SuppressWarnings("unchecked")
- public Map convert(MyDTO6 obj, Type targetType, Object root, Object[] keys) throws Exception {
+ public Map convert(MyDTO6 obj, Type targetType) throws Exception {
StringBuilder sb = new StringBuilder();
for (Character c : obj.chars) {
sb.append(c);
}
- if ("sub2".equals(keys[0]) && "subsub1".equals(keys[1])) {
- sb.append(sb.toString());
- }
-
Map m = new HashMap();
m.put("chars", sb.toString());
return m;
Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java?rev=1785891&r1=1785890&r2=1785891&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java Tue Mar 7 21:42:43 2017
@@ -350,12 +350,12 @@ public class ConverterTest {
public void testCustomErrorHandling() {
ConvertFunction<String,Integer> func = new ConvertFunction<String,Integer>() {
@Override
- public Integer convert(String obj, Type targetType, Object root, Object[] keyPath) throws Exception {
+ public Integer convert(String obj, Type targetType) throws Exception {
return null;
}
@Override
- public Integer handleError(String obj, Type targetType, Object root, Object[] keyPath) {
+ public Integer handleError(String obj, Type targetType) {
if ("hello".equals(obj)) {
return -1;
}
@@ -379,39 +379,6 @@ public class ConverterTest {
}
}
- /*
- @Test
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public void testCustomDefaultHandling() {
- // TODO re-enable
- Map<String, String> m = new HashMap<>();
-// MyAnnotation ann = converter.convert(m).to(MyAnnotation.class);
-// assertEquals(17, ann.value());
-
- // Now register a custom default handler
- ConvertFunction<Map,MyAnnotation> func = new ConvertFunction<Map,MyAnnotation>() {
- @Override
- public MyAnnotation convert(Map obj, Type targetType, Object root, Object[] keyPath) throws Exception {
- return null;
- }
-
- @Override
- public MyAnnotation handleDefault(Map obj, Class<?> targetType, Object root, Object[] keyPath) {
- return 42;
- }
- };
-
- ConverterBuilder cb = converter.newConverterBuilder();
- Rule r = new Rule(Map.class, MyAnnotation.class, func);
- cb.rule(r);
- Converter adapted = cb.build();
-
- MyAnnotation ann2 = adapted.convert(m).to(MyAnnotation.class);
- assertEquals("The default value from the annotation should have been overridden by the default handler",
- 42, ann2.value());
- }
- */
-
@Test
public void testUUIDConversion() {
UUID uuid = UUID.randomUUID();