Rename ContentTypeResolver to RequestedContentTypeResolver

This commit is contained in:
Rossen Stoyanchev 2016-05-26 11:05:48 -04:00
parent 37404d081e
commit a017e2848a
15 changed files with 78 additions and 77 deletions

View File

@ -81,7 +81,7 @@ public abstract class AbstractMappingContentTypeResolver implements MappingConte
}
// ContentTypeResolver implementation
// RequestedContentTypeResolver implementation
@Override
public List<MediaType> resolveMediaTypes(ServerWebExchange exchange)

View File

@ -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.
*
* <p>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<ContentTypeResolver> resolvers = new ArrayList<>();
private final List<RequestedContentTypeResolver> resolvers = new ArrayList<>();
public CompositeContentTypeResolver(List<ContentTypeResolver> resolvers) {
public CompositeContentTypeResolver(List<RequestedContentTypeResolver> 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<ContentTypeResolver> getResolvers() {
public List<RequestedContentTypeResolver> 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 extends ContentTypeResolver> T findResolver(Class<T> resolverType) {
for (ContentTypeResolver resolver : this.resolvers) {
public <T extends RequestedContentTypeResolver> T findResolver(Class<T> 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<MediaType> resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException {
for (ContentTypeResolver resolver : this.resolvers) {
for (RequestedContentTypeResolver resolver : this.resolvers) {
List<MediaType> 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<String> getKeysFor(MediaType mediaType) {
Set<String> 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<String> getKeys() {
Set<String> result = new LinkedHashSet<>();
for (ContentTypeResolver resolver : this.resolvers) {
for (RequestedContentTypeResolver resolver : this.resolvers) {
if (resolver instanceof MappingContentTypeResolver)
result.addAll(((MappingContentTypeResolver) resolver).getKeys());
}

View File

@ -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<MediaType> mediaTypes;

View File

@ -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<MediaType> resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException {

View File

@ -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.

View File

@ -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

View File

@ -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.
*
* <p>If the file extension is not found in the explicit registrations provided

View File

@ -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<MediaType> resolveMediaTypes(ServerWebExchange exchange) throws NotAcceptableStatusException;
List<MediaType> resolveMediaTypes(ServerWebExchange exchange)
throws NotAcceptableStatusException;
}

View File

@ -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;
* </tr>
* <tr>
* <td>{@link #defaultContentTypeResolver}</td>
* <td>{@link ContentTypeResolver}</td>
* <td>{@link RequestedContentTypeResolver}</td>
* <td>Not set</td>
* </tr>
* </table>
@ -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<String, MediaType> mediaTypes) {
public RequestedContentTypeResolverBuilder mediaTypes(Map<String, MediaType> mediaTypes) {
if (!CollectionUtils.isEmpty(mediaTypes)) {
for (Map.Entry<String, MediaType> 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.
* <p>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 {
* <p>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 {
* <p>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.
* <p>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.
* <p>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 {
* <p>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.
* <p>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<ContentTypeResolver> resolvers = new ArrayList<>();
public RequestedContentTypeResolver build() {
List<RequestedContentTypeResolver> resolvers = new ArrayList<>();
if (this.favorPathExtension) {
PathExtensionContentTypeResolver resolver = new PathExtensionContentTypeResolver(this.mediaTypes);

View File

@ -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<Pro
private final List<ProduceMediaTypeExpression> expressions;
private final ContentTypeResolver contentTypeResolver;
private final RequestedContentTypeResolver contentTypeResolver;
/**
@ -83,7 +83,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition<Pro
* @param headers expressions with syntax defined by {@link RequestMapping#headers()}
* @param resolver used to determine requested content type
*/
public ProducesRequestCondition(String[] produces, String[] headers, ContentTypeResolver resolver) {
public ProducesRequestCondition(String[] produces, String[] headers, RequestedContentTypeResolver resolver) {
this.expressions = new ArrayList<>(parseExpressions(produces, headers));
Collections.sort(this.expressions);
this.contentTypeResolver = (resolver != null ? resolver : new HeaderContentTypeResolver());
@ -93,12 +93,12 @@ public final class ProducesRequestCondition extends AbstractRequestCondition<Pro
* Private constructor with already parsed media type expressions.
*/
private ProducesRequestCondition(Collection<ProduceMediaTypeExpression> 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());
}

View File

@ -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<RequestMapping
@Override
public RequestMappingInfo build() {
ContentTypeResolver contentTypeResolver = this.options.getContentTypeResolver();
RequestedContentTypeResolver contentTypeResolver = this.options.getContentTypeResolver();
PatternsRequestCondition patternsCondition = new PatternsRequestCondition(
this.paths, this.options.getPathHelper(), this.options.getPathMatcher(),
@ -504,7 +504,7 @@ public final class RequestMappingInfo implements RequestCondition<RequestMapping
private boolean registeredSuffixPatternMatch = false;
private ContentTypeResolver contentTypeResolver;
private RequestedContentTypeResolver contentTypeResolver;
/**
* Set a custom UrlPathHelper to use for the PatternsRequestCondition.
@ -577,7 +577,7 @@ public final class RequestMappingInfo implements RequestCondition<RequestMapping
* from the configured {@code contentTypeResolver}.
*/
public Set<String> 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 RequestCondition<RequestMapping
* Set the ContentNegotiationManager to use for the ProducesRequestCondition.
* <p>By 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;
}
}

View File

@ -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.
* <p>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;
}

View File

@ -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<MediaType> 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<HttpMessageConverter<?>> 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.");

View File

@ -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();

View File

@ -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<HttpMessageConverter<?>> converters = Arrays.stream(encoders)