From 07a5620d9fb98efcf555807427b767785a47b333 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 21 Jul 2015 10:57:33 +0200 Subject: [PATCH] #368 - Assert Jackson 2.6.0 compatibility. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switched from overrides of the deprecated (and removed in 2.6) isEmpty(T) to isEmpty(SerializerProvider, T). Switched from deprecated @JsonSerialize(include = …) to the dedicated @JsonInclude annotation. --- pom.xml | 2 +- .../hateoas/hal/Jackson2HalModule.java | 19 +++++++++---------- .../hateoas/hal/ResourceSupportMixin.java | 5 ++++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 98cca108..7780a3c5 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ UTF-8 4.0.9.RELEASE 1.1.3 - 2.4.6 + 2.5.4 1.0 2.1.1 0.9.1 diff --git a/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java b/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java index 03e53595..17730b47 100644 --- a/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java +++ b/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java @@ -127,8 +127,8 @@ public class Jackson2HalModule extends SimpleModule { * @see com.fasterxml.jackson.databind.ser.std.StdSerializer#serialize(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider) */ @Override - public void serialize(List value, JsonGenerator jgen, SerializerProvider provider) throws IOException, - JsonGenerationException { + public void serialize(List value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonGenerationException { // sort links according to their relation Map> sortedLinks = new LinkedHashMap>(); @@ -200,12 +200,12 @@ public class Jackson2HalModule extends SimpleModule { return null; } - /* + /* * (non-Javadoc) - * @see com.fasterxml.jackson.databind.ser.ContainerSerializer#isEmpty(java.lang.Object) + * @see com.fasterxml.jackson.databind.JsonSerializer#isEmpty(com.fasterxml.jackson.databind.SerializerProvider, java.lang.Object) */ @Override - public boolean isEmpty(List value) { + public boolean isEmpty(SerializerProvider provider, List value) { return value.isEmpty(); } @@ -293,7 +293,7 @@ public class Jackson2HalModule extends SimpleModule { } @Override - public boolean isEmpty(Collection value) { + public boolean isEmpty(SerializerProvider provider, Collection value) { return value.isEmpty(); } @@ -424,13 +424,12 @@ public class Jackson2HalModule extends SimpleModule { return false; } - /* + /* * (non-Javadoc) - * - * @see com.fasterxml.jackson.databind.ser.ContainerSerializer#isEmpty(java.lang.Object) + * @see com.fasterxml.jackson.databind.JsonSerializer#isEmpty(com.fasterxml.jackson.databind.SerializerProvider, java.lang.Object) */ @Override - public boolean isEmpty(Object arg0) { + public boolean isEmpty(SerializerProvider provider, Object value) { return false; } diff --git a/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java b/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java index 0e2d5475..70a19114 100644 --- a/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java +++ b/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java @@ -22,6 +22,8 @@ import javax.xml.bind.annotation.XmlElement; import org.springframework.hateoas.Link; import org.springframework.hateoas.ResourceSupport; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -31,7 +33,8 @@ abstract class ResourceSupportMixin extends ResourceSupport { @Override @XmlElement(name = "link") @JsonProperty("_links") - @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY, using = Jackson2HalModule.HalLinkListSerializer.class) + @JsonInclude(Include.NON_EMPTY) + @JsonSerialize(using = Jackson2HalModule.HalLinkListSerializer.class) @JsonDeserialize(using = Jackson2HalModule.HalLinkListDeserializer.class) public abstract List getLinks(); }