diff --git a/jackson/pom.xml b/jackson/pom.xml
index 5e72eb5cf1..348e1b8ef2 100644
--- a/jackson/pom.xml
+++ b/jackson/pom.xml
@@ -104,7 +104,7 @@
5.1.27
- 2.2.3
+ 2.3.0
1.7.5
diff --git a/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoWithFilter.java b/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoWithFilter.java
new file mode 100644
index 0000000000..2492cb82cb
--- /dev/null
+++ b/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoWithFilter.java
@@ -0,0 +1,50 @@
+package org.baeldung.jackson.ignore;
+
+import com.fasterxml.jackson.annotation.JsonFilter;
+
+@JsonFilter("myFilter")
+public class MyDtoWithFilter {
+
+ private String stringValue;
+ private int intValue;
+ private boolean booleanValue;
+
+ public MyDtoWithFilter() {
+ super();
+ }
+
+ public MyDtoWithFilter(final String stringValue, final int intValue, final boolean booleanValue) {
+ super();
+
+ this.stringValue = stringValue;
+ this.intValue = intValue;
+ this.booleanValue = booleanValue;
+ }
+
+ // API
+
+ public String getStringValue() {
+ return stringValue;
+ }
+
+ public void setStringValue(final String stringValue) {
+ this.stringValue = stringValue;
+ }
+
+ public int getIntValue() {
+ return intValue;
+ }
+
+ public void setIntValue(final int intValue) {
+ this.intValue = intValue;
+ }
+
+ public boolean isBooleanValue() {
+ return booleanValue;
+ }
+
+ public void setBooleanValue(final boolean booleanValue) {
+ this.booleanValue = booleanValue;
+ }
+
+}
diff --git a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java
index bbabdb3314..0561b84a13 100644
--- a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java
+++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java
@@ -11,11 +11,15 @@ import org.baeldung.jackson.ignore.MyDto;
import org.baeldung.jackson.ignore.MyDtoIgnoreField;
import org.baeldung.jackson.ignore.MyDtoIgnoreFieldByName;
import org.baeldung.jackson.ignore.MyDtoIncludeNonDefault;
+import org.baeldung.jackson.ignore.MyDtoWithFilter;
import org.baeldung.jackson.ignore.MyMixInForString;
import org.junit.Test;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ser.FilterProvider;
+import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
+import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import com.google.common.collect.Lists;
public class JacksonSerializationUnitTest {
@@ -83,6 +87,23 @@ public class JacksonSerializationUnitTest {
System.out.println(dtoAsString);
}
+ @Test
+ public final void givenTypeHasFilterThatIgnoresIntsOver10_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final SimpleBeanPropertyFilter theFilter = SimpleBeanPropertyFilter.serializeAllExcept("intValue");
+ final FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter", theFilter);
+
+ final MyDtoWithFilter dtoObject = new MyDtoWithFilter();
+ dtoObject.setIntValue(12);
+
+ final String dtoAsString = mapper.writer(filters).writeValueAsString(dtoObject);
+
+ assertThat(dtoAsString, not(containsString("intValue")));
+ assertThat(dtoAsString, containsString("booleanValue"));
+ assertThat(dtoAsString, containsString("stringValue"));
+ System.out.println(dtoAsString);
+ }
+
// tests - multiple entities to json
@Test