diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/AbstractMappingContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/AbstractMappingContentTypeResolver.java index 37f9f77d4a6..a1f993f9ca4 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/AbstractMappingContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/AbstractMappingContentTypeResolver.java @@ -81,7 +81,7 @@ public abstract class AbstractMappingContentTypeResolver implements MappingConte } - // ContentTypeResolver implementation + // RequestedContentTypeResolver implementation @Override public List resolveMediaTypes(ServerWebExchange exchange) diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolver.java index 68df9065082..a60a9145127 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolver.java @@ -27,7 +27,7 @@ import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; /** - * A {@link ContentTypeResolver} that contains and delegates to a list of other + * A {@link RequestedContentTypeResolver} that contains and delegates to a list of other * resolvers. * *

Also an implementation of {@link MappingContentTypeResolver} that delegates @@ -38,10 +38,10 @@ import org.springframework.web.server.ServerWebExchange; */ public class CompositeContentTypeResolver implements MappingContentTypeResolver { - private final List resolvers = new ArrayList<>(); + private final List resolvers = new ArrayList<>(); - public CompositeContentTypeResolver(List resolvers) { + public CompositeContentTypeResolver(List resolvers) { Assert.notEmpty(resolvers, "At least one resolver is expected."); this.resolvers.addAll(resolvers); } @@ -50,18 +50,18 @@ public class CompositeContentTypeResolver implements MappingContentTypeResolver /** * Return a read-only list of the configured resolvers. */ - public List getResolvers() { + public List getResolvers() { return Collections.unmodifiableList(this.resolvers); } /** - * Return the first {@link ContentTypeResolver} of the given type. + * Return the first {@link RequestedContentTypeResolver} of the given type. * @param resolverType the resolver type * @return the first matching resolver or {@code null}. */ @SuppressWarnings("unchecked") - public T findResolver(Class resolverType) { - for (ContentTypeResolver resolver : this.resolvers) { + public T findResolver(Class resolverType) { + for (RequestedContentTypeResolver resolver : this.resolvers) { if (resolverType.isInstance(resolver)) { return (T) resolver; } @@ -72,7 +72,7 @@ public class CompositeContentTypeResolver implements MappingContentTypeResolver @Override public List resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException { - for (ContentTypeResolver resolver : this.resolvers) { + for (RequestedContentTypeResolver resolver : this.resolvers) { List mediaTypes = resolver.resolveMediaTypes(exchange); if (mediaTypes.isEmpty() || (mediaTypes.size() == 1 && mediaTypes.contains(MediaType.ALL))) { continue; @@ -85,7 +85,7 @@ public class CompositeContentTypeResolver implements MappingContentTypeResolver @Override public Set getKeysFor(MediaType mediaType) { Set result = new LinkedHashSet<>(); - for (ContentTypeResolver resolver : this.resolvers) { + for (RequestedContentTypeResolver resolver : this.resolvers) { if (resolver instanceof MappingContentTypeResolver) result.addAll(((MappingContentTypeResolver) resolver).getKeysFor(mediaType)); } @@ -95,7 +95,7 @@ public class CompositeContentTypeResolver implements MappingContentTypeResolver @Override public Set getKeys() { Set result = new LinkedHashSet<>(); - for (ContentTypeResolver resolver : this.resolvers) { + for (RequestedContentTypeResolver resolver : this.resolvers) { if (resolver instanceof MappingContentTypeResolver) result.addAll(((MappingContentTypeResolver) resolver).getKeys()); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/FixedContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/FixedContentTypeResolver.java index a6c73bc0d11..5f145945a2f 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/FixedContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/FixedContentTypeResolver.java @@ -23,11 +23,11 @@ import org.springframework.http.MediaType; import org.springframework.web.server.ServerWebExchange; /** - * A {@link ContentTypeResolver} that resolves to a fixed list of media types. + * A {@link RequestedContentTypeResolver} that resolves to a fixed list of media types. * * @author Rossen Stoyanchev */ -public class FixedContentTypeResolver implements ContentTypeResolver { +public class FixedContentTypeResolver implements RequestedContentTypeResolver { private final List mediaTypes; diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/HeaderContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/HeaderContentTypeResolver.java index 4ef573a93c2..f6c2f04865d 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/HeaderContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/HeaderContentTypeResolver.java @@ -23,11 +23,11 @@ import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; /** - * A {@link ContentTypeResolver} that checks the 'Accept' request header. + * A {@link RequestedContentTypeResolver} that checks the 'Accept' request header. * * @author Rossen Stoyanchev */ -public class HeaderContentTypeResolver implements ContentTypeResolver { +public class HeaderContentTypeResolver implements RequestedContentTypeResolver { @Override public List resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException { diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/MappingContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/MappingContentTypeResolver.java index 645beed0776..64bd272b1c7 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/MappingContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/MappingContentTypeResolver.java @@ -16,18 +16,17 @@ package org.springframework.web.reactive.accept; -import java.util.List; import java.util.Set; import org.springframework.http.MediaType; /** - * An extension of {@link ContentTypeResolver} that maintains a mapping between + * An extension of {@link RequestedContentTypeResolver} that maintains a mapping between * keys (e.g. file extension, query parameter) and media types. * * @author Rossen Stoyanchev */ -public interface MappingContentTypeResolver extends ContentTypeResolver { +public interface MappingContentTypeResolver extends RequestedContentTypeResolver { /** * Resolve the given media type to a list of path extensions. diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ParameterContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ParameterContentTypeResolver.java index 70641c3b451..63971b7e831 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ParameterContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ParameterContentTypeResolver.java @@ -27,7 +27,7 @@ import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; /** - * A {@link ContentTypeResolver} that extracts the media type lookup key from a + * A {@link RequestedContentTypeResolver} that extracts the media type lookup key from a * known query parameter named "format" by default. *s * @author Rossen Stoyanchev diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/PathExtensionContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/PathExtensionContentTypeResolver.java index 23267979434..d9f07e25030 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/PathExtensionContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/PathExtensionContentTypeResolver.java @@ -32,7 +32,7 @@ import org.springframework.web.server.ServerWebExchange; import org.springframework.web.util.WebUtils; /** - * A {@link ContentTypeResolver} that extracts the file extension from the + * A {@link RequestedContentTypeResolver} that extracts the file extension from the * request path and uses that as the media type lookup key. * *

If the file extension is not found in the explicit registrations provided diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ContentTypeResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolver.java similarity index 84% rename from spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ContentTypeResolver.java rename to spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolver.java index e359cdeed58..c2476f1b116 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/ContentTypeResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolver.java @@ -22,10 +22,11 @@ import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; /** + * Strategy for resolving the requested media types for a {@code ServerWebExchange}. * * @author Rossen Stoyanchev */ -public interface ContentTypeResolver { +public interface RequestedContentTypeResolver { /** * Resolve the given request to a list of requested media types. The returned @@ -36,6 +37,7 @@ public interface ContentTypeResolver { * * @throws NotAcceptableStatusException if the requested media types is invalid */ - List resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException; + List resolveMediaTypes(ServerWebExchange exchange) + throws NotAcceptableStatusException; } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolverBuilder.java similarity index 86% rename from spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java rename to spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolverBuilder.java index f545c089110..d11cbf64e86 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/RequestedContentTypeResolverBuilder.java @@ -28,7 +28,7 @@ import org.springframework.util.CollectionUtils; /** * Factory to create a {@link CompositeContentTypeResolver} and configure it with - * one or more {@link ContentTypeResolver} instances with build style methods. + * one or more {@link RequestedContentTypeResolver} instances with build style methods. * The following table shows methods, resulting strategy instances, and if in * use by default: * @@ -60,7 +60,7 @@ import org.springframework.util.CollectionUtils; * * * {@link #defaultContentTypeResolver} - * {@link ContentTypeResolver} + * {@link RequestedContentTypeResolver} * Not set * * @@ -79,7 +79,7 @@ import org.springframework.util.CollectionUtils; * * @author Rossen Stoyanchev */ -public class CompositeContentTypeResolverBuilder { +public class RequestedContentTypeResolverBuilder { private boolean favorPathExtension = true; @@ -95,7 +95,7 @@ public class CompositeContentTypeResolverBuilder { private String parameterName = "format"; - private ContentTypeResolver contentTypeResolver; + private RequestedContentTypeResolver contentTypeResolver; /** @@ -105,7 +105,7 @@ public class CompositeContentTypeResolverBuilder { * for {@code /hotels.pdf} will be interpreted as a request for * {@code "application/pdf"} regardless of the 'Accept' header. */ - public CompositeContentTypeResolverBuilder favorPathExtension(boolean favorPathExtension) { + public RequestedContentTypeResolverBuilder favorPathExtension(boolean favorPathExtension) { this.favorPathExtension = favorPathExtension; return this; } @@ -121,7 +121,7 @@ public class CompositeContentTypeResolverBuilder { * resolve path extensions. To change this behavior see {@link #useJaf}. * @param mediaTypes media type mappings */ - public CompositeContentTypeResolverBuilder mediaTypes(Map mediaTypes) { + public RequestedContentTypeResolverBuilder mediaTypes(Map mediaTypes) { if (!CollectionUtils.isEmpty(mediaTypes)) { for (Map.Entry entry : mediaTypes.entrySet()) { String extension = entry.getKey().toLowerCase(Locale.ENGLISH); @@ -134,7 +134,7 @@ public class CompositeContentTypeResolverBuilder { /** * Alternative to {@link #mediaTypes} to add a single mapping. */ - public CompositeContentTypeResolverBuilder mediaType(String key, MediaType mediaType) { + public RequestedContentTypeResolverBuilder mediaType(String key, MediaType mediaType) { this.mediaTypes.put(key, mediaType); return this; } @@ -146,7 +146,7 @@ public class CompositeContentTypeResolverBuilder { * there is no match. *

By default this is set to {@code true}. */ - public CompositeContentTypeResolverBuilder ignoreUnknownPathExtensions(boolean ignore) { + public RequestedContentTypeResolverBuilder ignoreUnknownPathExtensions(boolean ignore) { this.ignoreUnknownPathExtensions = ignore; return this; } @@ -158,7 +158,7 @@ public class CompositeContentTypeResolverBuilder { *

By default this is not set in which case * {@code PathExtensionContentNegotiationStrategy} will use JAF if available. */ - public CompositeContentTypeResolverBuilder useJaf(boolean useJaf) { + public RequestedContentTypeResolverBuilder useJaf(boolean useJaf) { this.useJaf = useJaf; return this; } @@ -170,7 +170,7 @@ public class CompositeContentTypeResolverBuilder { *

By default this is set to {@code false}. * @see #parameterName */ - public CompositeContentTypeResolverBuilder favorParameter(boolean favorParameter) { + public RequestedContentTypeResolverBuilder favorParameter(boolean favorParameter) { this.favorParameter = favorParameter; return this; } @@ -179,7 +179,7 @@ public class CompositeContentTypeResolverBuilder { * Set the query parameter name to use when {@link #favorParameter} is on. *

The default parameter name is {@code "format"}. */ - public CompositeContentTypeResolverBuilder parameterName(String parameterName) { + public RequestedContentTypeResolverBuilder parameterName(String parameterName) { Assert.notNull(parameterName, "parameterName is required"); this.parameterName = parameterName; return this; @@ -189,7 +189,7 @@ public class CompositeContentTypeResolverBuilder { * Whether to disable checking the 'Accept' request header. *

By default this value is set to {@code false}. */ - public CompositeContentTypeResolverBuilder ignoreAcceptHeader(boolean ignoreAcceptHeader) { + public RequestedContentTypeResolverBuilder ignoreAcceptHeader(boolean ignoreAcceptHeader) { this.ignoreAcceptHeader = ignoreAcceptHeader; return this; } @@ -199,25 +199,25 @@ public class CompositeContentTypeResolverBuilder { *

By default this is not set. * @see #defaultContentTypeResolver */ - public CompositeContentTypeResolverBuilder defaultContentType(MediaType contentType) { + public RequestedContentTypeResolverBuilder defaultContentType(MediaType contentType) { this.contentTypeResolver = new FixedContentTypeResolver(contentType); return this; } /** - * Set a custom {@link ContentTypeResolver} to use to determine + * Set a custom {@link RequestedContentTypeResolver} to use to determine * the content type to use when no content type is requested. *

By default this is not set. * @see #defaultContentType */ - public CompositeContentTypeResolverBuilder defaultContentTypeResolver(ContentTypeResolver resolver) { + public RequestedContentTypeResolverBuilder defaultContentTypeResolver(RequestedContentTypeResolver resolver) { this.contentTypeResolver = resolver; return this; } - public CompositeContentTypeResolver build() { - List resolvers = new ArrayList<>(); + public RequestedContentTypeResolver build() { + List resolvers = new ArrayList<>(); if (this.favorPathExtension) { PathExtensionContentTypeResolver resolver = new PathExtensionContentTypeResolver(this.mediaTypes); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java index d0c701188bf..a962687b73e 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java @@ -27,8 +27,8 @@ import java.util.Set; import org.springframework.http.MediaType; import org.springframework.web.accept.ContentNegotiationManager; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.reactive.accept.CompositeContentTypeResolverBuilder; -import org.springframework.web.reactive.accept.ContentTypeResolver; +import org.springframework.web.reactive.accept.RequestedContentTypeResolverBuilder; +import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.HeaderContentTypeResolver; import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; @@ -52,7 +52,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition expressions; - private final ContentTypeResolver contentTypeResolver; + private final RequestedContentTypeResolver contentTypeResolver; /** @@ -83,7 +83,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition(parseExpressions(produces, headers)); Collections.sort(this.expressions); this.contentTypeResolver = (resolver != null ? resolver : new HeaderContentTypeResolver()); @@ -93,12 +93,12 @@ public final class ProducesRequestCondition extends AbstractRequestCondition expressions, - ContentTypeResolver resolver) { + RequestedContentTypeResolver resolver) { this.expressions = new ArrayList<>(expressions); Collections.sort(this.expressions); this.contentTypeResolver = (resolver != null ? - resolver : new CompositeContentTypeResolverBuilder().build()); + resolver : new RequestedContentTypeResolverBuilder().build()); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfo.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfo.java index bebceeb3e2e..0d09461d207 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfo.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfo.java @@ -21,7 +21,7 @@ import java.util.Set; import org.springframework.util.PathMatcher; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.reactive.accept.ContentTypeResolver; +import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.MappingContentTypeResolver; import org.springframework.web.reactive.result.condition.ConsumesRequestCondition; import org.springframework.web.reactive.result.condition.HeadersRequestCondition; @@ -468,7 +468,7 @@ public final class RequestMappingInfo implements RequestCondition getFileExtensions() { - ContentTypeResolver resolver = getContentTypeResolver(); + RequestedContentTypeResolver resolver = getContentTypeResolver(); if (useRegisteredSuffixPatternMatch() && resolver != null) { if (resolver instanceof MappingContentTypeResolver) { return ((MappingContentTypeResolver) resolver).getKeys(); @@ -590,11 +590,11 @@ public final class RequestMappingInfo implements RequestConditionBy default this is not set. */ - public void setContentTypeResolver(ContentTypeResolver resolver) { + public void setContentTypeResolver(RequestedContentTypeResolver resolver) { this.contentTypeResolver = resolver; } - public ContentTypeResolver getContentTypeResolver() { + public RequestedContentTypeResolver getContentTypeResolver() { return this.contentTypeResolver; } } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java index c27350e7079..879f34cdc4e 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java @@ -26,8 +26,8 @@ import org.springframework.stereotype.Controller; import org.springframework.util.Assert; import org.springframework.util.StringValueResolver; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.reactive.accept.CompositeContentTypeResolverBuilder; -import org.springframework.web.reactive.accept.ContentTypeResolver; +import org.springframework.web.reactive.accept.RequestedContentTypeResolverBuilder; +import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.result.condition.RequestCondition; import org.springframework.web.reactive.result.method.RequestMappingInfo; import org.springframework.web.reactive.result.method.RequestMappingInfoHandlerMapping; @@ -48,7 +48,7 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi private boolean useTrailingSlashMatch = true; - private ContentTypeResolver contentTypeResolver = new CompositeContentTypeResolverBuilder().build(); + private RequestedContentTypeResolver contentTypeResolver = new RequestedContentTypeResolverBuilder().build(); private StringValueResolver embeddedValueResolver; @@ -70,7 +70,7 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi /** * Whether suffix pattern matching should work only against path extensions - * explicitly registered with the configured {@link ContentTypeResolver}. This + * explicitly registered with the configured {@link RequestedContentTypeResolver}. This * is generally recommended to reduce ambiguity and to avoid issues such as * when a "." appears in the path for other reasons. *

By default this is set to "true". @@ -90,11 +90,11 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi } /** - * Set the {@link ContentTypeResolver} to use to determine requested media types. + * Set the {@link RequestedContentTypeResolver} to use to determine requested media types. * If not set, the default constructor is used. */ - public void setContentTypeResolver(ContentTypeResolver contentTypeResolver) { - Assert.notNull(contentTypeResolver, "'ContentTypeResolver' must not be null"); + public void setContentTypeResolver(RequestedContentTypeResolver contentTypeResolver) { + Assert.notNull(contentTypeResolver, "'contentTypeResolver' must not be null"); this.contentTypeResolver = contentTypeResolver; } @@ -139,9 +139,9 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi } /** - * Return the configured {@link ContentTypeResolver}. + * Return the configured {@link RequestedContentTypeResolver}. */ - public ContentTypeResolver getContentTypeResolver() { + public RequestedContentTypeResolver getContentTypeResolver() { return this.contentTypeResolver; } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java index 976b6f193df..9299bdb0f11 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java @@ -42,7 +42,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.HandlerResultHandler; -import org.springframework.web.reactive.accept.ContentTypeResolver; +import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.HeaderContentTypeResolver; import org.springframework.web.server.NotAcceptableStatusException; import org.springframework.web.server.ServerWebExchange; @@ -66,7 +66,7 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered private final ConversionService conversionService; - private final ContentTypeResolver contentTypeResolver; + private final RequestedContentTypeResolver contentTypeResolver; private final List supportedMediaTypes; @@ -89,13 +89,13 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered /** * Constructor with message converters, a {@code ConversionService}, and a - * {@code ContentTypeResolver}. + * {@code RequestedContentTypeResolver}. * * @param messageConverters converters for writing the response body with * @param conversionService for converting to Flux and Mono from other reactive types */ public ResponseBodyResultHandler(List> messageConverters, - ConversionService conversionService, ContentTypeResolver contentTypeResolver) { + ConversionService conversionService, RequestedContentTypeResolver contentTypeResolver) { Assert.notEmpty(messageConverters, "At least one message converter is required."); Assert.notNull(conversionService, "'conversionService' is required."); diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilderTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilderTests.java index 6295b997a26..9575082149d 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilderTests.java @@ -35,7 +35,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; /** - * Unit tests for {@link CompositeContentTypeResolverBuilder}. + * Unit tests for {@link RequestedContentTypeResolverBuilder}. * * @author Rossen Stoyanchev */ @@ -43,7 +43,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test public void defaultSettings() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder().build(); + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder().build(); ServerWebExchange exchange = createExchange("/flower.gif"); @@ -70,7 +70,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test public void favorPath() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .favorPathExtension(true) .mediaType("foo", new MediaType("application", "foo")) .mediaType("bar", new MediaType("application", "bar")) @@ -90,7 +90,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test public void favorPathWithJafTurnedOff() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .favorPathExtension(true) .useJaf(false) .build(); @@ -104,7 +104,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test(expected = NotAcceptableStatusException.class) // SPR-10170 public void favorPathWithIgnoreUnknownPathExtensionTurnedOff() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .favorPathExtension(true) .ignoreUnknownPathExtensions(false) .build(); @@ -117,7 +117,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test public void favorParameter() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .favorParameter(true) .mediaType("json", MediaType.APPLICATION_JSON) .build(); @@ -131,7 +131,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test(expected = NotAcceptableStatusException.class) // SPR-10170 public void favorParameterWithUnknownMediaType() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .favorParameter(true) .build(); @@ -143,7 +143,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test public void ignoreAcceptHeader() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .ignoreAcceptHeader(true) .build(); @@ -155,7 +155,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test // SPR-10513 public void setDefaultContentType() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .defaultContentType(MediaType.APPLICATION_JSON) .build(); @@ -172,7 +172,7 @@ public class CompositeContentTypeResolverBuilderTests { @Test // SPR-12286 public void setDefaultContentTypeWithStrategy() throws Exception { - CompositeContentTypeResolver resolver = new CompositeContentTypeResolverBuilder() + RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder() .defaultContentTypeResolver(new FixedContentTypeResolver(MediaType.APPLICATION_JSON)) .build(); diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandlerTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandlerTests.java index c30e36d075c..208bc45ed5e 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandlerTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandlerTests.java @@ -42,7 +42,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.HandlerResultHandler; -import org.springframework.web.reactive.accept.ContentTypeResolver; +import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.FixedContentTypeResolver; import org.springframework.web.reactive.accept.HeaderContentTypeResolver; import org.springframework.web.server.ServerWebExchange; @@ -90,7 +90,7 @@ public class ResponseBodyResultHandlerTests { @Test public void contentTypeResolver() throws Exception { MediaType contentType = MediaType.APPLICATION_JSON_UTF8; - ContentTypeResolver resolver = new FixedContentTypeResolver(contentType); + RequestedContentTypeResolver resolver = new FixedContentTypeResolver(contentType); HandlerResultHandler handler = createHandler(resolver, new StringEncoder(), new JacksonJsonEncoder()); ServerWebExchange exchange = createExchange("/foo"); @@ -105,7 +105,7 @@ public class ResponseBodyResultHandlerTests { return createHandler(new HeaderContentTypeResolver(), encoders); } - private ResponseBodyResultHandler createHandler(ContentTypeResolver resolver, + private ResponseBodyResultHandler createHandler(RequestedContentTypeResolver resolver, Encoder... encoders) { List> converters = Arrays.stream(encoders)