DATAREST-1543 - Deprecate RepositoryRestConfiguration.getCorsRegistry().
Slightly tweaked the configuration model to rather handle the CorsRegistry via RepositoryRestConfigurer.configureRepositoryRestConfiguration(…) rather than RepositoryRestConfiguration itself. That allows moving of Spring WebMVC as a dependency in the core module. The original methods exposing access to the CorsRegistry are now still available in deprecated form to not break existing clients. Follow-up ticket: DATAREST-1542.
This commit is contained in:
@@ -26,7 +26,11 @@ 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 {
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
||||
@@ -69,13 +69,13 @@ 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.
|
||||
*/
|
||||
private @Getter @Setter @NonNull LinkRelationProvider relProvider = new EvoInflectorLinkRelationProvider();
|
||||
|
||||
private final RepositoryCorsRegistry corsRegistry = new RepositoryCorsRegistry();
|
||||
private final ProjectionDefinitionConfiguration projectionConfiguration;
|
||||
private final MetadataConfiguration metadataConfiguration;
|
||||
private final EntityLookupConfiguration entityLookupConfiguration;
|
||||
@@ -627,11 +627,19 @@ public class RepositoryRestConfiguration {
|
||||
* @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.
|
||||
|
||||
@@ -18,19 +18,15 @@ package org.springframework.data.rest.core;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
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.data.rest.core.domain.Profile;
|
||||
import org.springframework.data.rest.core.domain.ProfileRepository;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link RepositoryRestConfiguration}.
|
||||
@@ -119,19 +115,6 @@ public class RepositoryRestConfigurationUnitTests {
|
||||
assertThat(configuration.isLookupType(Profile.class)).isTrue();
|
||||
}
|
||||
|
||||
@Test // DATAREST-573
|
||||
public void configuresCorsProcessing() {
|
||||
|
||||
RepositoryCorsRegistry registry = configuration.getCorsRegistry();
|
||||
registry.addMapping("/hello").maxAge(1234);
|
||||
|
||||
Map<String, CorsConfiguration> corsConfigurations = registry.getCorsConfigurations();
|
||||
assertThat(corsConfigurations).containsKey("/hello");
|
||||
|
||||
CorsConfiguration corsConfiguration = corsConfigurations.get("/hello");
|
||||
assertThat(corsConfiguration.getMaxAge()).isEqualTo(1234L);
|
||||
}
|
||||
|
||||
@Test // DATAREST-1076
|
||||
public void rejectsNullRelProvider() {
|
||||
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> configuration.setRelProvider(null));
|
||||
|
||||
Reference in New Issue
Block a user