Polishing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -85,9 +85,9 @@ import org.springframework.util.StringUtils;
|
||||
* another using the {@link Import} annotation).
|
||||
*
|
||||
* <p>This class helps separate the concern of parsing the structure of a Configuration
|
||||
* class from the concern of registering BeanDefinition objects based on the
|
||||
* content of that model (with the exception of {@code @ComponentScan} annotations which
|
||||
* need to be registered immediately).
|
||||
* class from the concern of registering BeanDefinition objects based on the content of
|
||||
* that model (with the exception of {@code @ComponentScan} annotations which need to be
|
||||
* registered immediately).
|
||||
*
|
||||
* <p>This ASM-based implementation avoids reflection and eager class loading in order to
|
||||
* interoperate effectively with lazy class loading in a Spring ApplicationContext.
|
||||
@@ -814,7 +814,7 @@ class ConfigurationClassParser {
|
||||
return new AssignableTypeFilter(clazz).match((MetadataReader) this.source, metadataReaderFactory);
|
||||
}
|
||||
|
||||
public ConfigurationClass asConfigClass(ConfigurationClass importedBy) throws IOException {
|
||||
public ConfigurationClass asConfigClass(ConfigurationClass importedBy) {
|
||||
if (this.source instanceof Class) {
|
||||
return new ConfigurationClass((Class<?>) this.source, importedBy);
|
||||
}
|
||||
@@ -882,7 +882,7 @@ class ConfigurationClassParser {
|
||||
return result;
|
||||
}
|
||||
|
||||
public Set<SourceClass> getAnnotations() throws IOException {
|
||||
public Set<SourceClass> getAnnotations() {
|
||||
Set<SourceClass> result = new LinkedHashSet<SourceClass>();
|
||||
for (String className : this.metadata.getAnnotationTypes()) {
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -428,7 +428,7 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) {
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) {
|
||||
if (bean instanceof ImportAware) {
|
||||
ImportRegistry ir = this.beanFactory.getBean(IMPORT_REGISTRY_BEAN_NAME, ImportRegistry.class);
|
||||
AnnotationMetadata importingClass = ir.getImportingClassFor(bean.getClass().getSuperclass().getName());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -257,7 +257,7 @@ public abstract class AbstractApplicationEventMulticaster
|
||||
* type before trying to instantiate it.
|
||||
* <p>If this method returns {@code true} for a given listener as a first pass,
|
||||
* the listener instance will get retrieved and fully evaluated through a
|
||||
* {@link #supportsEvent(ApplicationListener,ResolvableType, Class)} call afterwards.
|
||||
* {@link #supportsEvent(ApplicationListener, ResolvableType, Class)} call afterwards.
|
||||
* @param listenerType the listener's type as determined by the BeanFactory
|
||||
* @param eventType the event type to check
|
||||
* @return whether the given listener should be included in the candidates
|
||||
|
||||
@@ -1214,7 +1214,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader
|
||||
|
||||
@Override
|
||||
public <A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType)
|
||||
throws NoSuchBeanDefinitionException{
|
||||
throws NoSuchBeanDefinitionException {
|
||||
|
||||
assertBeanFactoryActive();
|
||||
return getBeanFactory().findAnnotationOnBean(beanName, annotationType);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -292,7 +292,7 @@ public class ResourceBundleMessageSource extends AbstractResourceBasedMessageSou
|
||||
try {
|
||||
return bundle.getString(key);
|
||||
}
|
||||
catch (MissingResourceException ex){
|
||||
catch (MissingResourceException ex) {
|
||||
// Assume key not found for some other reason
|
||||
// -> do NOT throw the exception to allow for checking parent message source.
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -35,14 +35,13 @@ import org.springframework.core.NamedThreadLocal;
|
||||
* or through a {@link org.springframework.beans.factory.config.CustomScopeConfigurer} bean.
|
||||
*
|
||||
* <p>{@code SimpleThreadScope} <em>does not clean up any objects</em> associated with it.
|
||||
* As such, it is typically preferable to use
|
||||
* {@link org.springframework.web.context.request.RequestScope RequestScope}
|
||||
* in web environments.
|
||||
* It is therefore typically preferable to use a request-bound scope implementation such
|
||||
* as {@code org.springframework.web.context.request.RequestScope} in web environments,
|
||||
* implementing the full lifecycle for scoped attributes (including reliable destruction).
|
||||
*
|
||||
* <p>For an implementation of a thread-based {@code Scope} with support for
|
||||
* destruction callbacks, refer to the
|
||||
* <a href="http://www.springbyexample.org/examples/custom-thread-scope-module.html">
|
||||
* Spring by Example Custom Thread Scope Module</a>.
|
||||
* <p>For an implementation of a thread-based {@code Scope} with support for destruction
|
||||
* callbacks, refer to
|
||||
* <a href="http://www.springbyexample.org/examples/custom-thread-scope-module.html">Spring by Example</a>.
|
||||
*
|
||||
* <p>Thanks to Eugene Kuleshov for submitting the original prototype for a thread scope!
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -34,7 +34,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Miscellaneous class utility methods.
|
||||
* Miscellaneous {@code java.lang.Class} utility methods.
|
||||
* Mainly for internal use within the framework.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,8 +17,8 @@
|
||||
package org.springframework.messaging.simp.stomp;
|
||||
|
||||
/**
|
||||
* Represents a STOMP session with operations to send messages, create
|
||||
* subscriptions and receive messages on those subscriptions.
|
||||
* Represents a STOMP session with operations to send messages,
|
||||
* create subscriptions and receive messages on those subscriptions.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @since 4.2
|
||||
@@ -37,10 +37,10 @@ public interface StompSession {
|
||||
|
||||
/**
|
||||
* When enabled, a receipt header is automatically added to future
|
||||
* {@code send} and {@code subscribe} operations on this session, which causes
|
||||
* the server to return a RECEIPT. An application can then use the
|
||||
* {@link StompSession.Receiptable
|
||||
* Receiptable} returned from the operation to track the receipt.
|
||||
* {@code send} and {@code subscribe} operations on this session, which
|
||||
* causes the server to return a RECEIPT. An application can then use
|
||||
* the {@link StompSession.Receiptable Receiptable} returned from the
|
||||
* operation to track the receipt.
|
||||
* <p>A receipt header can also be added manually through the overloaded
|
||||
* methods that accept {@code StompHeaders}.
|
||||
*/
|
||||
@@ -57,11 +57,11 @@ public interface StompSession {
|
||||
Receiptable send(String destination, Object payload);
|
||||
|
||||
/**
|
||||
* An overloaded version of {@link #send(String, Object)} that accepts
|
||||
* full {@link StompHeaders} instead of a destination. The headers must
|
||||
* An overloaded version of {@link #send(String, Object)} with full
|
||||
* {@link StompHeaders} instead of just a destination. The headers must
|
||||
* contain a destination and may also have other headers such as
|
||||
* "content-type" or custom headers for the broker to propagate to subscribers,
|
||||
* or broker-specific, non-standard headers..
|
||||
* "content-type" or custom headers for the broker to propagate to
|
||||
* subscribers, or broker-specific, non-standard headers.
|
||||
* @param headers the message headers
|
||||
* @param payload the message payload
|
||||
* @return a Receiptable for tracking receipts
|
||||
@@ -79,7 +79,7 @@ public interface StompSession {
|
||||
|
||||
/**
|
||||
* An overloaded version of {@link #subscribe(String, StompFrameHandler)}
|
||||
* that accepts full {@link StompHeaders} rather instead of a destination.
|
||||
* with full {@link StompHeaders} instead of just a destination.
|
||||
* @param headers the headers for the subscribe message frame
|
||||
* @param handler the handler for received messages
|
||||
* @return a handle to use to unsubscribe and/or track receipts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -1315,7 +1315,7 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
|
||||
|
||||
|
||||
/**
|
||||
* Return a {@code HttpHeaders} object that can only be read, not written to.
|
||||
* Return an {@code HttpHeaders} object that can only be read, not written to.
|
||||
*/
|
||||
public static HttpHeaders readOnlyHttpHeaders(HttpHeaders headers) {
|
||||
Assert.notNull(headers, "HttpHeaders must not be null");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -1095,8 +1095,8 @@ public class DispatcherServlet extends FrameworkServlet {
|
||||
logger.debug("Request is already a MultipartHttpServletRequest - if not in a forward, " +
|
||||
"this typically results from an additional MultipartFilter in web.xml");
|
||||
}
|
||||
else if (hasMultipartException(request) ) {
|
||||
logger.debug("Multipart resolution failed for current request before - " +
|
||||
else if (hasMultipartException(request)) {
|
||||
logger.debug("Multipart resolution previously failed for current request - " +
|
||||
"skipping re-resolution for undisturbed error rendering");
|
||||
}
|
||||
else {
|
||||
@@ -1345,7 +1345,7 @@ public class DispatcherServlet extends FrameworkServlet {
|
||||
* @param attributesSnapshot the snapshot of the request attributes before the include
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private void restoreAttributesAfterInclude(HttpServletRequest request, Map<?,?> attributesSnapshot) {
|
||||
private void restoreAttributesAfterInclude(HttpServletRequest request, Map<?, ?> attributesSnapshot) {
|
||||
// Need to copy into separate Collection here, to avoid side effects
|
||||
// on the Enumeration when removing attributes.
|
||||
Set<String> attrsToCheck = new HashSet<String>();
|
||||
@@ -1364,7 +1364,7 @@ public class DispatcherServlet extends FrameworkServlet {
|
||||
// or removing the attribute, respectively, if appropriate.
|
||||
for (String attrName : attrsToCheck) {
|
||||
Object attrValue = attributesSnapshot.get(attrName);
|
||||
if (attrValue == null){
|
||||
if (attrValue == null) {
|
||||
request.removeAttribute(attrName);
|
||||
}
|
||||
else if (attrValue != request.getAttribute(attrName)) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -206,7 +206,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
configurePathMatchingProperties(handlerMappingDef, element, context);
|
||||
readerContext.getRegistry().registerBeanDefinition(HANDLER_MAPPING_BEAN_NAME , handlerMappingDef);
|
||||
readerContext.getRegistry().registerBeanDefinition(HANDLER_MAPPING_BEAN_NAME, handlerMappingDef);
|
||||
|
||||
RuntimeBeanReference corsRef = MvcNamespaceUtils.registerCorsConfigurations(null, context, source);
|
||||
handlerMappingDef.getPropertyValues().add("corsConfigurations", corsRef);
|
||||
@@ -264,7 +264,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
|
||||
handlerAdapterDef.getPropertyValues().add("callableInterceptors", callableInterceptors);
|
||||
handlerAdapterDef.getPropertyValues().add("deferredResultInterceptors", deferredResultInterceptors);
|
||||
readerContext.getRegistry().registerBeanDefinition(HANDLER_ADAPTER_BEAN_NAME , handlerAdapterDef);
|
||||
readerContext.getRegistry().registerBeanDefinition(HANDLER_ADAPTER_BEAN_NAME, handlerAdapterDef);
|
||||
|
||||
RootBeanDefinition uriContributorDef =
|
||||
new RootBeanDefinition(CompositeUriComponentsContributorFactoryBean.class);
|
||||
@@ -387,7 +387,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
factoryBeanDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
factoryBeanDef.getPropertyValues().add("mediaTypes", getDefaultMediaTypes());
|
||||
String name = CONTENT_NEGOTIATION_MANAGER_BEAN_NAME;
|
||||
context.getReaderContext().getRegistry().registerBeanDefinition(name , factoryBeanDef);
|
||||
context.getReaderContext().getRegistry().registerBeanDefinition(name, factoryBeanDef);
|
||||
context.registerComponent(new BeanComponentDefinition(factoryBeanDef, name));
|
||||
beanRef = new RuntimeBeanReference(name);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -81,8 +81,8 @@ public abstract class MvcNamespaceUtils {
|
||||
}
|
||||
parserContext.getRegistry().registerAlias(urlPathHelperRef.getBeanName(), URL_PATH_HELPER_BEAN_NAME);
|
||||
}
|
||||
else if (!parserContext.getRegistry().isAlias(URL_PATH_HELPER_BEAN_NAME)
|
||||
&& !parserContext.getRegistry().containsBeanDefinition(URL_PATH_HELPER_BEAN_NAME)) {
|
||||
else if (!parserContext.getRegistry().isAlias(URL_PATH_HELPER_BEAN_NAME) &&
|
||||
!parserContext.getRegistry().containsBeanDefinition(URL_PATH_HELPER_BEAN_NAME)) {
|
||||
RootBeanDefinition urlPathHelperDef = new RootBeanDefinition(UrlPathHelper.class);
|
||||
urlPathHelperDef.setSource(source);
|
||||
urlPathHelperDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
@@ -106,8 +106,8 @@ public abstract class MvcNamespaceUtils {
|
||||
}
|
||||
parserContext.getRegistry().registerAlias(pathMatcherRef.getBeanName(), PATH_MATCHER_BEAN_NAME);
|
||||
}
|
||||
else if (!parserContext.getRegistry().isAlias(PATH_MATCHER_BEAN_NAME)
|
||||
&& !parserContext.getRegistry().containsBeanDefinition(PATH_MATCHER_BEAN_NAME)) {
|
||||
else if (!parserContext.getRegistry().isAlias(PATH_MATCHER_BEAN_NAME) &&
|
||||
!parserContext.getRegistry().containsBeanDefinition(PATH_MATCHER_BEAN_NAME)) {
|
||||
RootBeanDefinition pathMatcherDef = new RootBeanDefinition(AntPathMatcher.class);
|
||||
pathMatcherDef.setSource(source);
|
||||
pathMatcherDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
@@ -122,7 +122,7 @@ public abstract class MvcNamespaceUtils {
|
||||
* name unless already registered.
|
||||
*/
|
||||
private static void registerBeanNameUrlHandlerMapping(ParserContext context, Object source) {
|
||||
if (!context.getRegistry().containsBeanDefinition(BEAN_NAME_URL_HANDLER_MAPPING_BEAN_NAME)){
|
||||
if (!context.getRegistry().containsBeanDefinition(BEAN_NAME_URL_HANDLER_MAPPING_BEAN_NAME)) {
|
||||
RootBeanDefinition mappingDef = new RootBeanDefinition(BeanNameUrlHandlerMapping.class);
|
||||
mappingDef.setSource(source);
|
||||
mappingDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
@@ -193,7 +193,7 @@ public abstract class MvcNamespaceUtils {
|
||||
* unless already registered.
|
||||
*/
|
||||
private static void registerHandlerMappingIntrospector(ParserContext parserContext, Object source) {
|
||||
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME)){
|
||||
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME)) {
|
||||
RootBeanDefinition beanDef = new RootBeanDefinition(HandlerMappingIntrospector.class);
|
||||
beanDef.setSource(source);
|
||||
beanDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -152,7 +152,7 @@ public abstract class AbstractUrlHandlerMapping extends AbstractHandlerMapping i
|
||||
* both "/test" and "/team". For details, see the AntPathMatcher class.
|
||||
* <p>Looks for the most exact pattern, where most exact is defined as
|
||||
* the longest path pattern.
|
||||
* @param urlPath URL the bean is mapped to
|
||||
* @param urlPath the URL the bean is mapped to
|
||||
* @param request current HTTP request (to expose the path within the mapping to)
|
||||
* @return the associated handler instance, or {@code null} if not found
|
||||
* @see #exposePathWithinMapping
|
||||
@@ -179,7 +179,7 @@ public abstract class AbstractUrlHandlerMapping extends AbstractHandlerMapping i
|
||||
}
|
||||
else if (useTrailingSlashMatch()) {
|
||||
if (!registeredPattern.endsWith("/") && getPathMatcher().match(registeredPattern + "/", urlPath)) {
|
||||
matchingPatterns.add(registeredPattern +"/");
|
||||
matchingPatterns.add(registeredPattern + "/");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,7 +271,9 @@ public abstract class AbstractUrlHandlerMapping extends AbstractHandlerMapping i
|
||||
* @param request the request to expose the path to
|
||||
* @see #PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
|
||||
*/
|
||||
protected void exposePathWithinMapping(String bestMatchingPattern, String pathWithinMapping, HttpServletRequest request) {
|
||||
protected void exposePathWithinMapping(String bestMatchingPattern, String pathWithinMapping,
|
||||
HttpServletRequest request) {
|
||||
|
||||
request.setAttribute(BEST_MATCHING_PATTERN_ATTRIBUTE, bestMatchingPattern);
|
||||
request.setAttribute(PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, pathWithinMapping);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -65,11 +65,11 @@ public class HandlerExceptionResolverComposite implements HandlerExceptionResolv
|
||||
|
||||
/**
|
||||
* Resolve the exception by iterating over the list of configured exception resolvers.
|
||||
* The first one to return a ModelAndView instance wins. Otherwise {@code null} is returned.
|
||||
* <p>The first one to return a {@link ModelAndView} wins. Otherwise {@code null} is returned.
|
||||
*/
|
||||
@Override
|
||||
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
|
||||
Object handler,Exception ex) {
|
||||
public ModelAndView resolveException(
|
||||
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
|
||||
|
||||
if (this.resolvers != null) {
|
||||
for (HandlerExceptionResolver handlerExceptionResolver : this.resolvers) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -179,8 +179,8 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
|
||||
else {
|
||||
result.add("");
|
||||
}
|
||||
return new PatternsRequestCondition(result, this.pathHelper, this.pathMatcher, this.useSuffixPatternMatch,
|
||||
this.useTrailingSlashMatch, this.fileExtensions);
|
||||
return new PatternsRequestCondition(result, this.pathHelper, this.pathMatcher,
|
||||
this.useSuffixPatternMatch, this.useTrailingSlashMatch, this.fileExtensions);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,17 +201,14 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
|
||||
*/
|
||||
@Override
|
||||
public PatternsRequestCondition getMatchingCondition(HttpServletRequest request) {
|
||||
|
||||
if (this.patterns.isEmpty()) {
|
||||
return this;
|
||||
}
|
||||
|
||||
String lookupPath = this.pathHelper.getLookupPathForRequest(request);
|
||||
List<String> matches = getMatchingPatterns(lookupPath);
|
||||
|
||||
return matches.isEmpty() ? null :
|
||||
new PatternsRequestCondition(matches, this.pathHelper, this.pathMatcher, this.useSuffixPatternMatch,
|
||||
this.useTrailingSlashMatch, this.fileExtensions);
|
||||
return (!matches.isEmpty() ?
|
||||
new PatternsRequestCondition(matches, this.pathHelper, this.pathMatcher,
|
||||
this.useSuffixPatternMatch, this.useTrailingSlashMatch, this.fileExtensions) : null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -259,7 +256,7 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
|
||||
}
|
||||
if (this.useTrailingSlashMatch) {
|
||||
if (!pattern.endsWith("/") && this.pathMatcher.match(pattern + "/", lookupPath)) {
|
||||
return pattern +"/";
|
||||
return pattern + "/";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -46,7 +46,7 @@ public class RequestMappingInfoHandlerMethodMappingNamingStrategy
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String simpleTypeName = handlerMethod.getBeanType().getSimpleName();
|
||||
for (int i = 0 ; i < simpleTypeName.length(); i++) {
|
||||
for (int i = 0; i < simpleTypeName.length(); i++) {
|
||||
if (Character.isUpperCase(simpleTypeName.charAt(i))) {
|
||||
sb.append(simpleTypeName.charAt(i));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -117,7 +117,7 @@ public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce
|
||||
* resolution use {@link #setArgumentResolvers} instead.
|
||||
*/
|
||||
public void setCustomArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
||||
this.customArgumentResolvers= argumentResolvers;
|
||||
this.customArgumentResolvers = argumentResolvers;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -53,7 +53,7 @@ public class SessionAttributeMethodArgumentResolver extends AbstractNamedValueMe
|
||||
@Override
|
||||
protected void handleMissingValue(String name, MethodParameter parameter) throws ServletException {
|
||||
throw new ServletRequestBindingException("Missing session attribute '" + name +
|
||||
"' of type " + parameter.getNestedParameterType().getSimpleName());
|
||||
"' of type " + parameter.getNestedParameterType().getSimpleName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -52,7 +52,7 @@ public class ViewMethodReturnValueHandler implements HandlerMethodReturnValueHan
|
||||
if (returnValue == null) {
|
||||
return;
|
||||
}
|
||||
else if (returnValue instanceof View){
|
||||
else if (returnValue instanceof View) {
|
||||
View view = (View) returnValue;
|
||||
mavContainer.setView(view);
|
||||
if (view instanceof SmartView) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -32,10 +32,10 @@ import org.springframework.web.servlet.RequestToViewNameTranslator;
|
||||
* as the actual return value is left as-is allowing the configured
|
||||
* {@link RequestToViewNameTranslator} to select a view name by convention.
|
||||
*
|
||||
* <p>A String return value can be interpreted in more than one ways depending
|
||||
* on the presence of annotations like {@code @ModelAttribute} or
|
||||
* {@code @ResponseBody}. Therefore this handler should be configured after
|
||||
* the handlers that support these annotations.
|
||||
* <p>A String return value can be interpreted in more than one ways depending on
|
||||
* the presence of annotations like {@code @ModelAttribute} or {@code @ResponseBody}.
|
||||
* Therefore this handler should be configured after the handlers that support these
|
||||
* annotations.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @author Juergen Hoeller
|
||||
@@ -47,12 +47,10 @@ public class ViewNameMethodReturnValueHandler implements HandlerMethodReturnValu
|
||||
|
||||
|
||||
/**
|
||||
* Configure one more simple patterns (as described in
|
||||
* {@link PatternMatchUtils#simpleMatch}) to use in order to recognize
|
||||
* custom redirect prefixes in addition to "redirect:".
|
||||
* <p>Note that simply configuring this property will not make a custom
|
||||
* redirect prefix work. There must be a custom View that recognizes the
|
||||
* prefix as well.
|
||||
* Configure one more simple patterns (as described in {@link PatternMatchUtils#simpleMatch})
|
||||
* to use in order to recognize custom redirect prefixes in addition to "redirect:".
|
||||
* <p>Note that simply configuring this property will not make a custom redirect prefix work.
|
||||
* There must be a custom View that recognizes the prefix as well.
|
||||
* @since 4.1
|
||||
*/
|
||||
public void setRedirectPatterns(String... redirectPatterns) {
|
||||
@@ -84,7 +82,7 @@ public class ViewNameMethodReturnValueHandler implements HandlerMethodReturnValu
|
||||
mavContainer.setRedirectModelScenario(true);
|
||||
}
|
||||
}
|
||||
else if (returnValue != null){
|
||||
else if (returnValue != null) {
|
||||
// should not happen
|
||||
throw new UnsupportedOperationException("Unexpected return type: " +
|
||||
returnType.getParameterType().getName() + " in method: " + returnType.getMethod());
|
||||
|
||||
Reference in New Issue
Block a user