Remove code duplication in AnnotationDrivenBeanDefinitionParser
This commit merges the implementations of getCallableInterceptors() and getDeferredResultInterceptors() in order to remove code duplication. Closes gh-24305
This commit is contained in:
committed by
Sam Brannen
parent
141dae6437
commit
4692f20aac
@@ -234,8 +234,8 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
|||||||
ManagedList<?> returnValueHandlers = getReturnValueHandlers(element, context);
|
ManagedList<?> returnValueHandlers = getReturnValueHandlers(element, context);
|
||||||
String asyncTimeout = getAsyncTimeout(element);
|
String asyncTimeout = getAsyncTimeout(element);
|
||||||
RuntimeBeanReference asyncExecutor = getAsyncExecutor(element);
|
RuntimeBeanReference asyncExecutor = getAsyncExecutor(element);
|
||||||
ManagedList<?> callableInterceptors = getCallableInterceptors(element, source, context);
|
ManagedList<?> callableInterceptors = getInterceptors(element, source, context, "callable-interceptors");
|
||||||
ManagedList<?> deferredResultInterceptors = getDeferredResultInterceptors(element, source, context);
|
ManagedList<?> deferredResultInterceptors = getInterceptors(element, source, context, "deferred-result-interceptors");
|
||||||
|
|
||||||
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);
|
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);
|
||||||
handlerAdapterDef.setSource(source);
|
handlerAdapterDef.setSource(source);
|
||||||
@@ -480,34 +480,13 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ManagedList<?> getCallableInterceptors(
|
private ManagedList<?> getInterceptors(
|
||||||
Element element, @Nullable Object source, ParserContext context) {
|
Element element, @Nullable Object source, ParserContext context, String interceptorElementName) {
|
||||||
|
|
||||||
ManagedList<Object> interceptors = new ManagedList<>();
|
ManagedList<Object> interceptors = new ManagedList<>();
|
||||||
Element asyncElement = DomUtils.getChildElementByTagName(element, "async-support");
|
Element asyncElement = DomUtils.getChildElementByTagName(element, "async-support");
|
||||||
if (asyncElement != null) {
|
if (asyncElement != null) {
|
||||||
Element interceptorsElement = DomUtils.getChildElementByTagName(asyncElement, "callable-interceptors");
|
Element interceptorsElement = DomUtils.getChildElementByTagName(asyncElement, interceptorElementName);
|
||||||
if (interceptorsElement != null) {
|
|
||||||
interceptors.setSource(source);
|
|
||||||
for (Element converter : DomUtils.getChildElementsByTagName(interceptorsElement, "bean")) {
|
|
||||||
BeanDefinitionHolder beanDef = context.getDelegate().parseBeanDefinitionElement(converter);
|
|
||||||
if (beanDef != null) {
|
|
||||||
beanDef = context.getDelegate().decorateBeanDefinitionIfRequired(converter, beanDef);
|
|
||||||
interceptors.add(beanDef);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return interceptors;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ManagedList<?> getDeferredResultInterceptors(
|
|
||||||
Element element, @Nullable Object source, ParserContext context) {
|
|
||||||
|
|
||||||
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) {
|
if (interceptorsElement != null) {
|
||||||
interceptors.setSource(source);
|
interceptors.setSource(source);
|
||||||
for (Element converter : DomUtils.getChildElementsByTagName(interceptorsElement, "bean")) {
|
for (Element converter : DomUtils.getChildElementsByTagName(interceptorsElement, "bean")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user