From 35b9de7f6ef1669012cee5337a3943e7c16cc55a Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 1 Aug 2019 13:11:43 -0400 Subject: [PATCH] Updates to support latest hateoas changes. --- .../hateoas/FeignHalAutoConfiguration.java | 13 ++++++------- .../hateoas/FeignHalAutoConfigurationTests.java | 15 ++++++--------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfiguration.java index 9428169a..abedaeb4 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfiguration.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfiguration.java @@ -34,8 +34,8 @@ import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConf import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.support.MessageSourceAccessor; import org.springframework.hateoas.RepresentationModel; +import org.springframework.hateoas.mediatype.MessageResolver; import org.springframework.hateoas.mediatype.hal.CurieProvider; import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider; import org.springframework.hateoas.mediatype.hal.HalConfiguration; @@ -44,7 +44,6 @@ import org.springframework.hateoas.server.LinkRelationProvider; import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; import static org.springframework.hateoas.MediaTypes.HAL_JSON; -import static org.springframework.hateoas.MediaTypes.HAL_JSON_UTF8; /** * @author Hector Espert @@ -63,9 +62,9 @@ public class FeignHalAutoConfiguration { public TypeConstrainedMappingJackson2HttpMessageConverter halJacksonHttpMessageConverter( ObjectProvider objectMapper, ObjectProvider halConfiguration, - ObjectProvider relProvider, + ObjectProvider messageResolver, ObjectProvider curieProvider, - ObjectProvider linkRelationMessageSource) { + ObjectProvider linkRelationProvider) { ObjectMapper mapper = objectMapper.getIfAvailable(ObjectMapper::new).copy(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); @@ -77,8 +76,8 @@ public class FeignHalAutoConfiguration { .getIfAvailable(() -> new DefaultCurieProvider(Collections.emptyMap())); Jackson2HalModule.HalHandlerInstantiator halHandlerInstantiator = new Jackson2HalModule.HalHandlerInstantiator( - relProvider.getObject(), curieProviderInstance, - linkRelationMessageSource.getObject(), configuration); + linkRelationProvider.getIfAvailable(), curieProviderInstance, + messageResolver.getIfAvailable(), configuration); mapper.setHandlerInstantiator(halHandlerInstantiator); @@ -89,7 +88,7 @@ public class FeignHalAutoConfiguration { TypeConstrainedMappingJackson2HttpMessageConverter converter = new TypeConstrainedMappingJackson2HttpMessageConverter( RepresentationModel.class); - converter.setSupportedMediaTypes(Arrays.asList(HAL_JSON, HAL_JSON_UTF8)); + converter.setSupportedMediaTypes(Arrays.asList(HAL_JSON)); converter.setObjectMapper(mapper); return converter; } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfigurationTests.java index 80670f90..5905af40 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfigurationTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalAutoConfigurationTests.java @@ -26,7 +26,7 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.beans.factory.ObjectProvider; -import org.springframework.context.support.MessageSourceAccessor; +import org.springframework.hateoas.mediatype.MessageResolver; import org.springframework.hateoas.mediatype.hal.CurieProvider; import org.springframework.hateoas.mediatype.hal.HalConfiguration; import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; @@ -38,7 +38,6 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.springframework.hateoas.MediaTypes.HAL_JSON; -import static org.springframework.hateoas.MediaTypes.HAL_JSON_UTF8; /** * @author Hector Espert @@ -59,7 +58,7 @@ public class FeignHalAutoConfigurationTests { private ObjectProvider curieProvider; @Mock - private ObjectProvider linkRelationMessageSource; + private ObjectProvider messageResolver; @InjectMocks private FeignHalAutoConfiguration feignHalAutoConfiguration; @@ -71,19 +70,17 @@ public class FeignHalAutoConfigurationTests { when(halConfiguration.getIfAvailable(any())) .thenReturn(mock(HalConfiguration.class)); - when(relProvider.getObject()).thenReturn(mock(LinkRelationProvider.class)); + when(relProvider.getIfAvailable()).thenReturn(mock(LinkRelationProvider.class)); when(curieProvider.getIfAvailable(any())).thenReturn(mock(CurieProvider.class)); - when(linkRelationMessageSource.getObject()) - .thenReturn(mock(MessageSourceAccessor.class)); + when(messageResolver.getIfAvailable()).thenReturn(mock(MessageResolver.class)); TypeConstrainedMappingJackson2HttpMessageConverter converter = feignHalAutoConfiguration .halJacksonHttpMessageConverter(objectMapper, halConfiguration, - relProvider, curieProvider, linkRelationMessageSource); + messageResolver, curieProvider, relProvider); assertThat(converter).isNotNull(); assertThat(converter.getObjectMapper()).isNotNull(); - assertThat(converter.getSupportedMediaTypes()) - .isEqualTo(Arrays.asList(HAL_JSON, HAL_JSON_UTF8)); + assertThat(converter.getSupportedMediaTypes()).isEqualTo(Arrays.asList(HAL_JSON)); assertThat(Jackson2HalModule.isAlreadyRegisteredIn(converter.getObjectMapper())) .isTrue();