From 4a1a67b55260aaac1d74b497bc02648fd473ecde Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Wed, 18 Sep 2024 13:33:18 +0200 Subject: [PATCH] Tweak HAL-FORMS setup to fall back on HAL as media type if no templates registered. Fixes GH-2418. --- .../config/RepositoryRestMvcConfiguration.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 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 6e0b2c128..bd9499081 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 @@ -67,7 +67,15 @@ import org.springframework.data.rest.core.support.RepositoryRelProvider; import org.springframework.data.rest.core.support.SelfLinkProvider; import org.springframework.data.rest.core.support.UnwrappingRepositoryInvokerFactory; -import org.springframework.data.rest.webmvc.*; +import org.springframework.data.rest.webmvc.BasePathAwareHandlerMapping; +import org.springframework.data.rest.webmvc.BaseUri; +import org.springframework.data.rest.webmvc.EmbeddedResourcesAssembler; +import org.springframework.data.rest.webmvc.HttpHeadersPreparer; +import org.springframework.data.rest.webmvc.ProfileResourceProcessor; +import org.springframework.data.rest.webmvc.RepositoryRestExceptionHandler; +import org.springframework.data.rest.webmvc.RepositoryRestHandlerAdapter; +import org.springframework.data.rest.webmvc.RepositoryRestHandlerMapping; +import org.springframework.data.rest.webmvc.RestMediaTypes; import org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter; import org.springframework.data.rest.webmvc.alps.RootResourceInformationToAlpsDescriptorConverter; import org.springframework.data.rest.webmvc.convert.UriListHttpMessageConverter; @@ -110,6 +118,7 @@ import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalHandlerInstantiator; import org.springframework.hateoas.mediatype.hal.forms.HalFormsConfiguration; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsHttpMessageConverter; import org.springframework.hateoas.mediatype.hal.forms.Jackson2HalFormsModule; import org.springframework.hateoas.server.LinkRelationProvider; import org.springframework.hateoas.server.core.EvoInflectorLinkRelationProvider; @@ -606,12 +615,7 @@ TypeConstrainedMappingJackson2HttpMessageConverter halFormsJacksonHttpMessageCon defaultedRelProvider, curieProvider, resolver.getObject(), configuration.getHalConfiguration(), applicationContext.getAutowireCapableBeanFactory())); - TypeConstrainedMappingJackson2HttpMessageConverter converter = new TypeConstrainedMappingJackson2HttpMessageConverter( - RepresentationModel.class); - converter.setSupportedMediaTypes(Collections.singletonList(MediaTypes.HAL_FORMS_JSON)); - converter.setObjectMapper(mapper); - - return converter; + return new HalFormsHttpMessageConverter(applicationContext, mapper); } public ObjectMapper halObjectMapper(LinkCollector linkCollector) {