You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2014/02/26 23:25:36 UTC
svn commit: r1572302 - in /turbine/fulcrum/trunk/json:
api/src/java/org/apache/fulcrum/json/
gson/src/java/org/apache/fulcrum/json/gson/
gson/src/test/org/apache/fulcrum/json/gson/
jackson2/src/test/org/apache/fulcrum/json/jackson/
Author: gk
Date: Wed Feb 26 22:25:36 2014
New Revision: 1572302
URL: http://svn.apache.org/r1572302
Log:
Add tests and documentation for adapter de-/registering
Modified:
turbine/fulcrum/trunk/json/api/src/java/org/apache/fulcrum/json/JsonService.java
turbine/fulcrum/trunk/json/gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/DefaultServiceTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java
Modified: turbine/fulcrum/trunk/json/api/src/java/org/apache/fulcrum/json/JsonService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/api/src/java/org/apache/fulcrum/json/JsonService.java?rev=1572302&r1=1572301&r2=1572302&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/api/src/java/org/apache/fulcrum/json/JsonService.java (original)
+++ turbine/fulcrum/trunk/json/api/src/java/org/apache/fulcrum/json/JsonService.java Wed Feb 26 22:25:36 2014
@@ -164,7 +164,8 @@ public interface JsonService {
/**
* Adds an adapter (mixin, serializer,..) for the target class depending on
- * the JsonService implementation
+ * the JsonService implementation.
+ * Cft. to {@link #addAdapter(String, Class, Object)}
*
* @param name
* A name for the adapter
@@ -183,7 +184,9 @@ public interface JsonService {
/**
* Adds an adapter (mixin, serializer,..) for the target class depending on
- * the JsonService implementation
+ * the JsonService implementation. Adapters could by default not deregistered. If you want
+ * to get rid of it, you have to (@see {@link #reInitService()} (or overwrite with the same target type, depending on
+ * implementation)
*
* @param name
* A name for the adapter
Modified: turbine/fulcrum/trunk/json/gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java?rev=1572302&r1=1572301&r2=1572302&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java (original)
+++ turbine/fulcrum/trunk/json/gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java Wed Feb 26 22:25:36 2014
@@ -113,6 +113,11 @@ public class GSONBuilderService extends
throw new Exception("Not yet implemented!");
}
+ /**
+ * registering an adapter
+ *
+ * @see GsonBuilder#registerTypeAdapter(Type, Object)
+ */
@Override
public JsonService addAdapter(String name, Class target, Object adapter)
throws Exception {
@@ -120,6 +125,12 @@ public class GSONBuilderService extends
return this;
}
+ /**
+ * registering an adapter. Unregistering could be only done by reinitialize {@link GsonBuilder}
+ * using @link {@link GSONBuilderService#initialize()}, although a new Adapter with the same target overwrites the previously defined.
+ *
+ * @see GsonBuilder#registerTypeAdapter(Type, Object)
+ */
@Override
public JsonService addAdapter(String name, Class target, Class adapter)
throws Exception {
@@ -266,5 +277,6 @@ public class GSONBuilderService extends
}
}.init(clazz, filterAttrs);
}
+
}
Modified: turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/DefaultServiceTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/DefaultServiceTest.java?rev=1572302&r1=1572301&r2=1572302&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/DefaultServiceTest.java (original)
+++ turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/DefaultServiceTest.java Wed Feb 26 22:25:36 2014
@@ -28,6 +28,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.avalon.framework.activity.Initializable;
import org.apache.fulcrum.json.JsonService;
import org.apache.fulcrum.json.Rectangle;
import org.apache.fulcrum.json.TestClass;
@@ -161,6 +162,11 @@ public class DefaultServiceTest extends
String adapterSer = sc.ser(new TestClass("mytest"));
assertEquals("failed adapter serialization:",
"{\"n\":\"mytest\",\"p\":\"Config.xml\",\"c\":[]}", adapterSer);
+ //System.out.println("adapterSer:"+adapterSer);
+ ((Initializable)sc).initialize(); //reinit
+ String defaultSer = sc.ser(new TestClass("mytest"));
+ assertEquals("failed adapter serialization:",
+ "{\"container\":{\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}", defaultSer);
}
public void testDeSerialize() throws Exception {
Modified: turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java?rev=1572302&r1=1572301&r2=1572302&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java (original)
+++ turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java Wed Feb 26 22:25:36 2014
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fulcrum.json.JsonService;
@@ -294,6 +295,14 @@ public class JacksonMapperTest extends B
assertTrue(((List<Bean>)resultList1).get(i).getName()!=null);
assertTrue(((List<Bean>)resultList1).get(i).getAge()==0);
}
+ ((Initializable)sc).initialize();// reinit to default settings
+ Collection<Rectangle> resultList3 = sc.deSerCollection(deSerTest, typeRectList, Rectangle.class);
+ // h should be set again without Mixin
+ assertTrue(((List<Rectangle>)resultList3).get(0).getH()!=0);
+ for (int i = 0; i < 5; i++) {
+ // name should be set without Mixin
+ assertTrue(((List<Rectangle>)resultList3).get(i).getName()!=null);
+ }
}
// @JsonFilter("myFilter")