#27 - Added support for Jackson 2.

Added Jackson 2 dependencies. Doubly annotated representation model classes with both Jackson 1 and Jackson 2 annotations. Added Integration tests for Jackson 2 marshaling provided by Jon. Polished template.mf.
This commit is contained in:
Oliver Gierke
2012-11-16 21:32:47 +01:00
parent 04be1871c3
commit 40b486cb43
10 changed files with 247 additions and 23 deletions

View File

@@ -22,9 +22,6 @@ import java.util.Collection;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
import org.codehaus.jackson.annotate.JsonProperty;
import org.springframework.util.Assert;
/**
@@ -33,10 +30,12 @@ import org.springframework.util.Assert;
* @author Oliver Gierke
*/
@XmlRootElement(name = "entities")
@JsonAutoDetect(fieldVisibility = Visibility.ANY)
@org.codehaus.jackson.annotate.JsonAutoDetect(fieldVisibility = org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.ANY)
@com.fasterxml.jackson.annotation.JsonAutoDetect(fieldVisibility = com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.ANY)
public class PagedResources<T> extends Resources<T> {
@JsonProperty("page")
@org.codehaus.jackson.annotate.JsonProperty("page")
@com.fasterxml.jackson.annotation.JsonProperty("page")
private PageMetadata metadata;
/**
@@ -145,23 +144,28 @@ public class PagedResources<T> extends Resources<T> {
*
* @author Oliver Gierke
*/
@JsonAutoDetect(fieldVisibility = Visibility.ANY)
@org.codehaus.jackson.annotate.JsonAutoDetect(fieldVisibility = org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.ANY)
@com.fasterxml.jackson.annotation.JsonAutoDetect(fieldVisibility = com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.ANY)
public static class PageMetadata {
@XmlAttribute
@JsonProperty
@org.codehaus.jackson.annotate.JsonProperty
@com.fasterxml.jackson.annotation.JsonProperty
private long size;
@XmlAttribute
@JsonProperty
@org.codehaus.jackson.annotate.JsonProperty
@com.fasterxml.jackson.annotation.JsonProperty
private long totalElements;
@XmlAttribute
@JsonProperty
@org.codehaus.jackson.annotate.JsonProperty
@com.fasterxml.jackson.annotation.JsonProperty
private long totalPages;
@XmlAttribute
@JsonProperty
@org.codehaus.jackson.annotate.JsonProperty
@com.fasterxml.jackson.annotation.JsonProperty
private long number;
protected PageMetadata() {

View File

@@ -19,7 +19,6 @@ import java.util.Arrays;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.annotate.JsonUnwrapped;
import org.springframework.util.Assert;
/**
@@ -30,7 +29,8 @@ import org.springframework.util.Assert;
@XmlRootElement
public class Resource<T> extends ResourceSupport {
@JsonUnwrapped
@org.codehaus.jackson.annotate.JsonUnwrapped
@com.fasterxml.jackson.annotation.JsonUnwrapped
private final T content;
/**

View File

@@ -21,8 +21,6 @@ import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.springframework.util.Assert;
/**
@@ -33,7 +31,8 @@ import org.springframework.util.Assert;
public class ResourceSupport implements Identifiable<Link> {
@XmlElement(name = "link", namespace = Link.ATOM_NAMESPACE)
@JsonProperty("links")
@org.codehaus.jackson.annotate.JsonProperty("links")
@com.fasterxml.jackson.annotation.JsonProperty("links")
private final List<Link> links;
public ResourceSupport() {
@@ -43,7 +42,8 @@ public class ResourceSupport implements Identifiable<Link> {
/**
* Returns the {@link Link} with a rel of {@link Link#REL_SELF}.
*/
@JsonIgnore
@org.codehaus.jackson.annotate.JsonIgnore
@com.fasterxml.jackson.annotation.JsonIgnore
public Link getId() {
return getLink(Link.REL_SELF);
}

View File

@@ -25,7 +25,6 @@ import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.annotate.JsonProperty;
import org.springframework.util.Assert;
/**
@@ -38,7 +37,8 @@ public class Resources<T> extends ResourceSupport implements Iterable<T> {
@XmlAnyElement
@XmlElementWrapper
@JsonProperty("content")
@org.codehaus.jackson.annotate.JsonProperty("content")
@com.fasterxml.jackson.annotation.JsonProperty("content")
private final Collection<T> content;
/**