Skip to content

Commit 4b36f79

Browse files
committed
Avoid RepositoryRestConfigurerDelegate exposed as bean.
Improving the configuration situation for RRCD, whose bean declaration required access to all RepositoryRestConfigurer instances while implementing the interface itself, too. We now rather hide the creation of that instance in a Lazy as it doesn't need any kind of lifecycle management.
1 parent 17538c6 commit 4b36f79

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestConfigurerDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
* @author Oliver Gierke
3535
* @soundtrack Florian Reichelt & Max Ender - Abschlusskonzert (https://www.youtube.com/watch?v=5WP0P-ndinY)
3636
*/
37-
public class RepositoryRestConfigurerDelegate implements RepositoryRestConfigurer {
37+
class RepositoryRestConfigurerDelegate implements RepositoryRestConfigurer {
3838

3939
private final Iterable<RepositoryRestConfigurer> delegates;
4040

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -259,17 +259,16 @@ public RepositoryRestMvcConfiguration( //
259259
new DefaultRepositoryInvokerFactory(repositories.get(), defaultConversionService), getEntityLookups()));
260260

261261
this.defaultConversionService = new DefaultFormattingConversionService();
262-
this.configurerDelegate = Lazy.of(() -> context.getBean(RepositoryRestConfigurerDelegate.class));
262+
263+
this.configurerDelegate = Lazy.of(() -> {
264+
return new RepositoryRestConfigurerDelegate(context.getBeansOfType(RepositoryRestConfigurer.class).values());
265+
});
266+
263267
this.repositoryRestConfiguration = Lazy.of(() -> context.getBean(RepositoryRestConfiguration.class));
264268
this.pageableResolver = Lazy.of(() -> context.getBean(HateoasPageableHandlerMethodArgumentResolver.class));
265269
this.sortResolver = Lazy.of(() -> context.getBean(HateoasSortHandlerMethodArgumentResolver.class));
266270
}
267271

268-
@Bean
269-
public static RepositoryRestConfigurerDelegate configurerDelegate(List<RepositoryRestConfigurer> configurers) {
270-
return new RepositoryRestConfigurerDelegate(configurers);
271-
}
272-
273272
/*
274273
* (non-Javadoc)
275274
* @see org.springframework.beans.factory.BeanClassLoaderAware#setBeanClassLoader(java.lang.ClassLoader)
@@ -305,8 +304,7 @@ public PersistentEntities persistentEntities() {
305304
@Bean
306305
@Qualifier
307306
public DefaultFormattingConversionService defaultConversionService(PersistentEntities persistentEntities,
308-
RepositoryInvokerFactory repositoryInvokerFactory, Repositories repositories,
309-
RepositoryRestConfigurerDelegate configurerDelegate) {
307+
RepositoryInvokerFactory repositoryInvokerFactory, Repositories repositories) {
310308

311309
DefaultFormattingConversionService conversionService = (DefaultFormattingConversionService) defaultConversionService;
312310

@@ -316,7 +314,7 @@ public DefaultFormattingConversionService defaultConversionService(PersistentEnt
316314
conversionService.addConverter(StringToLdapNameConverter.INSTANCE);
317315
addFormatters(conversionService);
318316

319-
configurerDelegate.configureConversionService(conversionService);
317+
configurerDelegate.get().configureConversionService(conversionService);
320318

321319
return conversionService;
322320
}
@@ -326,11 +324,11 @@ public DefaultFormattingConversionService defaultConversionService(PersistentEnt
326324
* {@link org.springframework.validation.Validator} instances assigned to specific domain types.
327325
*/
328326
@Bean
329-
public ValidatingRepositoryEventListener validatingRepositoryEventListener(ObjectFactory<PersistentEntities> entities,
330-
RepositoryRestConfigurerDelegate configurerDelegate) {
327+
public ValidatingRepositoryEventListener validatingRepositoryEventListener(
328+
ObjectFactory<PersistentEntities> entities) {
331329

332330
ValidatingRepositoryEventListener listener = new ValidatingRepositoryEventListener(entities);
333-
configurerDelegate.configureValidatingRepositoryEventListener(listener);
331+
configurerDelegate.get().configureValidatingRepositoryEventListener(listener);
334332

335333
return listener;
336334
}
@@ -775,7 +773,7 @@ public List<HttpMessageConverter<?>> defaultMessageConverters(
775773
@Qualifier("halJacksonHttpMessageConverter") TypeConstrainedMappingJackson2HttpMessageConverter halJacksonHttpMessageConverter,
776774
@Qualifier("halFormsJacksonHttpMessageConverter") TypeConstrainedMappingJackson2HttpMessageConverter halFormsJacksonHttpMessageConverter,
777775
AlpsJsonHttpMessageConverter alpsJsonHttpMessageConverter,
778-
UriListHttpMessageConverter uriListHttpMessageConverter, RepositoryRestConfigurerDelegate configurerDelegate,
776+
UriListHttpMessageConverter uriListHttpMessageConverter,
779777
RepositoryRestConfiguration repositoryRestConfiguration) {
780778

781779
List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
@@ -800,7 +798,7 @@ public List<HttpMessageConverter<?>> defaultMessageConverters(
800798
messageConverters.add(fallbackJsonConverter);
801799
messageConverters.add(uriListHttpMessageConverter);
802800

803-
configurerDelegate.configureHttpMessageConverters(messageConverters);
801+
configurerDelegate.get().configureHttpMessageConverters(messageConverters);
804802

805803
return messageConverters;
806804
}

0 commit comments

Comments
 (0)