@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2006 the original author or authors .
* Copyright 2002 - 201 0 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,22 +34,25 @@ import org.springframework.util.ClassUtils;
@@ -34,22 +34,25 @@ import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils ;
/ * *
* Base implementation for { @link org . springframework . beans . factory . xml . BeanDefinitionDecorator BeanDefinitionDecorators } wishing
* to add an { @link org . aopalliance . intercept . MethodInterceptor interceptor } to the resulting
* bean .
* Base implementation for
* { @link org . springframework . beans . factory . xml . BeanDefinitionDecorator BeanDefinitionDecorators }
* wishing to add an { @link org . aopalliance . intercept . MethodInterceptor interceptor }
* to the resulting bean .
*
* < p > This base class controls the creation of the { @link ProxyFactoryBean } bean definition
* and wraps the original as an inner - bean definition for the < code > target < / code > property of
* { @link ProxyFactoryBean } .
* and wraps the original as an inner - bean definition for the < code > target < / code > property
* of { @link ProxyFactoryBean } .
*
* < p > Chaining is correctly handled , ensuring that only one { @link ProxyFactoryBean } definition
* is created . If a previous { @link org . springframework . beans . factory . xml . BeanDefinitionDecorator } already created the { @link org . springframework . aop . framework . ProxyFactoryBean }
* then the interceptor is simply added to the existing definition .
* is created . If a previous { @link org . springframework . beans . factory . xml . BeanDefinitionDecorator }
* already created the { @link org . springframework . aop . framework . ProxyFactoryBean } then the
* interceptor is simply added to the existing definition .
*
* < p > Subclasses have only to create the < code > BeanDefinition < / code > to the interceptor they
* wish to add .
* < p > Subclasses have only to create the < code > BeanDefinition < / code > to the interceptor that
* they wish to add .
*
* @author Rob Harrop
* @author Juergen Hoeller
* @since 2 . 0
* @see org . aopalliance . intercept . MethodInterceptor
* /
@ -72,7 +75,6 @@ public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator implement
@@ -72,7 +75,6 @@ public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator implement
BeanDefinitionHolder result = definitionHolder ;
if ( ! isProxyFactoryBeanDefinition ( existingDefinition ) ) {
// create the proxy definitionHolder
RootBeanDefinition proxyDefinition = new RootBeanDefinition ( ) ;
// create proxy factory bean definitionHolder
@ -93,18 +95,17 @@ public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator implement
@@ -93,18 +95,17 @@ public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator implement
}
addInterceptorNameToList ( interceptorName , result . getBeanDefinition ( ) ) ;
return result ;
}
@SuppressWarnings ( "unchecked" )
private void addInterceptorNameToList ( String interceptorName , BeanDefinition beanDefinition ) {
List list = ( List ) beanDefinition . getPropertyValues ( ) . getPropertyValue ( "interceptorNames" ) . getValue ( ) ;
List < String > list = ( List < String > ) beanDefinition . getPropertyValues ( ) . getPropertyValue ( "interceptorNames" ) . getValue ( ) ;
list . add ( interceptorName ) ;
}
private boolean isProxyFactoryBeanDefinition ( BeanDefinition existingDefinition ) {
return existingDefinition . getBeanClassName ( ) . equals ( ProxyFactoryBean . class . getName ( ) ) ;
return ProxyFactoryBean . class . getName ( ) . equals ( existingDefinition . getBeanClass Name ( ) ) ;
}
protected String getInterceptorNameSuffix ( BeanDefinition interceptorDefinition ) {