Author: gk
Date: Wed May 20 14:58:01 2015
New Revision: 1680589
URL: http://svn.apache.org/r1680589
Log:
- jackson2: extend filter reciprocal that even parent classes get filtered if a
child filter class is provided
Modified:
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/SimpleNameIntrospector.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
Modified:
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/SimpleNameIntrospector.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/SimpleNameIntrospector.java?rev=1680589&r1=1680588&r2=1680589&view=diff
==============================================================================
---
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/SimpleNameIntrospector.java
(original)
+++
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/SimpleNameIntrospector.java
Wed May 20 14:58:01 2015
@@ -99,11 +99,16 @@ public class SimpleNameIntrospector exte
} else {
// check if target class is a child from filter class -> apply
filter
for (Class<?> filterClazz : filteredClasses) {
- // the currently checked class /targetClazz could be child
to the filter class /filterClazz -> positive filter
+ // the currently checked class /targetClazz could be child
to the filter class /filterClazz -> filter child
if (filterClazz.isAssignableFrom(targetClazz)) {
id = name;
break;
}
+ // the currently checked class /targetClazz could be parent
to the filter class /filterClazz -> filter parent
+ if (targetClazz.isAssignableFrom(filterClazz)) {
+ id = name;
+ break;
+ }
// the current clazz could be parent to the filter
}
}
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=1680589&r1=1680588&r2=1680589&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
Wed May 20 14:58:01 2015
@@ -274,9 +274,9 @@ public class DefaultServiceTest extends
public void testSerializeCollectionWithOnlyFilterAndParentClass() throws
Exception {
- List<Bean> beanList = new ArrayList<Bean>();
+ List<BeanChild> beanList = new ArrayList<BeanChild>();
for (int i = 0; i < 3; i++) {
- Bean bean = new BeanChild();
+ BeanChild bean = new BeanChild();
bean.setAge(i);bean.setName("bean"+i);
beanList.add(bean);
}
@@ -292,6 +292,18 @@ public class DefaultServiceTest extends
bean.setAge(i);bean.setName("bean"+i);
beanList.add(bean);
}
+
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",sc.serializeOnlyFilter(beanList,
BeanChild.class, true,"name"));
+
//assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
BeanChild.class, true,"type"));
+ }
+
+ 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);
+ }
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",sc.serializeOnlyFilter(beanList,
BeanChild.class, true,"name"));
//assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
BeanChild.class, true,"type"));
}