#833 - Fix each media type with a unique LinkDiscoverer bean name.

This commit is contained in:
Greg Turnquist
2019-02-25 18:08:22 -06:00
committed by Oliver Drotbohm
parent 7733f39796
commit cc57e2eb44
11 changed files with 160 additions and 20 deletions

View File

@@ -36,7 +36,7 @@ import com.fasterxml.jackson.databind.Module;
class CollectionJsonMediaTypeConfiguration implements HypermediaMappingInformation {
@Bean
LinkDiscoverer linkDiscoverer() {
LinkDiscoverer collectionJsonLinkDiscoverer() {
return new CollectionJsonLinkDiscoverer();
}

View File

@@ -23,9 +23,11 @@ import org.springframework.hateoas.config.MediaTypeConfigurationProvider;
import org.springframework.http.MediaType;
/**
* @author Oliver Gierke
* {@link MediaTypeConfigurationProvider} for Collection/JSON.
*
* @author Oliver Drotbohm
*/
class CollectionJsonConfigurationProvider implements MediaTypeConfigurationProvider {
class CollectionJsonMediaTypeConfigurationProvider implements MediaTypeConfigurationProvider {
/*
* (non-Javadoc)

View File

@@ -131,6 +131,7 @@ class WebFluxHateoasConfiguration {
MimeType[] mimeTypes = hypermedia.getMediaTypes().toArray(new MimeType[0]);
ObjectMapper objectMapper = hypermedia.configureObjectMapper(this.mapper.copy());
customCodecs.encoder(new Jackson2JsonEncoder(objectMapper, mimeTypes));
customCodecs.decoder(new Jackson2JsonDecoder(objectMapper, mimeTypes));
});

View File

@@ -48,7 +48,7 @@ public class HalMediaTypeConfiguration implements HypermediaMappingInformation {
private final MessageSourceAccessor messageSourceAccessor;
@Bean
LinkDiscoverer linkDiscoverer() {
LinkDiscoverer halLinkDisocoverer() {
return new HalLinkDiscoverer();
}

View File

@@ -27,7 +27,7 @@ import org.springframework.http.MediaType;
*
* @author Oliver Drotbohm
*/
class HalConfigurationProvider implements MediaTypeConfigurationProvider {
class HalMediaTypeConfigurationProvider implements MediaTypeConfigurationProvider {
/*
* (non-Javadoc)

View File

@@ -49,7 +49,7 @@ class HalFormsMediaTypeConfiguration implements HypermediaMappingInformation {
private final MessageSourceAccessor messageSourceAccessor;
@Bean
LinkDiscoverer linkDiscoverer() {
LinkDiscoverer halFormsLinkDiscoverer() {
return new HalFormsLinkDiscoverer();
}
@@ -69,15 +69,13 @@ class HalFormsMediaTypeConfiguration implements HypermediaMappingInformation {
@Override
public ObjectMapper configureObjectMapper(ObjectMapper mapper) {
ObjectMapper mapper1 = mapper.copy();
mapper1.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper1.registerModule(new Jackson2HalFormsModule());
mapper1.setHandlerInstantiator(
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.registerModule(new Jackson2HalFormsModule());
mapper.setHandlerInstantiator(
new Jackson2HalFormsModule.HalFormsHandlerInstantiator(relProvider, curieProvider.getIfAvailable(),
messageSourceAccessor, true, halFormsConfiguration.getIfAvailable(HalFormsConfiguration::new)));
return mapper1;
return mapper;
}
}

View File

@@ -27,7 +27,7 @@ import org.springframework.http.MediaType;
*
* @author Oliver Drotbohm
*/
class HalFormsConfigurationProvider implements MediaTypeConfigurationProvider {
class HalFormsMediaTypeConfigurationProvider implements MediaTypeConfigurationProvider {
/*
* (non-Javadoc)

View File

@@ -36,7 +36,7 @@ import com.fasterxml.jackson.databind.Module;
class UberMediaTypeConfiguration implements HypermediaMappingInformation {
@Bean
LinkDiscoverer linkDiscoverer() {
LinkDiscoverer uberLinkDiscoverer() {
return new UberLinkDiscoverer();
}