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


Reply via email to