Author: gk
Date: Fri Nov 30 13:40:20 2018
New Revision: 1847822

URL: http://svn.apache.org/viewvc?rev=1847822&view=rev
Log:
- migrated Jackson2 tests to JUnit5 (as is)
- update fork in all  modules
- add log4j2 support in jackson 2
- reformatting Jackson2MapperService.java

Added:
    turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml   (with props)
Modified:
    turbine/fulcrum/trunk/json/gson/pom.xml
    
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
    turbine/fulcrum/trunk/json/jackson/pom.xml
    turbine/fulcrum/trunk/json/jackson2/pom.xml
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTyping_OBJECT_AND_NON_CONCRETE_Test.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonOrgJacksonMapperTest.java
    
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java
    turbine/fulcrum/trunk/json/pom.xml

Modified: turbine/fulcrum/trunk/json/gson/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/gson/pom.xml (original)
+++ turbine/fulcrum/trunk/json/gson/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkMode>always</forkMode>
                     <includes>
                         <include>**/*Test.*</include>
                         <include>**/*TestCase.*</include>

Modified: 
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
 (original)
+++ 
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
 Fri Nov 30 13:40:20 2018
@@ -143,7 +143,4 @@ public class JsonPathGSONServiceTest ext
           idx++;
       }
      }
-
-
-
-}
+}
\ No newline at end of file

Modified: turbine/fulcrum/trunk/json/jackson/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson/pom.xml (original)
+++ turbine/fulcrum/trunk/json/jackson/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkMode>always</forkMode>
                     <includes>
                         <include>**/*Test.*</include>
                         <include>**/*TestCase.*</include>

Modified: turbine/fulcrum/trunk/json/jackson2/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/pom.xml (original)
+++ turbine/fulcrum/trunk/json/jackson2/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkMode>always</forkMode>
                     <includes>
                         <include>**/*Test.*</include>
                         <include>**/*TestCase.*</include>

Added: turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml?rev=1847822&view=auto
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml (added)
+++ turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml Fri Nov 30 13:40:20 
2018
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<Configuration status="trace" verbose="true">
+    <Appenders>
+      <Console name="console" target="SYSTEM_OUT">
+          <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+           </Console>
+           <File name="logfile" fileName="target/fulcrum-test.log">
+          <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+           </File>
+    </Appenders>
+    <Loggers>
+      <Logger name="org.apache.fulcrum" level="debug" additivity="false">
+          <AppenderRef ref="console"/>
+          <AppenderRef ref="logfile"/>
+      </Logger>
+      <Logger name="avalon" level="debug" additivity="false">
+          <AppenderRef ref="console"/>
+      </Logger>
+      <Logger name="org.apache.logging.log4j" level="info" additivity="false">
+          <AppenderRef ref="logfile"/>
+      </Logger>
+      <Root level="error">
+          <AppenderRef ref="console"/>
+      </Root>
+    </Loggers>
+</Configuration>
\ No newline at end of file

Propchange: turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
 (original)
+++ 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
 Fri Nov 30 13:40:20 2018
@@ -1,4 +1,5 @@
 package org.apache.fulcrum.json.jackson;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,8 +19,9 @@ package org.apache.fulcrum.json.jackson;
  * under the License.
  */
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -30,6 +32,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.fulcrum.json.JsonService;
 import org.apache.fulcrum.json.jackson.example.Bean;
@@ -43,9 +46,12 @@ import org.apache.fulcrum.json.jackson.s
 import 
org.apache.fulcrum.json.jackson.serializers.TestDummyWrapperDeserializer;
 import org.apache.fulcrum.json.jackson.serializers.TestJsonSerializer;
 import org.apache.fulcrum.json.jackson.serializers.TestSerializer;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -66,7 +72,9 @@ import com.fasterxml.jackson.databind.se
  * @author gk
  * @version $Id$
  */
-public class DefaultServiceTest extends BaseUnit4Test {
+@RunWith(JUnitPlatform.class)
+public class DefaultServiceTest extends BaseUnit5Test {
+    
        private JsonService sc = null;
        private final String preDefinedOutput = 
"{\"container\":{\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}";
        Logger logger;
@@ -76,10 +84,10 @@ public class DefaultServiceTest extends
         * 
         * @throws Exception generic exception
         */
-       @Before
+       @BeforeEach
        public void setUp() throws Exception {
-               setLogLevel(ConsoleLogger.LEVEL_DEBUG);
-               logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+               logger = new 
Log4JLogger(LogManager.getLogger(getClass().getName()) );
+                               //new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
                sc = (JsonService) this.lookup(JsonService.ROLE);
        }
 
@@ -91,7 +99,7 @@ public class DefaultServiceTest extends
        @Test
        public void testSerialize() throws Exception {
                String serJson = sc.ser(new TestClass("mytest"));
-               assertEquals("Serialization failed ", preDefinedOutput, 
serJson);
+               assertEquals(preDefinedOutput, serJson, "Serialization failed 
");
        }
 
        /**
@@ -103,7 +111,7 @@ public class DefaultServiceTest extends
                String expected = 
"{\"type\":\"org.apache.fulcrum.json.jackson.example.TestClass\",\"container\":{\"type\":\"java.util.HashMap\",\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\"}";
                String serJson = customAllExceptFilter(objectMapper, new 
TestClass("mytest"), TestClass.class, "name");
                logger.debug("serJson:" + serJson);
-               assertEquals("Serialization with custom mapper failed ", 
expected, serJson);
+               assertEquals(expected, serJson, "Serialization with custom 
mapper failed ");
        }
 
        /**
@@ -119,8 +127,7 @@ public class DefaultServiceTest extends
                        
objectMapper.enableDefaultTypingAsProperty(DefaultTyping.NON_FINAL, "type");
                AnnotationIntrospector ai = 
objectMapper.getSerializationConfig().getAnnotationIntrospector();
                // AnnotationIntrospector is by default 
JacksonAnnotationIntrospector
-               assertTrue("Expected Default JacksonAnnotationIntrospector",
-                               "ai:" + ai != null && ai instanceof 
JacksonAnnotationIntrospector);
+               assertTrue(ai != null && ai instanceof 
JacksonAnnotationIntrospector, "Expected Default 
JacksonAnnotationIntrospector");
                // add to allow filtering properties for non annotated class
                AnnotationIntrospector siai = new SimpleNameIntrospector();
                AnnotationIntrospector pair = new 
AnnotationIntrospectorPair(siai, ai);
@@ -177,7 +184,7 @@ public class DefaultServiceTest extends
                ObjectMapper objectMapper = customMapper(false);
                String serJson = customAllExceptFilter(objectMapper, beanList, 
Bean.class, "name", "profession");
                logger.debug("serJson:" + serJson);
-               assertEquals("Serialization with custom mapper failed ", 
expected, serJson);
+               assertEquals(expected, serJson);
        }
 
        /**
@@ -195,7 +202,7 @@ public class DefaultServiceTest extends
                }
                String serJson = sc.serializeAllExceptFilter(beanList, 
Bean.class, "name", "profession");
                logger.debug("serJsonByService:" + serJson);
-               assertEquals("Serialization with service mapper failed", 
expected, serJson);
+               assertEquals(expected, serJson, "Serialization with service 
mapper failed");
        }
 
        /**
@@ -205,7 +212,7 @@ public class DefaultServiceTest extends
        // the default test class: one String field, one Map
        public void testSerializeExcludeNothing() throws Exception {
                String serJson = sc.serializeAllExceptFilter(new 
TestClass("mytest"));
-               assertEquals("Serialization failed ",
+               assertEquals(
                                
"{\"container\":{\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}",
                                serJson);
 
@@ -223,7 +230,7 @@ public class DefaultServiceTest extends
        @Test
        public void testSerializeExcludeClass() throws Exception {
                String serJson = sc.serializeAllExceptFilter(new 
TestClass("mytest"), String.class);
-               assertEquals("Serialization failed ", 
"{\"container\":{\"cf\":\"Config.xml\"}}", serJson);
+               assertEquals("{\"container\":{\"cf\":\"Config.xml\"}}", 
serJson, "Serialization failed ");
                TestClass result2 = checkDeserialization(serJson, 
TestClass.class, TextClassMixin.class);
                assertTrue(result2.getContainer() == null);
        }
@@ -232,7 +239,7 @@ public class DefaultServiceTest extends
        public void testSerializeExcludeClassAndField() throws Exception {
                String serJson = ((Jackson2MapperService) 
sc).serializeAllExceptFilter(new TestClass("mytest"),
                                new Class[] { TestClass.class, String.class }, 
"container");
-               assertEquals("Serialization failed ", "{}", serJson);
+               assertEquals("{}", serJson);
                TestClass result2 = checkDeserialization(serJson, 
TestClass.class, TextClassMixin.class);
                assertTrue(result2.getContainer() == null);
        }
@@ -242,11 +249,11 @@ public class DefaultServiceTest extends
        public void testSerializeExcludeClassAndFields() throws Exception {
                String serJson = ((Jackson2MapperService) 
sc).serializeAllExceptFilter(new TestClass("mytest"),
                                new Class[] { Map.class, String.class }, 
"configurationName", "name");
-               assertEquals("Serialization failed ", "{}", serJson);
+               assertEquals("{}", serJson);
                checkDeserialization(serJson, TestClass.class, 
TextClassMixin.class);
                String serJson2 = ((Jackson2MapperService) 
sc).serializeAllExceptFilter(new TestClass("mytest"), true,
                                "configurationName", "name");
-               assertEquals("Serialization failed ", "{}", serJson2);
+               assertEquals("{}", serJson2);
                checkDeserialization(serJson2, TestClass.class, 
TextClassMixin.class);
        }
 
@@ -260,7 +267,7 @@ public class DefaultServiceTest extends
        public void testSerializeExcludeField() throws Exception {
 
                String serJson = sc.serializeAllExceptFilter(new 
TestClass("mytest"), "configurationName");
-               assertEquals("Serialization failed ", 
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
+               
assertEquals("{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", 
serJson, "Serialization failed ");
                sc.addAdapter("Mixin Adapter", TestClass.class, 
TextClassMixin.class);
                // overwriting mixin with null: container is included
                TestClass result2 = checkDeserialization(serJson, 
TestClass.class, null);
@@ -281,7 +288,8 @@ public class DefaultServiceTest extends
                sc.setDateFormat(MMddyyyy);
                String serJson = sc.ser(map);
                logger.debug("serJson:" + serJson);
-               assertTrue("Serialize with Adapater failed ", 
serJson.matches("\\{\"date\":\"\\d\\d-\\d\\d-\\d{4}\"\\}"));
+               
assertTrue(serJson.matches("\\{\"date\":\"\\d\\d-\\d\\d-\\d{4}\"\\}"),
+                          "Serialize with Adapater failed ");
        }
 
        /**
@@ -296,9 +304,10 @@ public class DefaultServiceTest extends
                        rectList.add(filteredRect);
                }
                String adapterSer = sc.ser(rectList);
-               assertEquals("collect ser",
+               assertEquals(
                                
"[{'w':0,'h':0,'name':'rect0','size':0},{'w':1,'h':1,'name':'rect1','size':1},{'w':2,'h':2,'name':'rect2','size':4},{'w':3,'h':3,'name':'rect3','size':9},{'w':4,'h':4,'name':'rect4','size':16},{'w':5,'h':5,'name':'rect5','size':25},{'w':6,'h':6,'name':'rect6','size':36},{'w':7,'h':7,'name':'rect7','size':49},{'w':8,'h':8,'name':'rect8','size':64},{'w':9,'h':9,'name':'rect9','size':81}]",
-                               adapterSer.replace('"', '\''));
+                               adapterSer.replace('"', '\''),
+                               "collect ser failed");
        }
 
        /**
@@ -312,400 +321,409 @@ public class DefaultServiceTest extends
                        intList.add(integer);
                }
                String result = sc.serializeOnlyFilter(intList, Integer.class);
-               assertEquals("Serialization of beans failed ", 
"[0,1,4,9,16,25,36,49,64,81]", result);
+               assertEquals("[0,1,4,9,16,25,36,49,64,81]", result, 
"Serialization of beans failed ");
                // primitives could be deserialzed without type
                Collection<Integer> result2 = checkDeserCollection(result, 
List.class, Integer.class);
-               assertTrue("expect at least one entry ", !result2.isEmpty());
-               assertTrue("result entry instance check", 
result2.iterator().next().getClass().isAssignableFrom(Integer.class));
+               assertTrue( !result2.isEmpty(), "expect at least one entry ");
+               assertTrue( 
result2.iterator().next().getClass().isAssignableFrom(Integer.class), "result 
entry instance check");
        }
 
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeTypeAdapterForCollection() throws Exception {
-               TestSerializer tser = new TestSerializer();
-               TestDeserializer tdeSer = new TestDeserializer();
-               CustomModuleWrapper<List<Rectangle>> cmw = new 
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
-               sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
-               List<Rectangle> rectList = new ArrayList<Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.add(filteredRect);
-               }
-               String adapterSer = sc.ser(rectList);
-               assertEquals("collect ser",
-                               
"{'rect0':0,'rect1':1,'rect2':4,'rect3':9,'rect4':16,'rect5':25,'rect6':36,'rect7':49,'rect8':64,'rect9':81}",
-                               adapterSer.replace('"', '\''));
-               // can only deserialize with type deserializer, adapter already 
added above
-               List<Rectangle> result = sc.deSer(adapterSer, ArrayList.class);
-               assertTrue("result:" + result.size(), result.size() == 10);
-               int nr = 3; // new Random().nextInt(10);
-               assertTrue("result (" + nr + "):" + result.get(nr).getName(), 
result.get(nr).getName().equals("rect" + nr));
-       }
-
-       @Test
-       public void testMixinAdapter() throws Exception {
-               TestJsonSerializer tser = new TestJsonSerializer();
-               CustomModuleWrapper<TestClass> cmw = new 
CustomModuleWrapper<TestClass>(tser,
-                               new 
TestDummyWrapperDeserializer(TestClass.class));
-               sc.addAdapter("Collection Adapter", TestClass.class, cmw);
-               String adapterSer = sc.ser(new TestClass("mytest"));
-               assertEquals("failed adapter serialization:", 
"{\"n\":\"mytest\",\"p\":\"Config.xml\",\"c\":[]}", adapterSer);
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeSerialize() throws Exception {
-               String serJson = sc.ser(new TestClass("mytest"));
-               Object deson = sc.deSer(serJson, TestClass.class);
-               assertEquals("Serialization failed ", TestClass.class, 
deson.getClass());
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeserializationCollection() throws Exception {
-               List<Rectangle> rectList = new ArrayList<Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.add(filteredRect);
-               }
-               String serColl = sc.ser(rectList);
-               TypeReference<List<Rectangle>> typeRef = new 
TypeReference<List<Rectangle>>() {
-               };
-               Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, 
typeRef, Rectangle.class);
-               // logger.debug("resultList0 class:" +resultList0.getClass());
-               for (int i = 0; i < 10; i++) {
-                       assertEquals("deser reread size failed", (i * i), 
((List<Rectangle>) resultList0).get(i).getSize());
-               }
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeserializationWithPlainListCollection() throws 
Exception {
-               List<Rectangle> rectList = new ArrayList<Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.add(filteredRect);
-               }
-               String serColl = sc.ser(rectList);
-               Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, 
new ArrayList(), Rectangle.class);
-               logger.debug("resultList0 class:" + resultList0.getClass());
-               for (int i = 0; i < 10; i++) {
-                       assertEquals("deser reread size failed", (i * i), 
((List<Rectangle>) resultList0).get(i).getSize());
-               }
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeserializationWithPlainList() throws Exception {
-               List<Rectangle> rectList = new ArrayList<Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.add(filteredRect);
-               }
-               String serColl = sc.ser(rectList);
-               // Collection<Rectangle> resultList0 = 
sc.deSerCollection(serColl, List.class,
-               // Rectangle.class);
-               List<Rectangle> resultList0 = ((Jackson2MapperService) 
sc).deSerList(serColl, ArrayList.class, Rectangle.class);
-               logger.debug("resultList0 class:" + resultList0.getClass());
-               for (int i = 0; i < 10; i++) {
-                       assertEquals("deser reread size failed", (i * i), 
resultList0.get(i).getSize());
-               }
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeserializationWithPlainMap() throws Exception {
-               Map<String, Rectangle> rectList = new HashMap<String, 
Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.put("" + i, filteredRect);
-               }
-               String serColl = sc.ser(rectList);
-               Map<String, Rectangle> resultList0 = ((Jackson2MapperService) 
sc).deSerMap(serColl, Map.class, String.class,
-                               Rectangle.class);
-               logger.debug("resultList0 class:" + resultList0.getClass());
-               for (int i = 0; i < 10; i++) {
-                       assertEquals("deser reread size failed", (i * i), 
resultList0.get("" + i).getSize());
-               }
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testDeserializationTypeAdapterForCollection() throws 
Exception {
-               TestSerializer tser = new TestSerializer();
-               TestDeserializer tdeSer = new TestDeserializer();
-               CustomModuleWrapper<List<Rectangle>> cmw = new 
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
-               sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
-               List<Rectangle> rectList = new ArrayList<Rectangle>();
-               for (int i = 0; i < 10; i++) {
-                       Rectangle filteredRect = new Rectangle(i, i, "rect" + 
i);
-                       rectList.add(filteredRect);
-               }
-               String adapterSer = sc.ser(rectList);
-               ArrayList<Rectangle> resultList0 = sc.deSer(adapterSer, 
ArrayList.class);
-               for (int i = 0; i < 10; i++) {
-                       assertEquals("deser reread size failed", (i * i), 
resultList0.get(i).getSize());
-               }
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeWithMixinAndFilter() throws Exception {
-               Bean filteredBean = new Bean();
-               filteredBean.setName("joe");
-               //
-               sc.addAdapter("M4RBeanMixin", Bean.class, BeanMixin.class);
-               // profession was already set to ignore, does not change
-               String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, 
"profession");
-               assertEquals("Ser filtered Bean failed ", "{}", bean);
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeWithOnlyFilter() throws Exception {
-
-               String serJson = sc.serializeOnlyFilter(new 
TestClass("mytest"), "configurationName");
-               assertEquals("Serialization failed ", 
"{\"configurationName\":\"Config.xml\"}", serJson);
-
-               Rectangle filteredRectangle = new Rectangle(5, 10);
-               filteredRectangle.setName("jim");
-               String rectangle = sc.serializeOnlyFilter(filteredRectangle, 
"w");
-               assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}", 
rectangle);
-               rectangle = sc.serializeOnlyFilter(filteredRectangle, true, 
"w");
-               assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}", 
rectangle);
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeAllExceptANDWithOnlyFilter2() throws Exception 
{
-
-               String serJson = sc.serializeAllExceptFilter(new 
TestClass("mytest"), "configurationName");
-               assertEquals("Serialization failed ", 
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
-
-               serJson = sc.serializeOnlyFilter(new TestClass("mytest"), 
"configurationName");
-               assertEquals("Serialization failed ", 
"{\"configurationName\":\"Config.xml\"}", serJson);
-
-               Rectangle filteredRectangle = new Rectangle(5, 10);
-               filteredRectangle.setName("jim");
-               String rectangle = sc.serializeOnlyFilter(filteredRectangle, 
"w");
-               assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}", 
rectangle);
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeBeanWithOnlyFilter() throws Exception {
-               Bean bean = new BeanChild();
-               bean.setAge(1);
-               bean.setName("bean1");
-               assertEquals("{\"name\":\"bean1\"}", 
sc.serializeOnlyFilter(bean, true, "name"));
-               assertEquals("{\"name\":\"bean1\"}", 
sc.serializeOnlyFilter(bean, Bean.class, true, "name")); // parent filter
-               assertEquals("{\"name\":\"bean1\"}", 
sc.serializeOnlyFilter(bean, BeanChild.class, true, "name"));
-               assertEquals("{\"name\":\"bean1\"}", 
sc.serializeOnlyFilter(bean, Object.class, true, "name"));
-               bean = new Bean();
-               bean.setAge(0);
-               bean.setName("bean0");
-               assertEquals("{\"name\":\"bean0\"}", 
sc.serializeOnlyFilter(bean, true, "name"));
-               assertEquals("{\"name\":\"bean0\"}", 
sc.serializeOnlyFilter(bean, Bean.class, true, "name"));
-               assertEquals("{\"name\":\"bean0\"}", 
sc.serializeOnlyFilter(bean, BeanChild.class, true, "name"));// child
-                                                                               
                                                                                
                                                        // filter
-               assertEquals("{\"name\":\"bean0\"}", 
sc.serializeOnlyFilter(bean, Object.class, true, "name"));
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithOnlyFilterAndParentClass() 
throws Exception {
-               List<BeanChild> beanList = new ArrayList<BeanChild>();
-               for (int i = 0; i < 3; i++) {
-                       BeanChild bean = new BeanChild();
-                       bean.setAge(i);
-                       bean.setName("bean" + i);
-                       beanList.add(bean);
-               }
-               String jsonResult = sc.serializeOnlyFilter(beanList, 
Bean.class, true, "name");
-               
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
-               // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
-               // BeanChild.class, true,"type"));
-
-               Collection<BeanChild> result2 = 
checkDeserCollection(jsonResult, List.class, BeanChild.class);
-               assertTrue("expect at least one entry ", !result2.isEmpty());
-               assertTrue("result entry instance check",
-                               
result2.iterator().next().getClass().isAssignableFrom(BeanChild.class));
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithOnlyFilterAndExactClass() throws 
Exception {
-               List<Bean> beanList = new ArrayList<Bean>();
-               for (int i = 0; i < 3; i++) {
-                       Bean bean = new BeanChild();
-                       bean.setAge(i);
-                       bean.setName("bean" + i);
-                       beanList.add(bean);
-               }
-               String jsonResult = sc.serializeOnlyFilter(beanList, 
BeanChild.class, true, "name");
-               
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
-               // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
-               // BeanChild.class, true,"type"));
-               Collection<Bean> result2 = checkDeserCollection(jsonResult, 
List.class, Bean.class);
-               assertTrue("expect at least one entry ", !result2.isEmpty());
-               assertTrue("result entry instance check", 
result2.iterator().next().getClass().isAssignableFrom(Bean.class));
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithOnlyFilterWithChildClass() 
throws Exception {
-               List<Bean> beanList = new ArrayList<Bean>();
-               for (int i = 0; i < 3; i++) {
-                       Bean bean = new Bean();
-                       bean.setAge(i);
-                       bean.setName("bean" + i);
-                       beanList.add(bean);
-               }
-               String jsonResult = sc.serializeOnlyFilter(beanList, 
BeanChild.class, true, "name");
-               
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
-               // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
-               // BeanChild.class, true,"type"));
-               Collection<Bean> result2 = checkDeserCollection(jsonResult, 
List.class, Bean.class);
-               assertTrue("expect at least one entry ", !result2.isEmpty());
-               assertTrue("result entry instance check", 
result2.iterator().next().getClass().isAssignableFrom(Bean.class));
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithOnlyFilterAndType() throws 
Exception {
-
-               List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
-               for (int i = 0; i < 2; i++) {
-                       TypedRectangle filteredRect = new TypedRectangle(i, i, 
"rect" + i);
-                       rectList.add(filteredRect);
-               }
-               Class<?> clazz = 
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
-               // no type cft. 
https://github.com/FasterXML/jackson-databind/issues/303 !!
-               String jsonResult = sc.serializeOnlyFilter(rectList, clazz, 
true, "w");
-               assertEquals("[{\"w\":0},{\"w\":1}]", jsonResult);
-               // could not deserialize easily with missing property type
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithOnlyFilterAndMixin() throws 
Exception {
-
-               List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
-               for (int i = 0; i < 2; i++) {
-                       TypedRectangle filteredRect = new TypedRectangle(i, i, 
"rect" + i);
-                       rectList.add(filteredRect);
-               }
-               Class<?> clazz = 
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
-               sc.addAdapter("Collection Adapter", Object.class, 
TypedRectangle.Mixins.class);
-               assertEquals(
-                               
"[\"java.util.ArrayList\",[{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":0},{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":1}]]",
-                               sc.serializeOnlyFilter(rectList, clazz, true, 
"w"));
-       }
-
-       /**
-        * @throws Exception generic exception
-        */
-       @Test
-       public void testSerializeCollectionWithTypedReference() throws 
Exception {
-
-               List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
-               for (int i = 0; i < 2; i++) {
-                       TypedRectangle filteredRect = new TypedRectangle(i, i, 
"rect" + i);
-                       rectList.add(filteredRect);
-               }
-               TypeReference<List<TypedRectangle>> typeRef = new 
TypeReference<List<TypedRectangle>>() {
-               };
-               String jsonResult = ((Jackson2MapperService) 
sc).serCollectionWithTypeReference(rectList, typeRef, false);
-               logger.debug("aa:" + jsonResult);
-               // could deserialize with type information
-               Collection<TypedRectangle> result2 = 
checkDeserCollection(jsonResult, List.class, TypedRectangle.class);
-               assertTrue("expect at least one entry ", !result2.isEmpty());
-               assertTrue("result entry instance check",
-                               
result2.iterator().next().getClass().isAssignableFrom(TypedRectangle.class));
-
-       }
-
-       @Test
-       // jackson does not escape anything, except double quotes and backslash,
-       // additional characters could be provided
-       // by activationg escapeCharsGlobal xml characters are added
-       public void testSerializeHTMLEscape() throws Exception {
-               Rectangle filteredRect = new Rectangle(2, 3,
-                               "rectÜber<strong>StockundStein 
&iuml;</strong></script><script>alert('xss')</script>" + 0);
-               String adapterSer = sc.ser(filteredRect);
-               logger.debug("Escaped serialized string:" + adapterSer);
-               assertEquals(
-                               "escaped html entities ser expected, iei 
<,>,&,\\ escaped (requires escapeCharsGlobal in json component configuration",
-                               
"{'w':2,'h':3,'name':'rectÜber\\u003Cstrong\\u003EStockundStein 
\\u0026iuml;\\u003C/strong\\u003E\\u003C/script\\u003E\\u003Cscript\\u003Ealert(\\u0027xss\\u0027)\\u003C/script\\u003E0','size':6}",
-                               adapterSer.replace('"', '\''));
-               // you could set your own escapes here in class esc extending 
from
-               // CharacterEscapes.
-               // 
((Jackson2MapperService)sc).getMapper().getFactory().setCharacterEscapes(esc
-               // ) );
-       }
-
-       /**
-        * checks if string serJson is deserializable to class target with 
adapter mixin
-        * and returns result.
-        * 
-        * @param serJson JSON String to be tested
-        * @param target  class to be expected
-        * @param mixin   adapter set
-        * @return the resulting instance
-        * @throws Exception
-        */
-       private <T> T checkDeserialization(String serJson, Class<T> target, 
Class mixin) throws Exception {
-               sc.addAdapter("Mixin Adapter", target, mixin);
-               T result = sc.deSer(serJson, target);
-               assertTrue("Result Instance Check", 
target.isAssignableFrom(result.getClass()));
-               return result;
-       }
-
-       private <U> Collection<U> checkDeserCollection(String serJson, Class<? 
extends Collection> collClass,
-                       Class<U> entryClass) throws Exception {
-               Collection<U> result = ((Jackson2MapperService) 
sc).deSerCollectionWithType(serJson, collClass, entryClass);
-               // System.out.println("result:"+ result + " is of type: "+ 
result.getClass() +
-               // "and assignable from "+ collClass);
-               assertTrue("Result Instance Check failed for result class " + 
result.getClass() + " and target class: "
-                               + collClass, 
collClass.isAssignableFrom(result.getClass()));
-               return result;
-       }
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeTypeAdapterForCollection() throws Exception {
+        TestSerializer tser = new TestSerializer();
+        TestDeserializer tdeSer = new TestDeserializer();
+        CustomModuleWrapper<List<Rectangle>> cmw = new 
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
+        sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
+        List<Rectangle> rectList = new ArrayList<Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        String adapterSer = sc.ser(rectList);
+        assertEquals(
+                
"{'rect0':0,'rect1':1,'rect2':4,'rect3':9,'rect4':16,'rect5':25,'rect6':36,'rect7':49,'rect8':64,'rect9':81}",
+                adapterSer.replace('"', '\''));
+        // can only deserialize with type deserializer, adapter already added 
above
+        List<Rectangle> result = sc.deSer(adapterSer, ArrayList.class);
+        assertTrue( result.size() == 10, " expected result: 10");
+        int nr = 3; // new Random().nextInt(10);
+        assertTrue(result.get(nr).getName().equals("rect" + nr),
+                   "result (" + nr + ") !=:" + result.get(nr).getName());
+    }
+
+    @Test
+    public void testMixinAdapter() throws Exception {
+        TestJsonSerializer tser = new TestJsonSerializer();
+        CustomModuleWrapper<TestClass> cmw = new 
CustomModuleWrapper<TestClass>(tser,
+                new TestDummyWrapperDeserializer(TestClass.class));
+        sc.addAdapter("Collection Adapter", TestClass.class, cmw);
+        String adapterSer = sc.ser(new TestClass("mytest"));
+        assertEquals("{\"n\":\"mytest\",\"p\":\"Config.xml\",\"c\":[]}", 
adapterSer,
+                     "failed adapter serialization:");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeSerialize() throws Exception {
+        String serJson = sc.ser(new TestClass("mytest"));
+        Object deson = sc.deSer(serJson, TestClass.class);
+        assertEquals(TestClass.class, deson.getClass());
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeserializationCollection() throws Exception {
+        List<Rectangle> rectList = new ArrayList<Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        String serColl = sc.ser(rectList);
+        TypeReference<List<Rectangle>> typeRef = new 
TypeReference<List<Rectangle>>() {
+        };
+        Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, 
typeRef, Rectangle.class);
+        // logger.debug("resultList0 class:" +resultList0.getClass());
+        for (int i = 0; i < 10; i++) {
+            assertEquals((i * i), ((List<Rectangle>) 
resultList0).get(i).getSize(),
+                         "deser reread size failed");
+        }
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeserializationWithPlainListCollection() throws Exception {
+        List<Rectangle> rectList = new ArrayList<Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        String serColl = sc.ser(rectList);
+        Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, new 
ArrayList(), Rectangle.class);
+        logger.debug("resultList0 class:" + resultList0.getClass());
+        for (int i = 0; i < 10; i++) {
+            assertEquals( (i * i), ((List<Rectangle>) 
resultList0).get(i).getSize(),
+                          "deser reread size failed");
+        }
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeserializationWithPlainList() throws Exception {
+        List<Rectangle> rectList = new ArrayList<Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        String serColl = sc.ser(rectList);
+        // Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, 
List.class,
+        // Rectangle.class);
+        List<Rectangle> resultList0 = ((Jackson2MapperService) 
sc).deSerList(serColl, ArrayList.class, Rectangle.class);
+        logger.debug("resultList0 class:" + resultList0.getClass());
+        for (int i = 0; i < 10; i++) {
+            assertEquals( (i * i), resultList0.get(i).getSize(),
+                 "deser reread size failed");
+        }
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeserializationWithPlainMap() throws Exception {
+        Map<String, Rectangle> rectList = new HashMap<String, Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.put("" + i, filteredRect);
+        }
+        String serColl = sc.ser(rectList);
+        Map<String, Rectangle> resultList0 = ((Jackson2MapperService) 
sc).deSerMap(serColl, Map.class, String.class,
+                Rectangle.class);
+        logger.debug("resultList0 class:" + resultList0.getClass());
+        for (int i = 0; i < 10; i++) {
+            assertEquals( (i * i), resultList0.get("" + i).getSize(),
+                          "deser reread size failed");
+        }
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testDeserializationTypeAdapterForCollection() throws Exception 
{
+        TestSerializer tser = new TestSerializer();
+        TestDeserializer tdeSer = new TestDeserializer();
+        CustomModuleWrapper<List<Rectangle>> cmw = new 
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
+        sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
+        List<Rectangle> rectList = new ArrayList<Rectangle>();
+        for (int i = 0; i < 10; i++) {
+            Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        String adapterSer = sc.ser(rectList);
+        ArrayList<Rectangle> resultList0 = sc.deSer(adapterSer, 
ArrayList.class);
+        for (int i = 0; i < 10; i++) {
+            assertEquals( (i * i), resultList0.get(i).getSize(),
+                          "deser reread size failed");
+        }
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeWithMixinAndFilter() throws Exception {
+        Bean filteredBean = new Bean();
+        filteredBean.setName("joe");
+        //
+        sc.addAdapter("M4RBeanMixin", Bean.class, BeanMixin.class);
+        // profession was already set to ignore, does not change
+        String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, 
"profession");
+        assertEquals("{}", bean);
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeWithOnlyFilter() throws Exception {
+
+        String serJson = sc.serializeOnlyFilter(new TestClass("mytest"), 
"configurationName");
+        assertEquals("{\"configurationName\":\"Config.xml\"}", serJson, 
"Serialization failed ");
+
+        Rectangle filteredRectangle = new Rectangle(5, 10);
+        filteredRectangle.setName("jim");
+        String rectangle = sc.serializeOnlyFilter(filteredRectangle, "w");
+        assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed 
");
+        rectangle = sc.serializeOnlyFilter(filteredRectangle, true, "w");
+        assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed 
");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeAllExceptANDWithOnlyFilter2() throws Exception {
+
+        String serJson = sc.serializeAllExceptFilter(new TestClass("mytest"), 
"configurationName");
+        assertEquals( 
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
+
+        serJson = sc.serializeOnlyFilter(new TestClass("mytest"), 
"configurationName");
+        assertEquals( "{\"configurationName\":\"Config.xml\"}", serJson);
+
+        Rectangle filteredRectangle = new Rectangle(5, 10);
+        filteredRectangle.setName("jim");
+        String rectangle = sc.serializeOnlyFilter(filteredRectangle, "w");
+        assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed 
");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeBeanWithOnlyFilter() throws Exception {
+        Bean bean = new BeanChild();
+        bean.setAge(1);
+        bean.setName("bean1");
+        assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean, 
true, "name"));
+        assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean, 
Bean.class, true, "name")); // parent filter
+        assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean, 
BeanChild.class, true, "name"));
+        assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean, 
Object.class, true, "name"));
+        bean = new Bean();
+        bean.setAge(0);
+        bean.setName("bean0");
+        assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean, 
true, "name"));
+        assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean, 
Bean.class, true, "name"));
+        assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean, 
BeanChild.class, true, "name"));// child
+                                                                               
                             // filter
+        assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean, 
Object.class, true, "name"));
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithOnlyFilterAndParentClass() throws 
Exception {
+        List<BeanChild> beanList = new ArrayList<BeanChild>();
+        for (int i = 0; i < 3; i++) {
+            BeanChild bean = new BeanChild();
+            bean.setAge(i);
+            bean.setName("bean" + i);
+            beanList.add(bean);
+        }
+        String jsonResult = sc.serializeOnlyFilter(beanList, Bean.class, true, 
"name");
+        
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
+        // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+        // BeanChild.class, true,"type"));
+
+        Collection<BeanChild> result2 = checkDeserCollection(jsonResult, 
List.class, BeanChild.class);
+        assertTrue( !result2.isEmpty());
+        assertTrue(
+                
result2.iterator().next().getClass().isAssignableFrom(BeanChild.class),
+                "result entry instance check");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithOnlyFilterAndExactClass() throws 
Exception {
+        List<Bean> beanList = new ArrayList<Bean>();
+        for (int i = 0; i < 3; i++) {
+            Bean bean = new BeanChild();
+            bean.setAge(i);
+            bean.setName("bean" + i);
+            beanList.add(bean);
+        }
+        String jsonResult = sc.serializeOnlyFilter(beanList, BeanChild.class, 
true, "name");
+        
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
+        // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+        // BeanChild.class, true,"type"));
+        Collection<Bean> result2 = checkDeserCollection(jsonResult, 
List.class, Bean.class);
+        assertTrue( !result2.isEmpty(), "expect at least one entry ");
+        assertTrue( 
result2.iterator().next().getClass().isAssignableFrom(Bean.class), "result 
entry instance check");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithOnlyFilterWithChildClass() throws 
Exception {
+        List<Bean> beanList = new ArrayList<Bean>();
+        for (int i = 0; i < 3; i++) {
+            Bean bean = new Bean();
+            bean.setAge(i);
+            bean.setName("bean" + i);
+            beanList.add(bean);
+        }
+        String jsonResult = sc.serializeOnlyFilter(beanList, BeanChild.class, 
true, "name");
+        
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
 jsonResult);
+        // 
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+        // BeanChild.class, true,"type"));
+        Collection<Bean> result2 = checkDeserCollection(jsonResult, 
List.class, Bean.class);
+        assertTrue( !result2.isEmpty(), "expect at least one entry ");
+        assertTrue( 
result2.iterator().next().getClass().isAssignableFrom(Bean.class), "result 
entry instance check");
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithOnlyFilterAndType() throws 
Exception {
+
+        List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+        for (int i = 0; i < 2; i++) {
+            TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        Class<?> clazz = 
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
+        // no type cft. 
https://github.com/FasterXML/jackson-databind/issues/303 !!
+        String jsonResult = sc.serializeOnlyFilter(rectList, clazz, true, "w");
+        assertEquals("[{\"w\":0},{\"w\":1}]", jsonResult);
+        // could not deserialize easily with missing property type
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithOnlyFilterAndMixin() throws 
Exception {
+
+        List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+        for (int i = 0; i < 2; i++) {
+            TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        Class<?> clazz = 
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
+        sc.addAdapter("Collection Adapter", Object.class, 
TypedRectangle.Mixins.class);
+        assertEquals(
+                
"[\"java.util.ArrayList\",[{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":0},{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":1}]]",
+                sc.serializeOnlyFilter(rectList, clazz, true, "w"));
+    }
+
+    /**
+     * @throws Exception generic exception
+     */
+    @Test
+    public void testSerializeCollectionWithTypedReference() throws Exception {
+
+        List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+        for (int i = 0; i < 2; i++) {
+            TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+            rectList.add(filteredRect);
+        }
+        TypeReference<List<TypedRectangle>> typeRef = new 
TypeReference<List<TypedRectangle>>() {
+        };
+        String jsonResult = ((Jackson2MapperService) 
sc).serCollectionWithTypeReference(rectList, typeRef, false);
+        logger.debug("aa:" + jsonResult);
+        // could deserialize with type information
+        Collection<TypedRectangle> result2 = checkDeserCollection(jsonResult, 
List.class, TypedRectangle.class);
+        assertTrue( !result2.isEmpty(), "expect at least one entry ");
+        assertTrue(
+                
result2.iterator().next().getClass().isAssignableFrom(TypedRectangle.class),
+                "result entry instance check");
+
+    }
+
+    @Test
+    // jackson does not escape anything, except double quotes and backslash,
+    // additional characters could be provided
+    // by activationg escapeCharsGlobal xml characters are added
+    public void testSerializeHTMLEscape() throws Exception {
+        Rectangle filteredRect = new Rectangle(2, 3,
+                "rectÜber<strong>StockundStein 
&iuml;</strong></script><script>alert('xss')</script>" + 0);
+        String adapterSer = sc.ser(filteredRect);
+        logger.debug("Escaped serialized string:" + adapterSer);
+        assertEquals(
+                
"{'w':2,'h':3,'name':'rectÜber\\u003Cstrong\\u003EStockundStein 
\\u0026iuml;\\u003C/strong\\u003E\\u003C/script\\u003E\\u003Cscript\\u003Ealert(\\u0027xss\\u0027)\\u003C/script\\u003E0','size':6}",
+                adapterSer.replace('"', '\''),
+                "escaped html entities ser expected, iei <,>,&,\\ escaped 
(requires escapeCharsGlobal in json component configuration");
+        // you could set your own escapes here in class esc extending from
+        // CharacterEscapes.
+        // 
((Jackson2MapperService)sc).getMapper().getFactory().setCharacterEscapes(esc
+        // ) );
+    }
+
+    /**
+     * checks if string serJson is deserializable to class target with adapter 
mixin
+     * and returns result.
+     * 
+     * @param serJson JSON String to be tested
+     * @param target  class to be expected
+     * @param mixin   adapter set
+     * @return the resulting instance
+     * @throws Exception
+     */
+    private <T> T checkDeserialization(String serJson, Class<T> target, Class 
mixin) throws Exception {
+        sc.addAdapter("Mixin Adapter", target, mixin);
+        T result = sc.deSer(serJson, target);
+        assertTrue( target.isAssignableFrom(result.getClass()), "Result 
Instance Check");
+        return result;
+    }
+
+    private <U> Collection<U> checkDeserCollection(String serJson, Class<? 
extends Collection> collClass,
+            Class<U> entryClass) throws Exception {
+        Collection<U> result = ((Jackson2MapperService) 
sc).deSerCollectionWithType(serJson, collClass, entryClass);
+        // System.out.println("result:"+ result + " is of type: "+ 
result.getClass() +
+        // "and assignable from "+ collClass);
+        assertTrue(collClass.isAssignableFrom(result.getClass()),
+                "Result Instance Check failed for result class " + 
result.getClass() + " and target class: " + collClass);
+        return result;
+    }
 }
 
 abstract class TextClassMixin {
 
-       @JsonIgnore
-       abstract Map<String, Object> getContainer();
+    @JsonIgnore
+    abstract Map<String, Object> getContainer();
 }

Modified: 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
 (original)
+++ 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
 Fri Nov 30 13:40:20 2018
@@ -18,36 +18,41 @@ package org.apache.fulcrum.json.jackson;
  * specific language governing permissions and limitations
  * under the License.
  */
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.fulcrum.json.JsonService;
 import org.apache.fulcrum.json.jackson.example.Bean;
 import org.apache.fulcrum.json.jackson.example.Rectangle;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
 
 
 /**
  * More Jackson2 JSON Test
  * 
  * Test with clearing mixins
- * 
+
  * @author gk
  * @version $Id$
  */
-public class Jackson2MapperTest extends BaseUnit4Test {
+@RunWith(JUnitPlatform.class)
+public class Jackson2MapperTest extends BaseUnit5Test {
     
     private JsonService sc = null;
     Logger logger;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         sc = (JsonService) this.lookup(JsonService.ROLE);
-        logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+        logger = new Log4JLogger(LogManager.getLogger(getClass().getName()) );
         // clear 
         ((Jackson2MapperService)sc).setMixins(null,null);
         logger.debug( "cleared mixins");
@@ -59,14 +64,15 @@ public class Jackson2MapperTest extends
         bean.setName("joe");
         bean.setAge(12);
         String filteredBean  = sc.serializeOnlyFilter(bean, Bean.class, 
"name");
-        assertEquals("Ser filtered Bean failed ", "{\"name\":\"joe\"}", 
filteredBean);
+        assertEquals( "{\"name\":\"joe\"}", filteredBean, "Ser filtered Bean 
failed ");
 
         Rectangle rectangle = new Rectangle(5, 10);
         rectangle.setName("jim");
         String filteredRectangle  = sc.serializeOnlyFilter(rectangle,
                 Rectangle.class, "w", "name");
-        assertEquals("Ser filtered Rectangle failed ",
-                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+        assertEquals(
+                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle,
+                "Ser filtered Rectangle failed ");
     }
     
     // analog seralizeAllExcept 
@@ -80,29 +86,32 @@ public class Jackson2MapperTest extends
         rectangle.setName("jim");
         
         String filteredBean  = sc.serializeOnlyFilter(bean, Bean.class, 
"name");
-        assertEquals("global Ser filtered Bean failed ", "{\"name\":\"joe\"}", 
filteredBean);
+        assertEquals("{\"name\":\"joe\"}", filteredBean, "global Ser filtered 
Bean failed ");
 
         String filteredRectangle  = sc.serializeOnlyFilter(rectangle,
                 Rectangle.class, "w", "name");
-        assertEquals("global Ser filtered Rectangle failed ",
-                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+        assertEquals(
+                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle,
+                "global Ser filtered Rectangle failed ");
         
         filteredBean  = ((Jackson2MapperService)sc).serializeOnlyFilter(bean, 
new Class[]{ Bean.class}, true, "age");
-        assertEquals("Another Global Ser filtered Bean failed ", 
"{\"age\":12}", filteredBean);
+        assertEquals("{\"age\":12}", filteredBean, "Another Global Ser 
filtered Bean failed ");
 
         filteredRectangle  = ((Jackson2MapperService)sc).serializeOnlyFilter( 
                rectangle, new Class[] { Rectangle.class}, true, "h", "name");
-        assertEquals("Local Ser filtered Rectangle failed ",
-                "{\"h\":10,\"name\":\"jim\"}", filteredRectangle);
+        assertEquals(
+                "{\"h\":10,\"name\":\"jim\"}", filteredRectangle,
+                "Local Ser filtered Rectangle failed ");
         
         // if refresh would be false, this would fail
         filteredBean  = sc.serializeOnlyFilter(bean, Bean.class, "name");
-        assertEquals("global Ser filtered Bean failed ", "{\"name\":\"joe\"}", 
filteredBean);
+        assertEquals("{\"name\":\"joe\"}", filteredBean,
+                     "global Ser filtered Bean failed ");
 
         filteredRectangle  = sc.serializeOnlyFilter(rectangle,
                 Rectangle.class, "w", "name");
-        assertEquals("global Ser filtered Rectangle failed ",
-                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+        assertEquals(
+                "{\"w\":5,\"name\":\"jim\"}", filteredRectangle, "global Ser 
filtered Rectangle failed ");
     }
 
 }

Modified: 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
 (original)
+++ 
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
 Fri Nov 30 13:40:20 2018
@@ -18,10 +18,8 @@ package org.apache.fulcrum.json.jackson;
  * specific language governing permissions and limitations
  * under the License.
  */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -31,7 +29,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.fulcrum.json.JsonService;
 import org.apache.fulcrum.json.jackson.example.Bean;
@@ -41,9 +39,12 @@ import org.apache.fulcrum.json.jackson.m
 import org.apache.fulcrum.json.jackson.mixins.RectangleMixin;
 import org.apache.fulcrum.json.jackson.mixins.RectangleMixin2;
 import org.apache.fulcrum.json.jackson.mixins.TypedRectangle;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
@@ -56,29 +57,31 @@ import com.fasterxml.jackson.databind.Ob
  * @author gk
  * @version $Id$
  */
-public class JacksonMapperEnabledDefaultTypingTest extends BaseUnit4Test {
+//@Nested
+@RunWith(JUnitPlatform.class)
+public class JacksonMapperEnabledDefaultTypingTest extends BaseUnit5Test {
     public static final String preDefinedOutput = 
"{\"type\":\"org.apache.fulcrum.json.jackson.example.TestClass\",\"container\":{\"type\":\"java.util.HashMap\",\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}";
     private JsonService sc = null;
     Logger logger;
 
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         sc = (JsonService) this.lookup(JsonService.ROLE);
-        logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+        logger = new Log4JLogger(LogManager.getLogger(getClass().getName()) );
         ((Jackson2MapperService) sc).getMapper().enableDefaultTypingAsProperty(
                 DefaultTyping.NON_FINAL, "type");
     }
     @Test
     public void testSerialize() throws Exception {
         String serJson = sc.ser(new TestClass("mytest"));
-        assertEquals("Serialization failed ", preDefinedOutput, serJson);
+        assertEquals(preDefinedOutput, serJson, "Serialization failed ");
     }
     @Test
     public void testDeSerialize() throws Exception {
         String serJson = sc.ser(new TestClass("mytest"));
         Object deson = sc.deSer(serJson, TestClass.class);
-        assertEquals("DeSer failed ", TestClass.class, deson.getClass());
+        assertEquals(TestClass.class, deson.getClass(), "DeSer failed ");
     }
     @Test
     public void testSerializeDateWithDefaultDateFormat() throws Exception {
@@ -87,8 +90,9 @@ public class JacksonMapperEnabledDefault
         String serJson = sc.ser(map);
         logger.debug("serJson:" +serJson);
         assertEquals(
-                "Serialize with Adapater failed ",true,
-                
serJson.matches(".*\"java.util.Date\",\"\\d\\d/\\d\\d/\\d{4}\".*"));
+                true,
+                
serJson.matches(".*\"java.util.Date\",\"\\d\\d/\\d\\d/\\d{4}\".*"),
+                "Serialize with Adapater failed ");
     }
     @Test
     public void testDeSerializeDate() throws Exception {
@@ -99,8 +103,8 @@ public class JacksonMapperEnabledDefault
         String serJson =  sc.ser(map, Map.class);
         logger.debug("serJsonwithmap:"+ serJson);
         Map<String, Date> serDate = sc.deSer(serJson, Map.class);
-        assertEquals("Date DeSer failed ", Date.class, serDate.get("date")
-                .getClass());   
+        assertEquals(Date.class, serDate.get("date")
+                .getClass(), "Date DeSer failed "); 
     }
     @Test
     public void testSerializeWithCustomFilter() throws Exception {
@@ -108,16 +112,16 @@ public class JacksonMapperEnabledDefault
         filteredBean.setName("joe");
         String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, "name");
         assertEquals(
-                "Ser filtered Bean failed ",
                 
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"name\":\"joe\"}",
-                bean);
+                bean,
+                "Ser filtered Bean failed ");
 
         Rectangle filteredRectangle = new Rectangle(5, 10);
         filteredRectangle.setName("jim");
         String rectangle = sc.serializeOnlyFilter(filteredRectangle,
                 Rectangle.class, "w", "name");
-        assertEquals("Ser filtered Rectangle failed ",
-                "{\"w\":5,\"name\":\"jim\"}", rectangle);
+        assertEquals(
+                "{\"w\":5,\"name\":\"jim\"}", rectangle, "Ser filtered 
Rectangle failed ");
     }
     @Test
     public void testSerializationCollectionWithFilter() throws Exception {
@@ -132,9 +136,9 @@ public class JacksonMapperEnabledDefault
         String result = sc.serializeOnlyFilter(beanList, Bean.class, "name",
                 "age");
         assertEquals(
-                "Serialization of beans failed ",
                 
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0','age':0},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1','age':1},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2','age':2},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe3','age':3},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe4','age':4},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe5','age':5},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe6','age':6},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe7','age':7},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe8','age':8},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe9','age':9}]]",
-                result.replace('"', '\''));
+                result.replace('"', '\''),
+                "Serialization of beans failed ");
         
         Collection<Rectangle> resultDeSer = checkDeserCollection(result, 
List.class, Rectangle.class);
     }
@@ -143,14 +147,15 @@ public class JacksonMapperEnabledDefault
         sc.addAdapter("TestClass Adapter", target, mixin);
         T result = sc.deSer(serJson,target);
         //logger.debug("result:"+ result + " is of type "+ target.getName());
-        assertTrue("result instance check", 
target.isAssignableFrom(result.getClass()));
+        assertTrue(target.isAssignableFrom(result.getClass()), "result 
instance check");
         return result;
      }
     
     private <U> Collection<U> checkDeserCollection(String serJson,Class<? 
extends Collection> collClass, Class entryClass) throws Exception {
           Collection<U> result = ((Jackson2MapperService) 
sc).deSerCollectionWithType(serJson, collClass, entryClass);
-          assertTrue("result instance check failed for result class "+ 
result.getClass() + " and target class: "+ collClass, 
-                  collClass.isAssignableFrom(result.getClass()));
+          assertTrue( 
+                  collClass.isAssignableFrom(result.getClass()),
+                  "result instance check failed for result class "+ 
result.getClass() + " and target class: "+ collClass);
           return result;
     }
   
@@ -171,9 +176,9 @@ public class JacksonMapperEnabledDefault
         TypeReference typeRef = new TypeReference<List<Bean>>(){};
         List<Bean> beanList2 = (List<Bean>) ((Jackson2MapperService) sc)
                 .deSerCollection(result, typeRef, Bean.class);
-        assertTrue("DeSer failed ", beanList2.size() == 10);
+        assertTrue(beanList2.size() == 10);
         for (Bean bean : beanList2) {
-            assertEquals("DeSer failed ", Bean.class, bean.getClass());
+            assertEquals(Bean.class, bean.getClass());
         }
     }
     @Test
@@ -190,12 +195,12 @@ public class JacksonMapperEnabledDefault
         String result = sc.serializeOnlyFilter(beanList, Bean.class, "name",
                 "age");
         Object beanList2 = sc.deSer(result, List.class);
-        assertTrue("DeSer failed ", beanList2 instanceof List);
-        assertTrue("DeSer failed ", ((List) beanList2).size() == 10);
+        assertTrue( beanList2 instanceof List);
+        assertTrue( ((List) beanList2).size() == 10);
         for (int i = 0; i < ((List) beanList2).size(); i++) {
-            assertTrue("DeSer failed ",
+            assertTrue(
                     ((List) beanList2).get(i) instanceof Bean);
-            assertTrue("DeSer failed ", ((Bean) ((List) beanList2).get(i))
+            assertTrue(((Bean) ((List) beanList2).get(i))
                     .getName().equals("joe" + i));
 
         }
@@ -207,7 +212,7 @@ public class JacksonMapperEnabledDefault
         String serRect = sc
                 .addAdapter("M4RMixin", Rectangle.class, 
RectangleMixin.class).ser(
                         filteredRectangle);
-        assertEquals("Ser failed ", "{\"width\":5}", serRect);
+        assertEquals("{\"width\":5}", serRect);
     }
     @Test
     public void testSerializeWith2Mixins() throws Exception {
@@ -218,16 +223,16 @@ public class JacksonMapperEnabledDefault
 
        String serRect =  sc.addAdapter("M4RMixin2", Rectangle.class,
                 RectangleMixin2.class).ser(filteredRectangle);
-        assertEquals("Ser failed ", "{\"name\":\"jim\",\"width\":5}", serRect);
+        assertEquals( "{\"name\":\"jim\",\"width\":5}", serRect);
 
         //
         String bean = sc.addAdapter("M4RBeanMixin", Bean.class,
                 BeanMixin.class).ser(filteredBean);;
         
         assertEquals(
-                "Ser filtered Bean failed ",
                 
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"name\":\"joe\"}",
-                bean);
+                bean,
+                "Ser filtered Bean failed ");
     }
     @Test
     public void testSerializeWithMixinAndFilter() throws Exception {
@@ -239,7 +244,6 @@ public class JacksonMapperEnabledDefault
         // profession was already set to ignore, does not change
         String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, 
"profession");
         assertEquals(
-                "Ser filtered Bean failed ",
                 "{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\"}",
                 bean);
     }
@@ -255,9 +259,9 @@ public class JacksonMapperEnabledDefault
         // now profession is used after cleaning adapter
         String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, 
"profession");
         assertEquals(
-                "Ser filtered Bean failed ",
                 
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"profession\":\"\"}",
-                bean);
+                bean,
+                "Serialization of beans failed ");
     }
     @Test
     public void testMultipleSerializingWithMixinAndFilter() throws Exception {
@@ -270,21 +274,21 @@ public class JacksonMapperEnabledDefault
         // if serialization is done Jackson clean cache
         String rectangle0 = sc.ser(filteredRectangle,Rectangle.class,true);
         assertEquals(
-                "Ser filtered Rectangle failed ",
                 "{\"name\":\"jim\",\"width\":5}",
-                rectangle0);
+                rectangle0,
+                "Ser filtered Rectangle0 failed ");
         // filtering out name, using width from mixin2 as a second filter
         String rectangle = sc.serializeOnlyFilter(filteredRectangle, 
Rectangle.class, true, "width");
         assertEquals(
-                "Ser filtered Rectangle failed ",
                 "{\"width\":5}",
-                rectangle);
+                rectangle,
+                "Ser filtered Rectangle failed ");
         // default for mixin
        String rectangle1 = sc.ser(filteredRectangle);
        assertEquals(
-              "Ser filtered Rectangle failed ",
               "{\"name\":\"jim\",\"width\":5}",
-              rectangle1);
+              rectangle1,
+              "Ser filtered Rectangle1 failed ");
     }
     @Test
     public void testSerializationCollectionWithMixin() throws Exception {
@@ -298,9 +302,9 @@ public class JacksonMapperEnabledDefault
         String result = sc.addAdapter("M4RMixin", Bean.class, BeanMixin.class)
                 .ser(beanList);
         assertEquals(
-                "Serialization of beans failed ",
                 
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe3'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe4'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe5'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe6'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe7'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe8'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe9'}]]",
-                result.replace('"', '\''));
+                result.replace('"', '\''),
+                "Serialization of beans failed ");
     }
     @Test
     public void testDeSerializationCollectionWithMixin() throws Exception {
@@ -317,9 +321,9 @@ public class JacksonMapperEnabledDefault
         TypeReference typeRef = new TypeReference<List<Bean>>(){};
         List<Bean> beanList2 = (List<Bean>) ((Jackson2MapperService) sc)
                 .deSerCollection(result, typeRef, Bean.class);
-        assertTrue("DeSer failed ", beanList2.size() == 10);
+        assertTrue(beanList2.size() == 10, "DeSer failed ");
         for (Bean bean : beanList2) {
-            assertEquals("DeSer failed ", Bean.class, bean.getClass());
+            assertEquals( Bean.class, bean.getClass(), "DeSer failed ");
         }
     }
     @Test
@@ -337,7 +341,7 @@ public class JacksonMapperEnabledDefault
                 "M4BeanRMixin", Bean.class, BeanMixin.class);
         String serRect = sc.ser(components);
         assertEquals(
-                "Serialization failed ",
+
                 
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Rectangle','width':25},{'type':'org.apache.fulcrum.json.jackson.example.Rectangle','width':250},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2'}]]",
                 serRect.replace('"', '\''));
     }


Reply via email to