diff --git a/spring-data-rest-core/pom.xml b/spring-data-rest-core/pom.xml
index 9665c1ee7..2d64e2a6e 100644
--- a/spring-data-rest-core/pom.xml
+++ b/spring-data-rest-core/pom.xml
@@ -34,13 +34,6 @@
${spring-hateoas}
-
-
-
- org.springframework
- spring-webmvc
-
-
org.springframework.data
spring-data-commons
diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryRestConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryRestConfiguration.java
index 3514127a5..0c1b10fb1 100644
--- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryRestConfiguration.java
+++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryRestConfiguration.java
@@ -33,7 +33,6 @@ import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider;
import org.springframework.http.MediaType;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
-import org.springframework.web.servlet.config.annotation.CorsRegistration;
/**
* Spring Data REST configuration options.
@@ -65,7 +64,6 @@ public class RepositoryRestConfiguration {
private ResourceMappingConfiguration repoMappings = new ResourceMappingConfiguration();
private RepositoryDetectionStrategy repositoryDetectionStrategy = RepositoryDetectionStrategies.DEFAULT;
private boolean exposeRepositoryMethodsByDefault = true;
- private RepositoryCorsRegistry corsRegistry = new RepositoryCorsRegistry();
/**
* The {@link RelProvider} to be used to calculate the link relation defaults for repositories.
@@ -633,26 +631,6 @@ public class RepositoryRestConfiguration {
setExposeRepositoryMethodsByDefault(false);
}
- /**
- * Returns the {@link RepositoryCorsRegistry} to configure Cross-origin resource sharing.
- *
- * @return the {@link RepositoryCorsRegistry}.
- * @since 2.6
- * @see RepositoryCorsRegistry
- * @see CorsRegistration
- * @deprecated since 3.4. Rather implement
- * {@code RepositoryRestConfigurer.configureRepositoryRestConfiguration(RepositoryRestConfiguration, CorsRegistry)}
- * instead to get access to the registry.
- */
- @Deprecated
- public RepositoryCorsRegistry getCorsRegistry() {
- return corsRegistry;
- }
-
- protected void setCorsRegistry(RepositoryCorsRegistry corsRegistry) {
- this.corsRegistry = corsRegistry;
- }
-
/**
* Returns the {@link EntityLookupRegistrar} to create custom {@link EntityLookup} instances registered in the
* configuration.
diff --git a/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/ProfileIntegrationTests.java b/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/ProfileIntegrationTests.java
index cc136194b..928b546ca 100755
--- a/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/ProfileIntegrationTests.java
+++ b/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/ProfileIntegrationTests.java
@@ -22,8 +22,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.data.rest.tests.AbstractControllerIntegrationTests;
import org.springframework.data.rest.tests.TestMvcClient;
import org.springframework.data.rest.webmvc.ProfileController;
@@ -57,11 +57,11 @@ public class ProfileIntegrationTests extends AbstractControllerIntegrationTests
private static final String ROOT_URI = "/api";
@Configuration
- static class Config implements RepositoryRestConfigurer {
+ static class Config {
- @Override
- public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
- config.setBasePath(ROOT_URI);
+ @Bean
+ RepositoryRestConfigurer configurer() {
+ return RepositoryRestConfigurer.withConfig(config -> config.setBasePath(ROOT_URI));
}
}
diff --git a/spring-data-rest-tests/spring-data-rest-tests-mongodb/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java b/spring-data-rest-tests/spring-data-rest-tests-mongodb/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java
index ec7aec71b..00a3204df 100755
--- a/spring-data-rest-tests/spring-data-rest-tests-mongodb/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java
+++ b/spring-data-rest-tests/spring-data-rest-tests-mongodb/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java
@@ -28,6 +28,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.mapping.context.PersistentEntities;
@@ -71,15 +72,18 @@ public class PersistentEntityToJsonSchemaConverterUnitTests {
@Configuration
@Import(RepositoryRestMvcConfiguration.class)
- static class TestConfiguration implements RepositoryRestConfigurer {
+ static class TestConfiguration {
- @Override
- public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
+ @Bean
+ public RepositoryRestConfigurer customizations() {
- config.getMetadataConfiguration().registerJsonSchemaFormat(JsonSchemaFormat.EMAIL, EmailAddress.class);
- config.getMetadataConfiguration().registerFormattingPatternFor("[A-Z]+", TypeWithPattern.class);
+ return RepositoryRestConfigurer.withConfig(config -> {
- config.exposeIdsFor(Profile.class);
+ config.getMetadataConfiguration().registerJsonSchemaFormat(JsonSchemaFormat.EMAIL, EmailAddress.class);
+ config.getMetadataConfiguration().registerFormattingPatternFor("[A-Z]+", TypeWithPattern.class);
+
+ config.exposeIdsFor(Profile.class);
+ });
}
}
diff --git a/spring-data-rest-tests/spring-data-rest-tests-shop/src/test/java/org/springframework/data/rest/tests/shop/ShopConfiguration.java b/spring-data-rest-tests/spring-data-rest-tests-shop/src/test/java/org/springframework/data/rest/tests/shop/ShopConfiguration.java
index c6303be3e..c731451bb 100644
--- a/spring-data-rest-tests/spring-data-rest-tests-shop/src/test/java/org/springframework/data/rest/tests/shop/ShopConfiguration.java
+++ b/spring-data-rest-tests/spring-data-rest-tests-shop/src/test/java/org/springframework/data/rest/tests/shop/ShopConfiguration.java
@@ -23,7 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.map.repository.config.EnableMapRepositories;
-import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
+import org.springframework.data.rest.core.config.EntityLookupRegistrar;
import org.springframework.data.rest.tests.shop.Customer.Gender;
import org.springframework.data.rest.tests.shop.Product.ProductNameOnlyProjection;
import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer;
@@ -53,7 +53,7 @@ public class ShopConfiguration {
*/
@Override
public EntityModel process(EntityModel resource) {
- resource.add(new Link("foo", "bar"));
+ resource.add(Link.of("foo", "bar"));
return resource;
}
};
@@ -70,7 +70,7 @@ public class ShopConfiguration {
*/
@Override
public EntityModel process(EntityModel resource) {
- resource.add(new Link("alpha", "beta"));
+ resource.add(Link.of("alpha", "beta"));
return resource;
}
};
@@ -98,16 +98,17 @@ public class ShopConfiguration {
@Configuration
static class SpringDataRestConfiguration implements RepositoryRestConfigurer {
- /*
- * (non-Javadoc)
- * @see org.springframework.data.rest.webmvc.config.RepositoryRestConfigurerAdapter#configureRepositoryRestConfiguration(org.springframework.data.rest.core.config.RepositoryRestConfiguration)
- */
- @Override
- public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
+ @Bean
+ RepositoryRestConfigurer configurer() {
- config.withEntityLookup().forRepository(ProductRepository.class, Product::getName, ProductRepository::findByName);
- config.withEntityLookup().forValueRepository(LineItemTypeRepository.class, LineItemType::getName,
- LineItemTypeRepository::findByName);
+ return RepositoryRestConfigurer.withConfig(config -> {
+
+ EntityLookupRegistrar lookup = config.withEntityLookup();
+
+ lookup.forRepository(ProductRepository.class, Product::getName, ProductRepository::findByName);
+ lookup.forValueRepository(LineItemTypeRepository.class, LineItemType::getName,
+ LineItemTypeRepository::findByName);
+ });
}
}
}
diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryCorsRegistry.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryCorsRegistry.java
similarity index 78%
rename from spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryCorsRegistry.java
rename to spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryCorsRegistry.java
index 1fcdeed78..e18b50c9e 100644
--- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/RepositoryCorsRegistry.java
+++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryCorsRegistry.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.rest.core.config;
+package org.springframework.data.rest.webmvc.config;
import java.util.Map;
@@ -26,12 +26,8 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry;
*
* @author Mark Paluch
* @since 2.6
- * @deprecated since 3.4. Rather implement
- * {@code RepositoryRestConfigurer.configureRepositoryRestConfiguration(RepositoryRestConfiguration, CorsRegistry)}
- * instead to get access to the registry.
*/
-@Deprecated
-public class RepositoryCorsRegistry extends CorsRegistry {
+class RepositoryCorsRegistry extends CorsRegistry {
/* (non-Javadoc)
* @see org.springframework.web.servlet.config.annotation.CorsRegistry#getCorsConfigurations()
diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurer.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurer.java
index 2afcb662f..f1878c0eb 100644
--- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurer.java
+++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurer.java
@@ -54,10 +54,10 @@ public interface RepositoryRestConfigurer {
/*
* (non-Javadoc)
- * @see org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer#configureRepositoryRestConfiguration(org.springframework.data.rest.core.config.RepositoryRestConfiguration)
+ * @see org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer#configureRepositoryRestConfiguration(org.springframework.data.rest.core.config.RepositoryRestConfiguration, org.springframework.web.servlet.config.annotation.CorsRegistry)
*/
@Override
- public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
+ public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
consumer.accept(config);
}
};
@@ -88,16 +88,6 @@ public interface RepositoryRestConfigurer {
};
}
- /**
- * Override this method to add additional configuration.
- *
- * @param config Main configuration bean.
- * @deprecated since 3.4, implement
- * {@link #configureRepositoryRestConfiguration(RepositoryRestConfiguration, CorsRegistry)} instead.
- */
- @Deprecated
- default void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {}
-
/**
* Override this method to add additional configuration.
*
diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurerDelegate.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurerDelegate.java
index 9cbe470a1..b23355b7b 100644
--- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurerDelegate.java
+++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurerDelegate.java
@@ -50,18 +50,6 @@ public class RepositoryRestConfigurerDelegate implements RepositoryRestConfigure
this.delegates = delegates;
}
- /*
- * (non-Javadoc)
- * @see org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer#configureRepositoryRestConfiguration(org.springframework.data.rest.core.config.RepositoryRestConfiguration)
- */
- @Override
- public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
-
- for (RepositoryRestConfigurer configurer : delegates) {
- configurer.configureRepositoryRestConfiguration(config);
- }
- }
-
/*
* (non-Javadoc)
* @see org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer#configureRepositoryRestConfiguration(org.springframework.data.rest.core.config.RepositoryRestConfiguration, org.springframework.web.servlet.config.annotation.CorsRegistry)
@@ -69,8 +57,6 @@ public class RepositoryRestConfigurerDelegate implements RepositoryRestConfigure
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
- configureRepositoryRestConfiguration(config);
-
for (RepositoryRestConfigurer configurer : delegates) {
configurer.configureRepositoryRestConfiguration(config, cors);
}
diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java
index ae48d066f..e8a3f18fb 100644
--- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java
+++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java
@@ -56,7 +56,6 @@ import org.springframework.data.rest.core.UriToEntityConverter;
import org.springframework.data.rest.core.config.MetadataConfiguration;
import org.springframework.data.rest.core.config.Projection;
import org.springframework.data.rest.core.config.ProjectionDefinitionConfiguration;
-import org.springframework.data.rest.core.config.RepositoryCorsRegistry;
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker;
import org.springframework.data.rest.core.event.ValidatingRepositoryEventListener;
diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/WebMvcRepositoryRestConfiguration.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/WebMvcRepositoryRestConfiguration.java
index 66be8c048..c0f3a1383 100644
--- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/WebMvcRepositoryRestConfiguration.java
+++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/WebMvcRepositoryRestConfiguration.java
@@ -20,7 +20,6 @@ import java.util.Map;
import org.springframework.data.rest.core.config.EnumTranslationConfiguration;
import org.springframework.data.rest.core.config.MetadataConfiguration;
import org.springframework.data.rest.core.config.ProjectionDefinitionConfiguration;
-import org.springframework.data.rest.core.config.RepositoryCorsRegistry;
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.util.Assert;
import org.springframework.web.cors.CorsConfiguration;
@@ -54,7 +53,6 @@ class WebMvcRepositoryRestConfiguration extends RepositoryRestConfiguration impl
Assert.notNull(registry, "CorsRegistry must not be null!");
this.registry = registry;
- setCorsRegistry(registry);
}
private final RepositoryCorsRegistry registry;