diff --git a/pom.xml b/pom.xml
index 6492850b..7ae14254 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,8 +60,7 @@
UTF-8
3.2.7.RELEASE
1.0.13
- 1.9.13
- 2.3.0
+ 2.3.0
1.0
1.1.1
0.9.1
@@ -135,31 +134,17 @@
provided
-
- org.codehaus.jackson
- jackson-core-asl
- ${jackson1.version}
- true
-
-
-
- org.codehaus.jackson
- jackson-mapper-asl
- ${jackson1.version}
- true
-
-
com.fasterxml.jackson.core
jackson-annotations
- ${jackson2.version}
+ ${jackson.version}
true
com.fasterxml.jackson.core
jackson-databind
- ${jackson2.version}
+ ${jackson.version}
true
diff --git a/src/main/java/org/springframework/hateoas/Link.java b/src/main/java/org/springframework/hateoas/Link.java
index 444b25e0..95457ae1 100755
--- a/src/main/java/org/springframework/hateoas/Link.java
+++ b/src/main/java/org/springframework/hateoas/Link.java
@@ -141,7 +141,6 @@ public class Link implements Serializable {
*
* @return
*/
- @org.codehaus.jackson.annotate.JsonIgnore
@JsonIgnore
public List getVariableNames() {
return getUriTemplate().getVariableNames();
@@ -152,7 +151,6 @@ public class Link implements Serializable {
*
* @return
*/
- @org.codehaus.jackson.annotate.JsonIgnore
@JsonIgnore
public List getVariables() {
return getUriTemplate().getVariables();
@@ -163,7 +161,6 @@ public class Link implements Serializable {
*
* @return
*/
- @org.codehaus.jackson.annotate.JsonIgnore
public boolean isTemplated() {
return !getUriTemplate().getVariables().isEmpty();
}
diff --git a/src/main/java/org/springframework/hateoas/PagedResources.java b/src/main/java/org/springframework/hateoas/PagedResources.java
index ac5332c8..e4b2d44e 100644
--- a/src/main/java/org/springframework/hateoas/PagedResources.java
+++ b/src/main/java/org/springframework/hateoas/PagedResources.java
@@ -24,6 +24,9 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.springframework.util.Assert;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
* DTO to implement binding response representations of pageable collections.
*
@@ -71,8 +74,7 @@ public class PagedResources extends Resources {
*
* @return the metadata
*/
- @org.codehaus.jackson.annotate.JsonProperty("page")
- @com.fasterxml.jackson.annotation.JsonProperty("page")
+ @JsonProperty("page")
public PageMetadata getMetadata() {
return metadata;
}
@@ -103,8 +105,7 @@ public class PagedResources extends Resources {
* @see #addPaginationLinks(Link)
* @return
*/
- @com.fasterxml.jackson.annotation.JsonIgnore
- @org.codehaus.jackson.annotate.JsonIgnore
+ @JsonIgnore
public Link getNextLink() {
return getLink(Link.REL_NEXT);
}
@@ -115,8 +116,7 @@ public class PagedResources extends Resources {
* @see #addPaginationLinks(Link)
* @return
*/
- @com.fasterxml.jackson.annotation.JsonIgnore
- @org.codehaus.jackson.annotate.JsonIgnore
+ @JsonIgnore
public Link getPreviousLink() {
return getLink(Link.REL_PREVIOUS);
}
@@ -170,25 +170,10 @@ public class PagedResources extends Resources {
*/
public static class PageMetadata {
- @XmlAttribute//
- @org.codehaus.jackson.annotate.JsonProperty//
- @com.fasterxml.jackson.annotation.JsonProperty//
- private long size;
-
- @XmlAttribute//
- @org.codehaus.jackson.annotate.JsonProperty//
- @com.fasterxml.jackson.annotation.JsonProperty//
- private long totalElements;
-
- @XmlAttribute//
- @org.codehaus.jackson.annotate.JsonProperty//
- @com.fasterxml.jackson.annotation.JsonProperty//
- private long totalPages;
-
- @XmlAttribute//
- @org.codehaus.jackson.annotate.JsonProperty//
- @com.fasterxml.jackson.annotation.JsonProperty//
- private long number;
+ @XmlAttribute @JsonProperty private long size;
+ @XmlAttribute @JsonProperty private long totalElements;
+ @XmlAttribute @JsonProperty private long totalPages;
+ @XmlAttribute @JsonProperty private long number;
protected PageMetadata() {
diff --git a/src/main/java/org/springframework/hateoas/Resource.java b/src/main/java/org/springframework/hateoas/Resource.java
index 2442b597..17aa48ae 100644
--- a/src/main/java/org/springframework/hateoas/Resource.java
+++ b/src/main/java/org/springframework/hateoas/Resource.java
@@ -23,6 +23,8 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.springframework.util.Assert;
+import com.fasterxml.jackson.annotation.JsonUnwrapped;
+
/**
* A simple {@link Resource} wrapping a domain object and adding links to it.
*
@@ -69,8 +71,7 @@ public class Resource extends ResourceSupport {
*
* @return the content
*/
- @org.codehaus.jackson.annotate.JsonUnwrapped
- @com.fasterxml.jackson.annotation.JsonUnwrapped
+ @JsonUnwrapped
@XmlAnyElement
public T getContent() {
return content;
diff --git a/src/main/java/org/springframework/hateoas/ResourceSupport.java b/src/main/java/org/springframework/hateoas/ResourceSupport.java
index 9c012b75..ca1351f6 100755
--- a/src/main/java/org/springframework/hateoas/ResourceSupport.java
+++ b/src/main/java/org/springframework/hateoas/ResourceSupport.java
@@ -22,6 +22,9 @@ import javax.xml.bind.annotation.XmlElement;
import org.springframework.util.Assert;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
* Base class for DTOs to collect links.
*
@@ -38,8 +41,7 @@ public class ResourceSupport implements Identifiable {
/**
* Returns the {@link Link} with a rel of {@link Link#REL_SELF}.
*/
- @org.codehaus.jackson.annotate.JsonIgnore
- @com.fasterxml.jackson.annotation.JsonIgnore
+ @JsonIgnore
public Link getId() {
return getLink(Link.REL_SELF);
}
@@ -91,8 +93,7 @@ public class ResourceSupport implements Identifiable {
* @return
*/
@XmlElement(name = "link", namespace = Link.ATOM_NAMESPACE)
- @org.codehaus.jackson.annotate.JsonProperty("links")
- @com.fasterxml.jackson.annotation.JsonProperty("links")
+ @JsonProperty("links")
public List getLinks() {
return links;
}
diff --git a/src/main/java/org/springframework/hateoas/Resources.java b/src/main/java/org/springframework/hateoas/Resources.java
index 8d494f01..04f4142a 100644
--- a/src/main/java/org/springframework/hateoas/Resources.java
+++ b/src/main/java/org/springframework/hateoas/Resources.java
@@ -27,6 +27,8 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.springframework.util.Assert;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
* General helper to easily create a wrapper for a collection of entities.
*
@@ -98,8 +100,7 @@ public class Resources extends ResourceSupport implements Iterable {
*/
@XmlAnyElement
@XmlElementWrapper
- @org.codehaus.jackson.annotate.JsonProperty("content")
- @com.fasterxml.jackson.annotation.JsonProperty("content")
+ @JsonProperty("content")
public Collection getContent() {
return Collections.unmodifiableCollection(content);
}
diff --git a/src/main/java/org/springframework/hateoas/VndErrors.java b/src/main/java/org/springframework/hateoas/VndErrors.java
index 9eb3a5c9..6fc18f32 100644
--- a/src/main/java/org/springframework/hateoas/VndErrors.java
+++ b/src/main/java/org/springframework/hateoas/VndErrors.java
@@ -28,6 +28,10 @@ import javax.xml.bind.annotation.XmlType;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+
/**
* A representation model class to be rendered as specified for the media type {@code application/vnd.error}.
*
@@ -72,8 +76,7 @@ public class VndErrors implements Iterable {
*
* @param errors must not be {@literal null} or empty.
*/
- @com.fasterxml.jackson.annotation.JsonCreator
- @org.codehaus.jackson.annotate.JsonCreator
+ @JsonCreator
public VndErrors(List errors) {
Assert.notNull(errors, "Errors must not be null!");
@@ -103,8 +106,7 @@ public class VndErrors implements Iterable {
*
* @return the vndErrors
*/
- @com.fasterxml.jackson.annotation.JsonValue
- @org.codehaus.jackson.annotate.JsonValue
+ @JsonValue
private List getErrors() {
return vndErrors;
}
@@ -163,15 +165,8 @@ public class VndErrors implements Iterable {
@XmlType
public static class VndError extends ResourceSupport {
- @com.fasterxml.jackson.annotation.JsonProperty//
- @org.codehaus.jackson.annotate.JsonProperty//
- @XmlAttribute//
- private final String logref;
-
- @com.fasterxml.jackson.annotation.JsonProperty//
- @org.codehaus.jackson.annotate.JsonProperty//
- @XmlElement//
- private final String message;
+ @XmlAttribute @JsonProperty private final String logref;
+ @XmlElement @JsonProperty private final String message;
/**
* Creates a new {@link VndError} with the given logref, a message as well as some {@link Link}s.
diff --git a/src/main/java/org/springframework/hateoas/config/HypermediaSupportBeanDefinitionRegistrar.java b/src/main/java/org/springframework/hateoas/config/HypermediaSupportBeanDefinitionRegistrar.java
index 8c99cc81..15ae9a48 100644
--- a/src/main/java/org/springframework/hateoas/config/HypermediaSupportBeanDefinitionRegistrar.java
+++ b/src/main/java/org/springframework/hateoas/config/HypermediaSupportBeanDefinitionRegistrar.java
@@ -51,11 +51,9 @@ import org.springframework.hateoas.core.DelegatingRelProvider;
import org.springframework.hateoas.core.EvoInflectorRelProvider;
import org.springframework.hateoas.hal.CurieProvider;
import org.springframework.hateoas.hal.HalLinkDiscoverer;
-import org.springframework.hateoas.hal.Jackson1HalModule;
import org.springframework.hateoas.hal.Jackson2HalModule;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
import org.springframework.plugin.core.PluginRegistry;
import org.springframework.plugin.core.support.PluginRegistryFactoryBean;
import org.springframework.util.ClassUtils;
@@ -78,7 +76,6 @@ class HypermediaSupportBeanDefinitionRegistrar implements ImportBeanDefinitionRe
private static final String LINK_DISCOVERER_REGISTRY_BEAN_NAME = "_linkDiscovererRegistry";
private static final String HAL_OBJECT_MAPPER_BEAN_NAME = "_halObjectMapper";
- private static final boolean JACKSON1_PRESENT = ClassUtils.isPresent("org.codehaus.jackson.map.ObjectMapper", null);
private static final boolean JACKSON2_PRESENT = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
null);
private static final boolean JSONPATH_PRESENT = ClassUtils.isPresent("com.jayway.jsonpath.JsonPath", null);
@@ -119,11 +116,6 @@ class HypermediaSupportBeanDefinitionRegistrar implements ImportBeanDefinitionRe
BeanDefinitionBuilder builder = rootBeanDefinition(Jackson2ModuleRegisteringBeanPostProcessor.class);
registerSourcedBeanDefinition(builder, metadata, registry);
}
-
- if (JACKSON1_PRESENT) {
- BeanDefinitionBuilder builder = rootBeanDefinition(Jackson1ModuleRegisteringBeanPostProcessor.class);
- registerSourcedBeanDefinition(builder, metadata, registry);
- }
}
if (!types.isEmpty()) {
@@ -306,76 +298,4 @@ class HypermediaSupportBeanDefinitionRegistrar implements ImportBeanDefinitionRe
}
}
}
-
- /**
- * {@link BeanPostProcessor} to register the {@link Jackson1HalModule} with
- * {@link org.codehaus.jackson.map.ObjectMapper} beans registered in the {@link ApplicationContext}.
- *
- * @author Oliver Gierke
- */
- @Deprecated
- private static class Jackson1ModuleRegisteringBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware {
-
- private RelProvider relProvider;
-
- /*
- * (non-Javadoc)
- * @see org.springframework.beans.factory.BeanFactoryAware#setBeanFactory(org.springframework.beans.factory.BeanFactory)
- */
- @Override
- public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
- this.relProvider = beanFactory.getBean(DELEGATING_REL_PROVIDER_BEAN_NAME, RelProvider.class);
- }
-
- /*
- * (non-Javadoc)
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- @Override
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
-
- if (bean instanceof RequestMappingHandlerAdapter) {
-
- RequestMappingHandlerAdapter adapter = (RequestMappingHandlerAdapter) bean;
- adapter.setMessageConverters(registerModule(adapter.getMessageConverters()));
- }
-
- if (bean instanceof AnnotationMethodHandlerAdapter) {
-
- AnnotationMethodHandlerAdapter adapter = (AnnotationMethodHandlerAdapter) bean;
- List> augmentedConverters = registerModule(Arrays
- .asList(adapter.getMessageConverters()));
- adapter
- .setMessageConverters(augmentedConverters.toArray(new HttpMessageConverter>[augmentedConverters.size()]));
- }
-
- return bean;
- }
-
- /*
- * (non-Javadoc)
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- @Override
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- private List> registerModule(List> converters) {
-
- org.codehaus.jackson.map.ObjectMapper objectMapper = new org.codehaus.jackson.map.ObjectMapper();
-
- objectMapper.registerModule(new Jackson1HalModule());
- objectMapper.setHandlerInstantiator(new Jackson1HalModule.HalHandlerInstantiator(relProvider));
-
- MappingJacksonHttpMessageConverter halConverter = new MappingJacksonHttpMessageConverter();
- halConverter.setSupportedMediaTypes(Arrays.asList(HAL_JSON));
- halConverter.setObjectMapper(objectMapper);
-
- List> result = new ArrayList>(converters.size());
- result.add(halConverter);
- result.addAll(converters);
- return result;
- }
- }
}
diff --git a/src/main/java/org/springframework/hateoas/hal/Jackson1HalModule.java b/src/main/java/org/springframework/hateoas/hal/Jackson1HalModule.java
deleted file mode 100644
index 87c0a81e..00000000
--- a/src/main/java/org/springframework/hateoas/hal/Jackson1HalModule.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Copyright 2012-2013 the original author or authors.
- *
- * Licensed 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.
- */
-package org.springframework.hateoas.hal;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.BeanProperty;
-import org.codehaus.jackson.map.ContextualDeserializer;
-import org.codehaus.jackson.map.ContextualSerializer;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.HandlerInstantiator;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.KeyDeserializer;
-import org.codehaus.jackson.map.MapperConfig;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.TypeSerializer;
-import org.codehaus.jackson.map.deser.std.ContainerDeserializerBase;
-import org.codehaus.jackson.map.introspect.Annotated;
-import org.codehaus.jackson.map.jsontype.TypeIdResolver;
-import org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.map.ser.std.ContainerSerializerBase;
-import org.codehaus.jackson.map.ser.std.MapSerializer;
-import org.codehaus.jackson.map.type.TypeFactory;
-import org.codehaus.jackson.type.JavaType;
-import org.springframework.beans.BeanUtils;
-import org.springframework.hateoas.Link;
-import org.springframework.hateoas.RelProvider;
-import org.springframework.hateoas.Resource;
-import org.springframework.hateoas.ResourceSupport;
-import org.springframework.hateoas.Resources;
-import org.springframework.util.Assert;
-import org.springframework.util.StringUtils;
-
-/**
- * Jackson 1 module implementation to render {@link Link} and {@link ResourceSupport} instances in HAL compatible JSON.
- *
- * @deprecated use Jackson 2 instead
- * @author Alexander Baetz
- * @author Oliver Gierke
- */
-@Deprecated
-public class Jackson1HalModule extends SimpleModule {
-
- /**
- * Creates a new {@link Jackson1HalModule}.
- */
- public Jackson1HalModule() {
-
- super("json-hal-module", new Version(1, 0, 0, null));
-
- setMixInAnnotation(Link.class, LinkMixin.class);
- setMixInAnnotation(ResourceSupport.class, ResourceSupportMixin.class);
- setMixInAnnotation(Resources.class, ResourcesMixin.class);
- }
-
- /**
- * Custom {@link JsonSerializer} to render Link instances in HAL compatible JSON. Renders the list as a map, where
- * links are sorted based on their relation.
- *
- * @author Alexander Baetz
- * @author Oliver Gierke
- */
- public static class HalLinkListSerializer extends ContainerSerializerBase> implements
- ContextualSerializer> {
-
- private final BeanProperty property;
-
- /**
- * Creates a new {@link HalLinkListSerializer}.
- */
- public HalLinkListSerializer() {
- this(null);
- }
-
- public HalLinkListSerializer(BeanProperty property) {
- super(List.class, false);
- this.property = property;
- }
-
- /*
- * (non-Javadoc)
- * @see org.codehaus.jackson.map.ser.std.SerializerBase#serialize(java.lang.Object, org.codehaus.jackson.JsonGenerator, org.codehaus.jackson.map.SerializerProvider)
- */
- @Override
- public void serialize(List value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
- JsonGenerationException {
-
- // sort links according to their relation
- Map> sortedLinks = new LinkedHashMap>();
-
- for (Link link : value) {
-
- if (sortedLinks.get(link.getRel()) == null) {
- sortedLinks.put(link.getRel(), new ArrayList());
- }
-
- sortedLinks.get(link.getRel()).add(link);
- }
-
- TypeFactory typeFactory = provider.getConfig().getTypeFactory();
- JavaType keyType = typeFactory.uncheckedSimpleType(String.class);
- JavaType valueType = typeFactory.constructCollectionType(ArrayList.class, Link.class);
- JavaType mapType = typeFactory.constructMapType(HashMap.class, keyType, valueType);
-
- MapSerializer serializer = MapSerializer.construct(new String[] {}, mapType, true, null, null,
- provider.findKeySerializer(keyType, null), new OptionalListSerializer(property));
-
- serializer.serialize(sortedLinks, jgen, provider);
- }
-
- /*
- * (non-Javadoc)
- * @see org.codehaus.jackson.map.ContextualSerializer#createContextual(org.codehaus.jackson.map.SerializationConfig, org.codehaus.jackson.map.BeanProperty)
- */
- @Override
- public JsonSerializer> createContextual(SerializationConfig config, BeanProperty property)
- throws JsonMappingException {
- return new HalLinkListSerializer(property);
- }
-
- /*
- * (non-Javadoc)
- * @see org.codehaus.jackson.map.ser.std.ContainerSerializerBase#_withValueTypeSerializer(org.codehaus.jackson.map.TypeSerializer)
- */
- @Override
- public ContainerSerializerBase> _withValueTypeSerializer(TypeSerializer vts) {
- return null;
- }
- }
-
- /**
- * Custom {@link JsonSerializer} to render {@link Resource}-Lists in HAL compatible JSON. Renders the list as a Map.
- *
- * @author Alexander Baetz
- * @author Oliver Gierke
- */
- public static class HalResourcesSerializer extends ContainerSerializerBase> implements
- ContextualSerializer> {
-
- private final BeanProperty property;
- private final RelProvider relProvider;
-
- /**
- * Creates a new {@link HalLinkListSerializer}.
- */
- public HalResourcesSerializer(RelProvider relProvider) {
- this(null, relProvider);
- }
-
- public HalResourcesSerializer(BeanProperty property, RelProvider relProvider) {
-
- super(Collection.class, false);
- this.property = property;
- this.relProvider = relProvider;
- }
-
- /*
- * (non-Javadoc)
- * @see org.codehaus.jackson.map.ser.std.SerializerBase#serialize(java.lang.Object, org.codehaus.jackson.JsonGenerator, org.codehaus.jackson.map.SerializerProvider)
- */
- @Override
- public void serialize(Collection> value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
- JsonGenerationException {
-
- HalEmbeddedBuilder builder = new HalEmbeddedBuilder(relProvider, false);
-
- for (Object resource : value) {
- builder.add(resource);
- }
-
- TypeFactory typeFactory = provider.getConfig().getTypeFactory();
- JavaType keyType = typeFactory.uncheckedSimpleType(String.class);
- JavaType valueType = typeFactory.constructCollectionType(ArrayList.class, Resource.class);
- JavaType mapType = typeFactory.constructMapType(HashMap.class, keyType, valueType);
-
- MapSerializer serializer = MapSerializer.construct(new String[] {}, mapType, true, null, null,
- provider.findKeySerializer(keyType, null), new OptionalListSerializer(property));
-
- serializer.serialize(builder.asMap(), jgen, provider);
- }
-
- /*
- * (non-Javadoc)
- * @see org.codehaus.jackson.map.ContextualSerializer#createContextual(org.codehaus.jackson.map.SerializationConfig, org.codehaus.jackson.map.BeanProperty)
- */
- @Override
- public JsonSerializer> createContextual(SerializationConfig config, BeanProperty property)
- throws JsonMappingException {
- return new HalResourcesSerializer(property, relProvider);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.codehaus.jackson.map.ser.std.ContainerSerializerBase#_withValueTypeSerializer(org.codehaus.jackson.map.TypeSerializer)
- */
- @Override
- public ContainerSerializerBase> _withValueTypeSerializer(TypeSerializer vts) {
- return null;
- }
- }
-
- /**
- * Custom {@link JsonSerializer} to render Objects in HAL compatible JSON. Renders the Object as immediate object if
- * we have a single one or as array if we have multiple ones.
- *
- * @author Alexander Baetz
- * @author Oliver Gierke
- */
- public static class OptionalListSerializer extends ContainerSerializerBase