@@ -159,18 +159,17 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon
159159 @ Autowired ApplicationContext applicationContext ;
160160
161161 @ Autowired (required = false ) List <BackendIdConverter > idConverters = Collections .emptyList ();
162- @ Autowired (required = false ) List <RepositoryRestConfigurer > configurers = Collections .emptyList ();
163162 @ Autowired (required = false ) List <EntityLookup <?>> lookups = Collections .emptyList ();
164163
165164 @ Autowired List <HttpMessageConverter <?>> defaultMessageConverters ;
166165
167- Optional <LinkRelationProvider > relProvider ;
168- Optional <CurieProvider > curieProvider ;
169- Optional <HalConfiguration > halConfiguration ;
166+ ObjectProvider <LinkRelationProvider > relProvider ;
167+ ObjectProvider <CurieProvider > curieProvider ;
168+ ObjectProvider <HalConfiguration > halConfiguration ;
170169 ObjectProvider <ObjectMapper > objectMapper ;
171170 ObjectProvider <RepresentationModelProcessorInvoker > invoker ;
172- MessageResolver resolver ;
173- GeoModule geoModule ;
171+ ObjectProvider < MessageResolver > resolver ;
172+ ObjectProvider < GeoModule > geoModule ;
174173 ConversionService defaultConversionService ;
175174
176175 private final Lazy <ObjectMapper > mapper ;
@@ -201,13 +200,13 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon
201200 public RepositoryRestMvcConfiguration ( //
202201 ApplicationContext context , //
203202 @ Qualifier ("mvcConversionService" ) ObjectFactory <ConversionService > conversionService , //
204- Optional <LinkRelationProvider > relProvider , //
205- Optional <CurieProvider > curieProvider , //
206- Optional <HalConfiguration > halConfiguration , //
203+ ObjectProvider <LinkRelationProvider > relProvider , //
204+ ObjectProvider <CurieProvider > curieProvider , //
205+ ObjectProvider <HalConfiguration > halConfiguration , //
207206 ObjectProvider <ObjectMapper > objectMapper , //
208207 ObjectProvider <RepresentationModelProcessorInvoker > invoker , //
209- MessageResolver resolver , //
210- GeoModule geoModule ) {
208+ ObjectProvider < MessageResolver > resolver , //
209+ ObjectProvider < GeoModule > geoModule ) {
211210
212211 super (context , conversionService );
213212
@@ -390,7 +389,7 @@ public BaseUri baseUri(RepositoryRestConfiguration repositoryRestConfiguration)
390389 * @return
391390 */
392391 @ Bean
393- public AnnotatedEventHandlerInvoker annotatedEventHandlerInvoker () {
392+ public static AnnotatedEventHandlerInvoker annotatedEventHandlerInvoker () {
394393 return new AnnotatedEventHandlerInvoker ();
395394 }
396395
@@ -457,13 +456,17 @@ public ETagArgumentResolver eTagArgumentResolver() {
457456 * @throws Exception
458457 */
459458 @ Bean
460- public RepositoryEntityLinks entityLinks (HateoasPageableHandlerMethodArgumentResolver pageableResolver ,
461- Repositories repositories , RepositoryResourceMappings resourceMappings ,
462- PluginRegistry <BackendIdConverter , Class <?>> backendIdConverterRegistry ,
463- RepositoryRestConfiguration repositoryRestConfiguration , HateoasSortHandlerMethodArgumentResolver sortResolver ) {
459+ public RepositoryEntityLinks entityLinks (ObjectFactory <HateoasPageableHandlerMethodArgumentResolver > pageableResolver , //
460+ Repositories repositories , //
461+ RepositoryResourceMappings resourceMappings , //
462+ PluginRegistry <BackendIdConverter , //
463+ Class <?>> backendIdConverterRegistry , //
464+ RepositoryRestConfiguration repositoryRestConfiguration , //
465+ ObjectFactory <HateoasSortHandlerMethodArgumentResolver > sortResolver ) {
464466
465- PagingAndSortingTemplateVariables templateVariables = new ArgumentResolverPagingAndSortingTemplateVariables (
466- pageableResolver , sortResolver );
467+ Lazy <PagingAndSortingTemplateVariables > templateVariables = Lazy
468+ .of (() -> new ArgumentResolverPagingAndSortingTemplateVariables (pageableResolver .getObject (),
469+ sortResolver .getObject ()));
467470
468471 return new RepositoryEntityLinks (repositories , resourceMappings , repositoryRestConfiguration , templateVariables ,
469472 backendIdConverterRegistry );
@@ -498,7 +501,8 @@ public PersistentEntityToJsonSchemaConverter jsonSchemaConverter(PersistentEntit
498501 Associations associationLinks , @ Qualifier RepositoryInvokerFactory repositoryInvokerFactory ,
499502 RepositoryRestConfiguration repositoryRestConfiguration ) {
500503
501- return new PersistentEntityToJsonSchemaConverter (persistentEntities , associationLinks , resolver , objectMapper (),
504+ return new PersistentEntityToJsonSchemaConverter (persistentEntities , associationLinks , resolver .getObject (),
505+ objectMapper (),
502506 repositoryRestConfiguration , new ValueTypeSchemaPropertyCustomizerFactory (repositoryInvokerFactory ));
503507 }
504508
@@ -570,11 +574,11 @@ public TypeConstrainedMappingJackson2HttpMessageConverter halJacksonHttpMessageC
570574
571575 public ObjectMapper halObjectMapper (LinkCollector linkCollector ) {
572576
573- LinkRelationProvider defaultedRelProvider = this .relProvider .orElseGet (EvoInflectorLinkRelationProvider ::new );
574- HalConfiguration halConfiguration = this .halConfiguration .orElseGet (HalConfiguration ::new );
575-
577+ LinkRelationProvider defaultedRelProvider = this .relProvider .getIfUnique (EvoInflectorLinkRelationProvider ::new );
578+ HalConfiguration halConfiguration = this .halConfiguration .getIfUnique (HalConfiguration ::new );
576579 HalHandlerInstantiator instantiator = new HalHandlerInstantiator (defaultedRelProvider ,
577- curieProvider .orElse (new DefaultCurieProvider (Collections .emptyMap ())), resolver , halConfiguration );
580+ curieProvider .getIfUnique (() -> new DefaultCurieProvider (Collections .emptyMap ())), resolver .getObject (),
581+ halConfiguration );
578582
579583 ObjectMapper mapper = basicObjectMapper ();
580584 mapper .registerModule (persistentEntityJackson2Module (linkCollector ));
@@ -886,7 +890,7 @@ protected ObjectMapper basicObjectMapper() {
886890 // Configure custom Modules
887891 configurerDelegate .get ().configureJacksonObjectMapper (objectMapper );
888892
889- objectMapper .registerModule (geoModule );
893+ objectMapper .registerModule (geoModule . getObject () );
890894
891895 if (repositoryRestConfiguration .get ().isEnableEnumTranslation ()) {
892896 objectMapper .registerModule (new JacksonSerializers (enumTranslator .get ()));
@@ -927,7 +931,7 @@ public RootResourceInformationToAlpsDescriptorConverter alpsConverter(Repositori
927931 Associations associationLinks , RepositoryRestConfiguration repositoryRestConfiguration ) {
928932
929933 return new RootResourceInformationToAlpsDescriptorConverter (associationLinks , repositories , persistentEntities ,
930- entityLinks , resolver , repositoryRestConfiguration , objectMapper (), enumTranslator );
934+ entityLinks , resolver . getObject () , repositoryRestConfiguration , objectMapper (), enumTranslator );
931935 }
932936
933937 @ Bean
0 commit comments