Polishing
This commit is contained in:
@@ -192,14 +192,14 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public BeanDefinition parse(Element element, ParserContext parserContext) {
|
||||
Object source = parserContext.extractSource(element);
|
||||
XmlReaderContext readerContext = parserContext.getReaderContext();
|
||||
public BeanDefinition parse(Element element, ParserContext context) {
|
||||
Object source = context.extractSource(element);
|
||||
XmlReaderContext readerContext = context.getReaderContext();
|
||||
|
||||
CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), source);
|
||||
parserContext.pushContainingComponent(compDefinition);
|
||||
context.pushContainingComponent(compDefinition);
|
||||
|
||||
RuntimeBeanReference contentNegotiationManager = getContentNegotiationManager(element, source, parserContext);
|
||||
RuntimeBeanReference contentNegotiationManager = getContentNegotiationManager(element, source, context);
|
||||
|
||||
RootBeanDefinition handlerMappingDef = new RootBeanDefinition(RequestMappingHandlerMapping.class);
|
||||
handlerMappingDef.setSource(source);
|
||||
@@ -212,14 +212,14 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
handlerMappingDef.getPropertyValues().add("removeSemicolonContent", !enableMatrixVariables);
|
||||
}
|
||||
|
||||
configurePathMatchingProperties(handlerMappingDef, element, parserContext);
|
||||
configurePathMatchingProperties(handlerMappingDef, element, context);
|
||||
readerContext.getRegistry().registerBeanDefinition(HANDLER_MAPPING_BEAN_NAME , handlerMappingDef);
|
||||
|
||||
RuntimeBeanReference corsRef = MvcNamespaceUtils.registerCorsConfigurations(null, parserContext, source);
|
||||
RuntimeBeanReference corsRef = MvcNamespaceUtils.registerCorsConfigurations(null, context, source);
|
||||
handlerMappingDef.getPropertyValues().add("corsConfigurations", corsRef);
|
||||
|
||||
RuntimeBeanReference conversionService = getConversionService(element, source, parserContext);
|
||||
RuntimeBeanReference validator = getValidator(element, source, parserContext);
|
||||
RuntimeBeanReference conversionService = getConversionService(element, source, context);
|
||||
RuntimeBeanReference validator = getValidator(element, source, context);
|
||||
RuntimeBeanReference messageCodesResolver = getMessageCodesResolver(element);
|
||||
|
||||
RootBeanDefinition bindingDef = new RootBeanDefinition(ConfigurableWebBindingInitializer.class);
|
||||
@@ -229,13 +229,13 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
bindingDef.getPropertyValues().add("validator", validator);
|
||||
bindingDef.getPropertyValues().add("messageCodesResolver", messageCodesResolver);
|
||||
|
||||
ManagedList<?> messageConverters = getMessageConverters(element, source, parserContext);
|
||||
ManagedList<?> argumentResolvers = getArgumentResolvers(element, parserContext);
|
||||
ManagedList<?> returnValueHandlers = getReturnValueHandlers(element, parserContext);
|
||||
ManagedList<?> messageConverters = getMessageConverters(element, source, context);
|
||||
ManagedList<?> argumentResolvers = getArgumentResolvers(element, context);
|
||||
ManagedList<?> returnValueHandlers = getReturnValueHandlers(element, context);
|
||||
String asyncTimeout = getAsyncTimeout(element);
|
||||
RuntimeBeanReference asyncExecutor = getAsyncExecutor(element);
|
||||
ManagedList<?> callableInterceptors = getCallableInterceptors(element, source, parserContext);
|
||||
ManagedList<?> deferredResultInterceptors = getDeferredResultInterceptors(element, source, parserContext);
|
||||
ManagedList<?> callableInterceptors = getCallableInterceptors(element, source, context);
|
||||
ManagedList<?> deferredResultInterceptors = getDeferredResultInterceptors(element, source, context);
|
||||
|
||||
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);
|
||||
handlerAdapterDef.setSource(source);
|
||||
@@ -312,18 +312,18 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
defaultExceptionResolver.getPropertyValues().add("order", 2);
|
||||
String defaultExResolverName = readerContext.registerWithGeneratedName(defaultExceptionResolver);
|
||||
|
||||
parserContext.registerComponent(new BeanComponentDefinition(handlerMappingDef, HANDLER_MAPPING_BEAN_NAME));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(handlerAdapterDef, HANDLER_ADAPTER_BEAN_NAME));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(uriContributorDef, uriContributorName));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(mappedInterceptorDef, mappedInterceptorName));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(methodExceptionResolver, methodExResolverName));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(statusExceptionResolver, statusExResolverName));
|
||||
parserContext.registerComponent(new BeanComponentDefinition(defaultExceptionResolver, defaultExResolverName));
|
||||
context.registerComponent(new BeanComponentDefinition(handlerMappingDef, HANDLER_MAPPING_BEAN_NAME));
|
||||
context.registerComponent(new BeanComponentDefinition(handlerAdapterDef, HANDLER_ADAPTER_BEAN_NAME));
|
||||
context.registerComponent(new BeanComponentDefinition(uriContributorDef, uriContributorName));
|
||||
context.registerComponent(new BeanComponentDefinition(mappedInterceptorDef, mappedInterceptorName));
|
||||
context.registerComponent(new BeanComponentDefinition(methodExceptionResolver, methodExResolverName));
|
||||
context.registerComponent(new BeanComponentDefinition(statusExceptionResolver, statusExResolverName));
|
||||
context.registerComponent(new BeanComponentDefinition(defaultExceptionResolver, defaultExResolverName));
|
||||
|
||||
// Ensure BeanNameUrlHandlerMapping (SPR-8289) and default HandlerAdapters are not "turned off"
|
||||
MvcNamespaceUtils.registerDefaultComponents(parserContext, source);
|
||||
MvcNamespaceUtils.registerDefaultComponents(context, source);
|
||||
|
||||
parserContext.popAndRegisterContainingComponent();
|
||||
context.popAndRegisterContainingComponent();
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -342,9 +342,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
}
|
||||
|
||||
private RuntimeBeanReference getConversionService(
|
||||
Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
|
||||
private RuntimeBeanReference getConversionService(Element element, @Nullable Object source, ParserContext context) {
|
||||
RuntimeBeanReference conversionServiceRef;
|
||||
if (element.hasAttribute("conversion-service")) {
|
||||
conversionServiceRef = new RuntimeBeanReference(element.getAttribute("conversion-service"));
|
||||
@@ -353,15 +351,15 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
RootBeanDefinition conversionDef = new RootBeanDefinition(FormattingConversionServiceFactoryBean.class);
|
||||
conversionDef.setSource(source);
|
||||
conversionDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
String conversionName = parserContext.getReaderContext().registerWithGeneratedName(conversionDef);
|
||||
parserContext.registerComponent(new BeanComponentDefinition(conversionDef, conversionName));
|
||||
String conversionName = context.getReaderContext().registerWithGeneratedName(conversionDef);
|
||||
context.registerComponent(new BeanComponentDefinition(conversionDef, conversionName));
|
||||
conversionServiceRef = new RuntimeBeanReference(conversionName);
|
||||
}
|
||||
return conversionServiceRef;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private RuntimeBeanReference getValidator(Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
private RuntimeBeanReference getValidator(Element element, @Nullable Object source, ParserContext context) {
|
||||
if (element.hasAttribute("validator")) {
|
||||
return new RuntimeBeanReference(element.getAttribute("validator"));
|
||||
}
|
||||
@@ -370,8 +368,8 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
"org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean");
|
||||
validatorDef.setSource(source);
|
||||
validatorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
String validatorName = parserContext.getReaderContext().registerWithGeneratedName(validatorDef);
|
||||
parserContext.registerComponent(new BeanComponentDefinition(validatorDef, validatorName));
|
||||
String validatorName = context.getReaderContext().registerWithGeneratedName(validatorDef);
|
||||
context.registerComponent(new BeanComponentDefinition(validatorDef, validatorName));
|
||||
return new RuntimeBeanReference(validatorName);
|
||||
}
|
||||
else {
|
||||
@@ -380,7 +378,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
private RuntimeBeanReference getContentNegotiationManager(
|
||||
Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
Element element, @Nullable Object source, ParserContext context) {
|
||||
|
||||
RuntimeBeanReference beanRef;
|
||||
if (element.hasAttribute("content-negotiation-manager")) {
|
||||
@@ -393,19 +391,19 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
factoryBeanDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
factoryBeanDef.getPropertyValues().add("mediaTypes", getDefaultMediaTypes());
|
||||
String name = CONTENT_NEGOTIATION_MANAGER_BEAN_NAME;
|
||||
parserContext.getReaderContext().getRegistry().registerBeanDefinition(name , factoryBeanDef);
|
||||
parserContext.registerComponent(new BeanComponentDefinition(factoryBeanDef, name));
|
||||
context.getReaderContext().getRegistry().registerBeanDefinition(name , factoryBeanDef);
|
||||
context.registerComponent(new BeanComponentDefinition(factoryBeanDef, name));
|
||||
beanRef = new RuntimeBeanReference(name);
|
||||
}
|
||||
return beanRef;
|
||||
}
|
||||
|
||||
private void configurePathMatchingProperties(
|
||||
RootBeanDefinition handlerMappingDef, Element element, ParserContext parserContext) {
|
||||
RootBeanDefinition handlerMappingDef, Element element, ParserContext context) {
|
||||
|
||||
Element pathMatchingElement = DomUtils.getChildElementByTagName(element, "path-matching");
|
||||
if (pathMatchingElement != null) {
|
||||
Object source = parserContext.extractSource(element);
|
||||
Object source = context.extractSource(element);
|
||||
|
||||
if (pathMatchingElement.hasAttribute("suffix-pattern")) {
|
||||
Boolean useSuffixPatternMatch = Boolean.valueOf(pathMatchingElement.getAttribute("suffix-pattern"));
|
||||
@@ -424,14 +422,14 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
if (pathMatchingElement.hasAttribute("path-helper")) {
|
||||
pathHelperRef = new RuntimeBeanReference(pathMatchingElement.getAttribute("path-helper"));
|
||||
}
|
||||
pathHelperRef = MvcNamespaceUtils.registerUrlPathHelper(pathHelperRef, parserContext, source);
|
||||
pathHelperRef = MvcNamespaceUtils.registerUrlPathHelper(pathHelperRef, context, source);
|
||||
handlerMappingDef.getPropertyValues().add("urlPathHelper", pathHelperRef);
|
||||
|
||||
RuntimeBeanReference pathMatcherRef = null;
|
||||
if (pathMatchingElement.hasAttribute("path-matcher")) {
|
||||
pathMatcherRef = new RuntimeBeanReference(pathMatchingElement.getAttribute("path-matcher"));
|
||||
}
|
||||
pathMatcherRef = MvcNamespaceUtils.registerPathMatcher(pathMatcherRef, parserContext, source);
|
||||
pathMatcherRef = MvcNamespaceUtils.registerPathMatcher(pathMatcherRef, context, source);
|
||||
handlerMappingDef.getPropertyValues().add("pathMatcher", pathMatcherRef);
|
||||
}
|
||||
}
|
||||
@@ -483,18 +481,18 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
private ManagedList<?> getCallableInterceptors(
|
||||
Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
Element element, @Nullable Object source, ParserContext context) {
|
||||
|
||||
ManagedList<? super Object> interceptors = new ManagedList<>();
|
||||
ManagedList<Object> interceptors = new ManagedList<>();
|
||||
Element asyncElement = DomUtils.getChildElementByTagName(element, "async-support");
|
||||
if (asyncElement != null) {
|
||||
Element interceptorsElement = DomUtils.getChildElementByTagName(asyncElement, "callable-interceptors");
|
||||
if (interceptorsElement != null) {
|
||||
interceptors.setSource(source);
|
||||
for (Element converter : DomUtils.getChildElementsByTagName(interceptorsElement, "bean")) {
|
||||
BeanDefinitionHolder beanDef = parserContext.getDelegate().parseBeanDefinitionElement(converter);
|
||||
BeanDefinitionHolder beanDef = context.getDelegate().parseBeanDefinitionElement(converter);
|
||||
if (beanDef != null) {
|
||||
beanDef = parserContext.getDelegate().decorateBeanDefinitionIfRequired(converter, beanDef);
|
||||
beanDef = context.getDelegate().decorateBeanDefinitionIfRequired(converter, beanDef);
|
||||
interceptors.add(beanDef);
|
||||
}
|
||||
}
|
||||
@@ -504,18 +502,18 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
private ManagedList<?> getDeferredResultInterceptors(
|
||||
Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
Element element, @Nullable Object source, ParserContext context) {
|
||||
|
||||
ManagedList<? super Object> interceptors = new ManagedList<>();
|
||||
ManagedList<Object> interceptors = new ManagedList<>();
|
||||
Element asyncElement = DomUtils.getChildElementByTagName(element, "async-support");
|
||||
if (asyncElement != null) {
|
||||
Element interceptorsElement = DomUtils.getChildElementByTagName(asyncElement, "deferred-result-interceptors");
|
||||
if (interceptorsElement != null) {
|
||||
interceptors.setSource(source);
|
||||
for (Element converter : DomUtils.getChildElementsByTagName(interceptorsElement, "bean")) {
|
||||
BeanDefinitionHolder beanDef = parserContext.getDelegate().parseBeanDefinitionElement(converter);
|
||||
BeanDefinitionHolder beanDef = context.getDelegate().parseBeanDefinitionElement(converter);
|
||||
if (beanDef != null) {
|
||||
beanDef = parserContext.getDelegate().decorateBeanDefinitionIfRequired(converter, beanDef);
|
||||
beanDef = context.getDelegate().decorateBeanDefinitionIfRequired(converter, beanDef);
|
||||
interceptors.add(beanDef);
|
||||
}
|
||||
}
|
||||
@@ -525,11 +523,11 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ManagedList<?> getArgumentResolvers(Element element, ParserContext parserContext) {
|
||||
private ManagedList<?> getArgumentResolvers(Element element, ParserContext context) {
|
||||
Element resolversElement = DomUtils.getChildElementByTagName(element, "argument-resolvers");
|
||||
if (resolversElement != null) {
|
||||
ManagedList<Object> resolvers = extractBeanSubElements(resolversElement, parserContext);
|
||||
return wrapLegacyResolvers(resolvers, parserContext);
|
||||
ManagedList<Object> resolvers = extractBeanSubElements(resolversElement, context);
|
||||
return wrapLegacyResolvers(resolvers, context);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -555,18 +553,18 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ManagedList<?> getReturnValueHandlers(Element element, ParserContext parserContext) {
|
||||
private ManagedList<?> getReturnValueHandlers(Element element, ParserContext context) {
|
||||
Element handlers = DomUtils.getChildElementByTagName(element, "return-value-handlers");
|
||||
return (handlers != null ? extractBeanSubElements(handlers, parserContext) : null);
|
||||
return (handlers != null ? extractBeanSubElements(handlers, context) : null);
|
||||
}
|
||||
|
||||
private ManagedList<?> getMessageConverters(Element element, @Nullable Object source, ParserContext parserContext) {
|
||||
private ManagedList<?> getMessageConverters(Element element, @Nullable Object source, ParserContext context) {
|
||||
Element convertersElement = DomUtils.getChildElementByTagName(element, "message-converters");
|
||||
ManagedList<? super Object> messageConverters = new ManagedList<>();
|
||||
ManagedList<Object> messageConverters = new ManagedList<>();
|
||||
if (convertersElement != null) {
|
||||
messageConverters.setSource(source);
|
||||
for (Element beanElement : DomUtils.getChildElementsByTagName(convertersElement, "bean", "ref")) {
|
||||
Object object = parserContext.getDelegate().parsePropertySubElement(beanElement, null);
|
||||
Object object = context.getDelegate().parsePropertySubElement(beanElement, null);
|
||||
messageConverters.add(object);
|
||||
}
|
||||
}
|
||||
@@ -647,11 +645,11 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
||||
return beanDefinition;
|
||||
}
|
||||
|
||||
private ManagedList<Object> extractBeanSubElements(Element parentElement, ParserContext parserContext) {
|
||||
private ManagedList<Object> extractBeanSubElements(Element parentElement, ParserContext context) {
|
||||
ManagedList<Object> list = new ManagedList<>();
|
||||
list.setSource(parserContext.extractSource(parentElement));
|
||||
list.setSource(context.extractSource(parentElement));
|
||||
for (Element beanElement : DomUtils.getChildElementsByTagName(parentElement, "bean", "ref")) {
|
||||
Object object = parserContext.getDelegate().parsePropertySubElement(beanElement, null);
|
||||
Object object = context.getDelegate().parsePropertySubElement(beanElement, null);
|
||||
list.add(object);
|
||||
}
|
||||
return list;
|
||||
|
||||
@@ -58,9 +58,9 @@ import org.springframework.web.servlet.resource.WebJarsResourceResolver;
|
||||
/**
|
||||
* {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a
|
||||
* {@code resources} element to register a {@link ResourceHttpRequestHandler} and
|
||||
* register a {@link SimpleUrlHandlerMapping} for mapping resource requests,
|
||||
* and a {@link HttpRequestHandlerAdapter}. Will also create a resource handling
|
||||
* chain with {@link ResourceResolver}s and {@link ResourceTransformer ResourceResolver}s and {@link ResourceTransformers}.
|
||||
* register a {@link SimpleUrlHandlerMapping} for mapping resource requests, and a
|
||||
* {@link HttpRequestHandlerAdapter}. Will also create a resource handling chain with
|
||||
* {@link ResourceResolver ResourceResolvers} and {@link ResourceTransformer ResourceTransformers}.
|
||||
*
|
||||
* @author Keith Donald
|
||||
* @author Jeremy Grelle
|
||||
@@ -250,9 +250,9 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
String autoRegistration = element.getAttribute("auto-registration");
|
||||
boolean isAutoRegistration = !(StringUtils.hasText(autoRegistration) && "false".equals(autoRegistration));
|
||||
|
||||
ManagedList<? super Object> resourceResolvers = new ManagedList<>();
|
||||
ManagedList<Object> resourceResolvers = new ManagedList<>();
|
||||
resourceResolvers.setSource(source);
|
||||
ManagedList<? super Object> resourceTransformers = new ManagedList<>();
|
||||
ManagedList<Object> resourceTransformers = new ManagedList<>();
|
||||
resourceTransformers.setSource(source);
|
||||
|
||||
parseResourceCache(resourceResolvers, resourceTransformers, element, source);
|
||||
@@ -267,8 +267,8 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
}
|
||||
|
||||
private void parseResourceCache(ManagedList<? super Object> resourceResolvers,
|
||||
ManagedList<? super Object> resourceTransformers, Element element, @Nullable Object source) {
|
||||
private void parseResourceCache(ManagedList<Object> resourceResolvers,
|
||||
ManagedList<Object> resourceTransformers, Element element, @Nullable Object source) {
|
||||
|
||||
String resourceCache = element.getAttribute("resource-cache");
|
||||
if ("true".equals(resourceCache)) {
|
||||
@@ -306,7 +306,7 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
private void parseResourceResolversTransformers(boolean isAutoRegistration,
|
||||
ManagedList<? super Object> resourceResolvers, ManagedList<? super Object> resourceTransformers,
|
||||
ManagedList<Object> resourceResolvers, ManagedList<Object> resourceTransformers,
|
||||
ParserContext context, Element element, @Nullable Object source) {
|
||||
|
||||
Element resolversElement = DomUtils.getChildElementByTagName(element, "resolvers");
|
||||
@@ -353,7 +353,7 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
}
|
||||
|
||||
private RootBeanDefinition parseVersionResolver(ParserContext context, Element element, @Nullable Object source) {
|
||||
ManagedMap<String, ? super Object> strategyMap = new ManagedMap<>();
|
||||
ManagedMap<String, Object> strategyMap = new ManagedMap<>();
|
||||
strategyMap.setSource(source);
|
||||
RootBeanDefinition versionResolverDef = new RootBeanDefinition(VersionResourceResolver.class);
|
||||
versionResolverDef.setSource(source);
|
||||
|
||||
Reference in New Issue
Block a user