1616
1717package org .springframework .cache .config ;
1818
19- import static org .springframework .context .annotation .AnnotationConfigUtils .*;
20-
2119import org .w3c .dom .Element ;
2220
2321import org .springframework .aop .config .AopNamespaceUtils ;
2826import org .springframework .beans .factory .support .RootBeanDefinition ;
2927import org .springframework .beans .factory .xml .BeanDefinitionParser ;
3028import org .springframework .beans .factory .xml .ParserContext ;
31- import org .springframework .cache .annotation .AnnotationCacheOperationSource ;
3229import org .springframework .cache .interceptor .BeanFactoryCacheOperationSourceAdvisor ;
3330import org .springframework .cache .interceptor .CacheInterceptor ;
3431import org .springframework .util .ClassUtils ;
5754 */
5855class AnnotationDrivenCacheBeanDefinitionParser implements BeanDefinitionParser {
5956
57+ private static final String CACHE_ASPECT_CLASS_NAME =
58+ "org.springframework.cache.aspectj.AnnotationCacheAspect" ;
59+
60+ private static final String JCACHE_ASPECT_CLASS_NAME =
61+ "org.springframework.cache.aspectj.JCacheCacheAspect" ;
62+
63+
6064 private static final boolean jsr107Present = ClassUtils .isPresent (
6165 "javax.cache.Cache" , AnnotationDrivenCacheBeanDefinitionParser .class .getClassLoader ());
6266
6367 private static final boolean jCacheImplPresent = ClassUtils .isPresent (
64- JCACHE_OPERATION_SOURCE_CLASS , AnnotationDrivenCacheBeanDefinitionParser .class .getClassLoader ());
68+ "org.springframework.cache.jcache.interceptor.DefaultJCacheOperationSource" ,
69+ AnnotationDrivenCacheBeanDefinitionParser .class .getClassLoader ());
70+
6571
6672 /**
6773 * Parses the '{@code <cache:annotation-driven>}' tag. Will
@@ -122,17 +128,18 @@ private static BeanDefinition parseErrorHandler(Element element, BeanDefinition
122128 return def ;
123129 }
124130
131+
125132 /**
126133 * Configure the necessary infrastructure to support the Spring's caching annotations.
127134 */
128135 private static class SpringCachingConfigurer {
129136
130137 private static void registerCacheAdvisor (Element element , ParserContext parserContext ) {
131- if (!parserContext .getRegistry ().containsBeanDefinition (CACHE_ADVISOR_BEAN_NAME )) {
138+ if (!parserContext .getRegistry ().containsBeanDefinition (CacheManagementConfigUtils . CACHE_ADVISOR_BEAN_NAME )) {
132139 Object eleSource = parserContext .extractSource (element );
133140
134141 // Create the CacheOperationSource definition.
135- RootBeanDefinition sourceDef = new RootBeanDefinition (AnnotationCacheOperationSource . class );
142+ RootBeanDefinition sourceDef = new RootBeanDefinition ("org.springframework.cache.annotation.AnnotationCacheOperationSource" );
136143 sourceDef .setSource (eleSource );
137144 sourceDef .setRole (BeanDefinition .ROLE_INFRASTRUCTURE );
138145 String sourceName = parserContext .getReaderContext ().registerWithGeneratedName (sourceDef );
@@ -156,13 +163,12 @@ private static void registerCacheAdvisor(Element element, ParserContext parserCo
156163 if (element .hasAttribute ("order" )) {
157164 advisorDef .getPropertyValues ().add ("order" , element .getAttribute ("order" ));
158165 }
159- parserContext .getRegistry ().registerBeanDefinition (CACHE_ADVISOR_BEAN_NAME , advisorDef );
166+ parserContext .getRegistry ().registerBeanDefinition (CacheManagementConfigUtils . CACHE_ADVISOR_BEAN_NAME , advisorDef );
160167
161- CompositeComponentDefinition compositeDef = new CompositeComponentDefinition (element .getTagName (),
162- eleSource );
168+ CompositeComponentDefinition compositeDef = new CompositeComponentDefinition (element .getTagName (), eleSource );
163169 compositeDef .addNestedComponent (new BeanComponentDefinition (sourceDef , sourceName ));
164170 compositeDef .addNestedComponent (new BeanComponentDefinition (interceptorDef , interceptorName ));
165- compositeDef .addNestedComponent (new BeanComponentDefinition (advisorDef , CACHE_ADVISOR_BEAN_NAME ));
171+ compositeDef .addNestedComponent (new BeanComponentDefinition (advisorDef , CacheManagementConfigUtils . CACHE_ADVISOR_BEAN_NAME ));
166172 parserContext .registerComponent (compositeDef );
167173 }
168174 }
@@ -177,60 +183,62 @@ private static void registerCacheAdvisor(Element element, ParserContext parserCo
177183 * </pre>
178184 */
179185 private static void registerCacheAspect (Element element , ParserContext parserContext ) {
180- if (!parserContext .getRegistry ().containsBeanDefinition (CACHE_ASPECT_BEAN_NAME )) {
186+ if (!parserContext .getRegistry ().containsBeanDefinition (CacheManagementConfigUtils . CACHE_ASPECT_BEAN_NAME )) {
181187 RootBeanDefinition def = new RootBeanDefinition ();
182188 def .setBeanClassName (CACHE_ASPECT_CLASS_NAME );
183189 def .setFactoryMethodName ("aspectOf" );
184190 parseCacheResolution (element , def , false );
185191 CacheNamespaceHandler .parseKeyGenerator (element , def );
186- parserContext .registerBeanComponent (new BeanComponentDefinition (def , CACHE_ASPECT_BEAN_NAME ));
192+ parserContext .registerBeanComponent (new BeanComponentDefinition (def , CacheManagementConfigUtils . CACHE_ASPECT_BEAN_NAME ));
187193 }
188194 }
189195 }
190196
197+
191198 /**
192199 * Configure the necessary infrastructure to support the standard JSR-107 caching annotations.
193200 */
194201 private static class JCacheCachingConfigurer {
195202
196203 private static void registerCacheAdvisor (Element element , ParserContext parserContext ) {
197- if (!parserContext .getRegistry ().containsBeanDefinition (JCACHE_ADVISOR_BEAN_NAME )) {
204+ if (!parserContext .getRegistry ().containsBeanDefinition (CacheManagementConfigUtils . JCACHE_ADVISOR_BEAN_NAME )) {
198205 Object eleSource = parserContext .extractSource (element );
199206
200207 // Create the CacheOperationSource definition.
201208 BeanDefinition sourceDef = createJCacheOperationSourceBeanDefinition (element , eleSource );
202209 String sourceName = parserContext .getReaderContext ().registerWithGeneratedName (sourceDef );
203210
204211 // Create the CacheInterceptor definition.
205- RootBeanDefinition interceptorDef = new RootBeanDefinition (JCACHE_INTERCEPTOR_CLASS );
212+ RootBeanDefinition interceptorDef =
213+ new RootBeanDefinition ("org.springframework.cache.jcache.interceptor.JCacheInterceptor" );
206214 interceptorDef .setSource (eleSource );
207215 interceptorDef .setRole (BeanDefinition .ROLE_INFRASTRUCTURE );
208216 interceptorDef .getPropertyValues ().add ("cacheOperationSource" , new RuntimeBeanReference (sourceName ));
209217 parseErrorHandler (element , interceptorDef );
210218 String interceptorName = parserContext .getReaderContext ().registerWithGeneratedName (interceptorDef );
211219
212220 // Create the CacheAdvisor definition.
213- RootBeanDefinition advisorDef = new RootBeanDefinition (JCACHE_ADVISOR_FACTORY_CLASS );
221+ RootBeanDefinition advisorDef = new RootBeanDefinition (
222+ "org.springframework.cache.jcache.interceptor.BeanFactoryJCacheOperationSourceAdvisor" );
214223 advisorDef .setSource (eleSource );
215224 advisorDef .setRole (BeanDefinition .ROLE_INFRASTRUCTURE );
216225 advisorDef .getPropertyValues ().add ("cacheOperationSource" , new RuntimeBeanReference (sourceName ));
217226 advisorDef .getPropertyValues ().add ("adviceBeanName" , interceptorName );
218227 if (element .hasAttribute ("order" )) {
219228 advisorDef .getPropertyValues ().add ("order" , element .getAttribute ("order" ));
220229 }
221- parserContext .getRegistry ().registerBeanDefinition (JCACHE_ADVISOR_BEAN_NAME , advisorDef );
230+ parserContext .getRegistry ().registerBeanDefinition (CacheManagementConfigUtils . JCACHE_ADVISOR_BEAN_NAME , advisorDef );
222231
223- CompositeComponentDefinition compositeDef = new CompositeComponentDefinition (element .getTagName (),
224- eleSource );
232+ CompositeComponentDefinition compositeDef = new CompositeComponentDefinition (element .getTagName (), eleSource );
225233 compositeDef .addNestedComponent (new BeanComponentDefinition (sourceDef , sourceName ));
226234 compositeDef .addNestedComponent (new BeanComponentDefinition (interceptorDef , interceptorName ));
227- compositeDef .addNestedComponent (new BeanComponentDefinition (advisorDef , JCACHE_ADVISOR_BEAN_NAME ));
235+ compositeDef .addNestedComponent (new BeanComponentDefinition (advisorDef , CacheManagementConfigUtils . JCACHE_ADVISOR_BEAN_NAME ));
228236 parserContext .registerComponent (compositeDef );
229237 }
230238 }
231239
232240 private static void registerCacheAspect (Element element , ParserContext parserContext ) {
233- if (!parserContext .getRegistry ().containsBeanDefinition (JCACHE_ASPECT_BEAN_NAME )) {
241+ if (!parserContext .getRegistry ().containsBeanDefinition (CacheManagementConfigUtils . JCACHE_ASPECT_BEAN_NAME )) {
234242 Object eleSource = parserContext .extractSource (element );
235243 RootBeanDefinition def = new RootBeanDefinition ();
236244 def .setBeanClassName (JCACHE_ASPECT_CLASS_NAME );
@@ -241,13 +249,13 @@ private static void registerCacheAspect(Element element, ParserContext parserCon
241249 def .getPropertyValues ().add ("cacheOperationSource" , new RuntimeBeanReference (sourceName ));
242250
243251 parserContext .registerBeanComponent (new BeanComponentDefinition (sourceDef , sourceName ));
244- parserContext .registerBeanComponent (new BeanComponentDefinition (def , JCACHE_ASPECT_BEAN_NAME ));
252+ parserContext .registerBeanComponent (new BeanComponentDefinition (def , CacheManagementConfigUtils . JCACHE_ASPECT_BEAN_NAME ));
245253 }
246254 }
247255
248- private static RootBeanDefinition createJCacheOperationSourceBeanDefinition (
249- Element element , Object eleSource ) {
250- RootBeanDefinition sourceDef = new RootBeanDefinition (JCACHE_OPERATION_SOURCE_CLASS );
256+ private static RootBeanDefinition createJCacheOperationSourceBeanDefinition (Element element , Object eleSource ) {
257+ RootBeanDefinition sourceDef =
258+ new RootBeanDefinition ("org.springframework.cache.jcache.interceptor.DefaultJCacheOperationSource" );
251259 sourceDef .setSource (eleSource );
252260 sourceDef .setRole (BeanDefinition .ROLE_INFRASTRUCTURE );
253261 // JSR-107 support should create an exception cache resolver with the cache manager
0 commit comments