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