From 9172c171a6d681bfdc9f12ee098b773bd8bef70c Mon Sep 17 00:00:00 2001 From: "petar.tahchiev" Date: Sat, 24 Jun 2023 22:24:03 +0300 Subject: [PATCH] Allow users to provide custom UriToEntityConverter --- .../config/RepositoryRestMvcConfiguration.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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 d168d1572..9146e8d7e 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 @@ -324,14 +324,13 @@ public PersistentEntities persistentEntities() { @Bean @Qualifier - public DefaultFormattingConversionService defaultConversionService(PersistentEntities persistentEntities, - RepositoryInvokerFactory repositoryInvokerFactory, Repositories repositories) { + public DefaultFormattingConversionService defaultConversionService() { DefaultFormattingConversionService conversionService = (DefaultFormattingConversionService) defaultConversionService; // Add Spring Data Commons formatters conversionService - .addConverter(new UriToEntityConverter(persistentEntities, repositoryInvokerFactory, repositories)); + .addConverter(uriToEntityConverter()); conversionService.addConverter(StringToLdapNameConverter.INSTANCE); addFormatters(conversionService); @@ -740,7 +739,7 @@ protected Module persistentEntityJackson2Module(LinkCollector linkCollector) { LookupObjectSerializer lookupObjectSerializer = new LookupObjectSerializer(PluginRegistry.of(getEntityLookups())); return new PersistentEntityJackson2Module(associationLinks.get(), persistentEntities.get(), - new UriToEntityConverter(persistentEntities.get(), repositoryInvokerFactory.get(), repositories.get()), + uriToEntityConverter(), linkCollector, repositoryInvokerFactory.get(), lookupObjectSerializer, invoker.getObject(), assembler); } @@ -951,8 +950,7 @@ protected ObjectMapper basicObjectMapper() { configurerDelegate.get().configureJacksonObjectMapper(objectMapper); objectMapper.registerModule(geoModule.getObject()); - objectMapper.registerModule(new AggregateReferenceResolvingModule( - new UriToEntityConverter(persistentEntities.get(), repositoryInvokerFactory.get(), repositories.get()), + objectMapper.registerModule(new AggregateReferenceResolvingModule(uriToEntityConverter(), resourceMappings.get())); if (repositoryRestConfiguration.get().isEnableEnumTranslation()) { @@ -964,6 +962,10 @@ protected ObjectMapper basicObjectMapper() { return objectMapper; } + protected UriToEntityConverter uriToEntityConverter() { + return new UriToEntityConverter(persistentEntities.get(), repositoryInvokerFactory.get(), repositories.get()); + } + @Bean public EnumTranslator enumTranslator(MessageResolver resolver) { return new EnumTranslator(resolver);