DATAREST-1341 - Upgrade to latest API changes in Spring HATEOAS.
This commit is contained in:
@@ -32,8 +32,8 @@ import org.springframework.data.rest.core.mapping.RepositoryDetectionStrategy;
|
||||
import org.springframework.data.rest.core.mapping.RepositoryDetectionStrategy.RepositoryDetectionStrategies;
|
||||
import org.springframework.data.rest.core.support.EntityLookup;
|
||||
import org.springframework.hateoas.MediaTypes;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -73,7 +73,7 @@ public class RepositoryRestConfiguration {
|
||||
/**
|
||||
* The {@link RelProvider} to be used to calculate the link relation defaults for repositories.
|
||||
*/
|
||||
private @Getter @Setter @NonNull RelProvider relProvider = new EvoInflectorRelProvider();
|
||||
private @Getter @Setter @NonNull LinkRelationProvider relProvider = new EvoInflectorLinkRelationProvider();
|
||||
|
||||
private final RepositoryCorsRegistry corsRegistry = new RepositoryCorsRegistry();
|
||||
private final ProjectionDefinitionConfiguration projectionConfiguration;
|
||||
@@ -579,7 +579,7 @@ public class RepositoryRestConfiguration {
|
||||
|
||||
/**
|
||||
* Returns whether to expose repository methods by default.
|
||||
*
|
||||
*
|
||||
* @since 3.1
|
||||
* @see #setExposeRepositoryMethodsByDefault(boolean)
|
||||
*/
|
||||
@@ -592,7 +592,7 @@ public class RepositoryRestConfiguration {
|
||||
* {@link RestResource} explicitly to expose the default set of resources (opt-in). If this is set to {@literal true}
|
||||
* (default), repository methods methods are exposed unless explictly annotated with {@link RestResource} and
|
||||
* {@link RestResource#exported()} set to {@literal false}.
|
||||
*
|
||||
*
|
||||
* @since 3.1
|
||||
* @see #setRepositoryDetectionStrategy(RepositoryDetectionStrategy)
|
||||
*/
|
||||
@@ -607,7 +607,7 @@ public class RepositoryRestConfiguration {
|
||||
* {@link #setRepositoryDetectionStrategy(RepositoryDetectionStrategy)} to
|
||||
* {@link RepositoryDetectionStrategies#ANNOTATED} and setting {@link #setExposeRepositoryMethodsByDefault(boolean)}
|
||||
* to {@literal false}.
|
||||
*
|
||||
*
|
||||
* @since 3.1
|
||||
* @see #setRepositoryDetectionStrategy(RepositoryDetectionStrategy)
|
||||
* @see #setExposeRepositoryMethodsByDefault(boolean)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.rest.core.mapping;
|
||||
|
||||
import org.atteo.evo.inflector.English;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
|
||||
/**
|
||||
* {@link TypeBasedCollectionResourceMapping} extension to use Evo Inflector to pluralize the simple class name by as
|
||||
@@ -32,7 +32,7 @@ class EvoInflectorTypeBasedCollectionResourceMapping extends TypeBasedCollection
|
||||
* @param type must not be {@literal null}.
|
||||
* @param relProvider must not be {@literal null}.
|
||||
*/
|
||||
public EvoInflectorTypeBasedCollectionResourceMapping(Class<?> type, RelProvider relProvider) {
|
||||
public EvoInflectorTypeBasedCollectionResourceMapping(Class<?> type, LinkRelationProvider relProvider) {
|
||||
super(type, relProvider);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ import org.springframework.data.rest.core.Path;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.hateoas.LinkRelation;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -48,7 +48,7 @@ class RepositoryCollectionResourceMapping implements CollectionResourceMapping {
|
||||
private final RepositoryMetadata metadata;
|
||||
|
||||
public RepositoryCollectionResourceMapping(RepositoryMetadata metadata, RepositoryDetectionStrategy strategy) {
|
||||
this(metadata, strategy, new EvoInflectorRelProvider());
|
||||
this(metadata, strategy, new EvoInflectorLinkRelationProvider());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,10 +60,10 @@ class RepositoryCollectionResourceMapping implements CollectionResourceMapping {
|
||||
* @param repositoryType must not be {@literal null}.
|
||||
*/
|
||||
RepositoryCollectionResourceMapping(RepositoryMetadata metadata, RepositoryDetectionStrategy strategy,
|
||||
RelProvider relProvider) {
|
||||
LinkRelationProvider relProvider) {
|
||||
|
||||
Assert.notNull(metadata, "Repository metadata must not be null!");
|
||||
Assert.notNull(relProvider, "RelProvider must not be null!");
|
||||
Assert.notNull(relProvider, "LinkRelationProvider must not be null!");
|
||||
Assert.notNull(strategy, "RepositoryDetectionStrategy must not be null!");
|
||||
|
||||
Class<?> repositoryType = metadata.getRepositoryInterface();
|
||||
|
||||
@@ -28,7 +28,7 @@ import org.springframework.data.repository.core.RepositoryInformation;
|
||||
import org.springframework.data.repository.support.Repositories;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -74,7 +74,7 @@ public class RepositoryResourceMappings extends PersistentEntitiesResourceMappin
|
||||
PersistentEntity<?, ?> entity = repositories.getPersistentEntity(type);
|
||||
|
||||
RepositoryDetectionStrategy strategy = configuration.getRepositoryDetectionStrategy();
|
||||
RelProvider provider = configuration.getRelProvider();
|
||||
LinkRelationProvider provider = configuration.getRelProvider();
|
||||
|
||||
CollectionResourceMapping mapping = new RepositoryCollectionResourceMapping(repositoryInformation, strategy,
|
||||
provider);
|
||||
|
||||
@@ -22,8 +22,8 @@ import org.springframework.data.rest.core.Path;
|
||||
import org.springframework.data.rest.core.annotation.Description;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.hateoas.LinkRelation;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -36,7 +36,7 @@ import org.springframework.util.StringUtils;
|
||||
class TypeBasedCollectionResourceMapping implements CollectionResourceMapping {
|
||||
|
||||
private final Class<?> type;
|
||||
private final RelProvider relProvider;
|
||||
private final LinkRelationProvider relProvider;
|
||||
private final RestResource annotation;
|
||||
private final Description description;
|
||||
|
||||
@@ -46,7 +46,7 @@ class TypeBasedCollectionResourceMapping implements CollectionResourceMapping {
|
||||
* @param type must not be {@literal null}.
|
||||
*/
|
||||
public TypeBasedCollectionResourceMapping(Class<?> type) {
|
||||
this(type, new EvoInflectorRelProvider());
|
||||
this(type, new EvoInflectorLinkRelationProvider());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -55,10 +55,10 @@ class TypeBasedCollectionResourceMapping implements CollectionResourceMapping {
|
||||
* @param type must not be {@literal null}.
|
||||
* @param relProvider must not be {@literal null}.
|
||||
*/
|
||||
public TypeBasedCollectionResourceMapping(Class<?> type, RelProvider relProvider) {
|
||||
public TypeBasedCollectionResourceMapping(Class<?> type, LinkRelationProvider relProvider) {
|
||||
|
||||
Assert.notNull(type, "Type must not be null!");
|
||||
Assert.notNull(relProvider, "RelProvider must not be null!");
|
||||
Assert.notNull(relProvider, "LinkRelationProvider must not be null!");
|
||||
|
||||
this.type = type;
|
||||
this.relProvider = relProvider;
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.data.rest.core.mapping.ResourceMappings;
|
||||
import org.springframework.hateoas.LinkRelation;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ import org.springframework.util.Assert;
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
@Order(Ordered.LOWEST_PRECEDENCE + 10)
|
||||
public class RepositoryRelProvider implements RelProvider {
|
||||
public class RepositoryRelProvider implements LinkRelationProvider {
|
||||
|
||||
private final ObjectFactory<ResourceMappings> mappings;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class RepositoryRelProvider implements RelProvider {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.hateoas.server.RelProvider#getCollectionResourceRelFor(java.lang.Class)
|
||||
* @see org.springframework.hateoas.server.LinkRelationProvider#getCollectionResourceRelFor(java.lang.Class)
|
||||
*/
|
||||
@Override
|
||||
public LinkRelation getCollectionResourceRelFor(Class<?> type) {
|
||||
@@ -55,7 +55,7 @@ public class RepositoryRelProvider implements RelProvider {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.hateoas.server.RelProvider#getItemResourceRelFor(java.lang.Class)
|
||||
* @see org.springframework.hateoas.server.LinkRelationProvider#getItemResourceRelFor(java.lang.Class)
|
||||
*/
|
||||
@Override
|
||||
public LinkRelation getItemResourceRelFor(Class<?> type) {
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
package org.springframework.data.rest.core.support;
|
||||
|
||||
import org.springframework.hateoas.LinkRelation;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
public class SimpleRelProvider implements RelProvider {
|
||||
public class SimpleRelProvider implements LinkRelationProvider {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
@@ -35,7 +35,7 @@ public class SimpleRelProvider implements RelProvider {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.hateoas.server.RelProvider#getItemResourceRelFor(java.lang.Class)
|
||||
* @see org.springframework.hateoas.server.LinkRelationProvider#getItemResourceRelFor(java.lang.Class)
|
||||
*/
|
||||
@Override
|
||||
public LinkRelation getItemResourceRelFor(Class<?> type) {
|
||||
@@ -46,7 +46,7 @@ public class SimpleRelProvider implements RelProvider {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.hateoas.server.RelProvider#getCollectionResourceRelFor(java.lang.Class)
|
||||
* @see org.springframework.hateoas.server.LinkRelationProvider#getCollectionResourceRelFor(java.lang.Class)
|
||||
*/
|
||||
@Override
|
||||
public LinkRelation getCollectionResourceRelFor(Class<?> type) {
|
||||
|
||||
@@ -27,8 +27,8 @@ import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.data.rest.core.domain.Person;
|
||||
import org.springframework.data.rest.core.mapping.ResourceMapping;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
|
||||
/**
|
||||
* Ensure the {@link ResourceMapping} components convey the correct information.
|
||||
@@ -38,7 +38,7 @@ import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
@SuppressWarnings("deprecation")
|
||||
public class ResourceMappingUnitTests {
|
||||
|
||||
RelProvider relProvider = new EvoInflectorRelProvider();
|
||||
LinkRelationProvider relProvider = new EvoInflectorLinkRelationProvider();
|
||||
|
||||
@Test
|
||||
public void shouldDetectPathAndRemoveLeadingSlashIfAny() {
|
||||
|
||||
@@ -49,11 +49,11 @@ import org.springframework.data.rest.webmvc.support.PagingAndSortingTemplateVari
|
||||
import org.springframework.data.rest.webmvc.support.RepositoryEntityLinks;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
import org.springframework.format.support.FormattingConversionService;
|
||||
import org.springframework.hateoas.server.EntityLinks;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule;
|
||||
import org.springframework.hateoas.server.EntityLinks;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.hateoas.server.mvc.RepresentationModelProcessorInvoker;
|
||||
import org.springframework.plugin.core.PluginRegistry;
|
||||
|
||||
@@ -128,7 +128,7 @@ public class RepositoryTestsConfig {
|
||||
@Bean
|
||||
public ObjectMapper objectMapper() {
|
||||
|
||||
RelProvider relProvider = new EvoInflectorRelProvider();
|
||||
LinkRelationProvider relProvider = new EvoInflectorLinkRelationProvider();
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
mapper.registerModule(new Jackson2HalModule());
|
||||
|
||||
@@ -41,7 +41,7 @@ import org.springframework.hateoas.IanaLinkRelations;
|
||||
import org.springframework.hateoas.Link;
|
||||
import org.springframework.hateoas.LinkRelation;
|
||||
import org.springframework.hateoas.Links;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -71,7 +71,7 @@ public class JpaWebTests extends CommonWebTests {
|
||||
|
||||
@Autowired TestDataPopulator loader;
|
||||
@Autowired ResourceMappings mappings;
|
||||
@Autowired RelProvider relProvider;
|
||||
@Autowired LinkRelationProvider relProvider;
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
|
||||
@@ -50,11 +50,11 @@ import org.springframework.data.rest.webmvc.support.PagingAndSortingTemplateVari
|
||||
import org.springframework.data.rest.webmvc.support.RepositoryEntityLinks;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
import org.springframework.format.support.FormattingConversionService;
|
||||
import org.springframework.hateoas.server.EntityLinks;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule;
|
||||
import org.springframework.hateoas.server.EntityLinks;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.hateoas.server.mvc.RepresentationModelProcessorInvoker;
|
||||
import org.springframework.plugin.core.PluginRegistry;
|
||||
|
||||
@@ -136,7 +136,7 @@ public class RepositoryTestsConfig {
|
||||
@Bean
|
||||
public ObjectMapper objectMapper() {
|
||||
|
||||
RelProvider relProvider = new EvoInflectorRelProvider();
|
||||
LinkRelationProvider relProvider = new EvoInflectorLinkRelationProvider();
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
mapper.registerModule(new Jackson2HalModule());
|
||||
|
||||
@@ -97,16 +97,16 @@ import org.springframework.data.web.config.HateoasAwareSpringDataWebConfiguratio
|
||||
import org.springframework.data.web.config.SpringDataJacksonConfiguration;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
import org.springframework.hateoas.MediaTypes;
|
||||
import org.springframework.hateoas.server.RelProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.RepresentationModel;
|
||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.CurieProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.HalConfiguration;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalHandlerInstantiator;
|
||||
import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.RepresentationModelProcessor;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
import org.springframework.hateoas.server.mvc.RepresentationModelProcessorInvoker;
|
||||
import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter;
|
||||
import org.springframework.http.MediaType;
|
||||
@@ -160,7 +160,7 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon
|
||||
@Autowired(required = false) List<RepositoryRestConfigurer> configurers = Collections.emptyList();
|
||||
@Autowired(required = false) List<EntityLookup<?>> lookups = Collections.emptyList();
|
||||
|
||||
@Autowired Optional<RelProvider> relProvider;
|
||||
@Autowired Optional<LinkRelationProvider> relProvider;
|
||||
@Autowired Optional<CurieProvider> curieProvider;
|
||||
@Autowired Optional<HalConfiguration> halConfiguration;
|
||||
@Autowired ObjectProvider<ObjectMapper> objectMapper;
|
||||
@@ -499,7 +499,7 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon
|
||||
|
||||
public ObjectMapper halObjectMapper() {
|
||||
|
||||
RelProvider defaultedRelProvider = this.relProvider.orElseGet(EvoInflectorRelProvider::new);
|
||||
LinkRelationProvider defaultedRelProvider = this.relProvider.orElseGet(EvoInflectorLinkRelationProvider::new);
|
||||
HalConfiguration halConfiguration = this.halConfiguration.orElseGet(HalConfiguration::new);
|
||||
|
||||
HalHandlerInstantiator instantiator = new HalHandlerInstantiator(defaultedRelProvider, curieProvider.orElse(null),
|
||||
@@ -527,8 +527,8 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon
|
||||
@SuppressWarnings("rawtypes")
|
||||
public RepresentationModelProcessorInvoker resourceProcessorInvoker() {
|
||||
|
||||
Collection<RepresentationModelProcessor> beans = applicationContext.getBeansOfType(RepresentationModelProcessor.class, false, false)
|
||||
.values();
|
||||
Collection<RepresentationModelProcessor> beans = applicationContext
|
||||
.getBeansOfType(RepresentationModelProcessor.class, false, false).values();
|
||||
List<RepresentationModelProcessor<?>> processors = new ArrayList<RepresentationModelProcessor<?>>(beans.size());
|
||||
|
||||
for (RepresentationModelProcessor<?> bean : beans) {
|
||||
|
||||
@@ -49,9 +49,9 @@ import org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module;
|
||||
import org.springframework.data.web.HateoasPageableHandlerMethodArgumentResolver;
|
||||
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
|
||||
import org.springframework.format.datetime.DateFormatter;
|
||||
import org.springframework.hateoas.client.LinkDiscoverers;
|
||||
import org.springframework.hateoas.MediaTypes;
|
||||
import org.springframework.hateoas.server.core.DefaultRelProvider;
|
||||
import org.springframework.hateoas.client.LinkDiscoverers;
|
||||
import org.springframework.hateoas.server.core.DefaultLinkRelationProvider;
|
||||
import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
|
||||
@@ -218,8 +218,8 @@ public class RepositoryRestMvConfigurationIntegrationTests {
|
||||
static class ExtendingConfiguration {
|
||||
|
||||
@Bean
|
||||
DefaultRelProvider relProvider() {
|
||||
return new DefaultRelProvider();
|
||||
DefaultLinkRelationProvider relProvider() {
|
||||
return new DefaultLinkRelationProvider();
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -24,16 +24,16 @@ import org.junit.Test;
|
||||
import org.springframework.data.projection.ProjectionFactory;
|
||||
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
|
||||
import org.springframework.hateoas.CollectionModel;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorRelProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalHandlerInstantiator;
|
||||
import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jayway.jsonpath.JsonPath;
|
||||
|
||||
/**
|
||||
* Integration tests for Jackson marshalling of projected objects.
|
||||
* Integration tests for Jackson marshaling of projected objects.
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
@@ -47,7 +47,7 @@ public class ProjectionJacksonIntegrationTests {
|
||||
|
||||
this.mapper = new ObjectMapper();
|
||||
this.mapper.registerModule(new Jackson2HalModule());
|
||||
this.mapper.setHandlerInstantiator(new HalHandlerInstantiator(new EvoInflectorRelProvider(), null, null));
|
||||
this.mapper.setHandlerInstantiator(new HalHandlerInstantiator(new EvoInflectorLinkRelationProvider(), null, null));
|
||||
}
|
||||
|
||||
@Test // DATAREST-221
|
||||
@@ -61,7 +61,7 @@ public class ProjectionJacksonIntegrationTests {
|
||||
CustomerProjection projection = factory.createProjection(CustomerProjection.class, customer);
|
||||
|
||||
String result = mapper.writeValueAsString(projection);
|
||||
assertThat(JsonPath.<String> read(result, "$.firstname")).isEqualTo((Object) "Dave");
|
||||
assertThat(JsonPath.<String> read(result, "$.firstname")).isEqualTo("Dave");
|
||||
}
|
||||
|
||||
@Test // DATAREST-221
|
||||
@@ -70,7 +70,7 @@ public class ProjectionJacksonIntegrationTests {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule(new Jackson2HalModule());
|
||||
mapper.setHandlerInstantiator(
|
||||
new Jackson2HalModule.HalHandlerInstantiator(new EvoInflectorRelProvider(), null, null));
|
||||
new Jackson2HalModule.HalHandlerInstantiator(new EvoInflectorLinkRelationProvider(), null, null));
|
||||
|
||||
Customer customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
@@ -82,7 +82,7 @@ public class ProjectionJacksonIntegrationTests {
|
||||
|
||||
String result = mapper.writeValueAsString(resources);
|
||||
|
||||
assertThat(JsonPath.<String> read(result, "$._embedded.customers[0].firstname")).isEqualTo((Object) "Dave");
|
||||
assertThat(JsonPath.<String> read(result, "$._embedded.customers[0].firstname")).isEqualTo("Dave");
|
||||
}
|
||||
|
||||
static class Customer {
|
||||
|
||||
Reference in New Issue
Block a user