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() {
|
||||
|
||||
Reference in New Issue
Block a user