From 0a318924752af63d83f29e86cda0d4a9e17f7b3a Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 25 Sep 2013 12:27:17 +0200 Subject: [PATCH] Fixed handling of @Resource's shareable value Issue: SPR-10931 (cherry picked from commit 7bc3e3b) --- .../CommonAnnotationBeanPostProcessor.java | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java index 93a71336a0..7149d9bdb1 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java @@ -472,11 +472,8 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean public LookupElement(Member member, PropertyDescriptor pd) { super(member, pd); - initAnnotation((AnnotatedElement) member); } - protected abstract void initAnnotation(AnnotatedElement ae); - /** * Return the resource name for the lookup. */ @@ -511,14 +508,11 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean */ private class ResourceElement extends LookupElement { - protected boolean shareable = true; + protected final boolean shareable; public ResourceElement(Member member, PropertyDescriptor pd) { super(member, pd); - } - - @Override - protected void initAnnotation(AnnotatedElement ae) { + AnnotatedElement ae = (AnnotatedElement) member; Resource resource = ae.getAnnotation(Resource.class); String resourceName = resource.name(); Class resourceType = resource.type(); @@ -558,16 +552,13 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean */ private class WebServiceRefElement extends LookupElement { - private Class elementType; + private final Class elementType; - private String wsdlLocation; + private final String wsdlLocation; public WebServiceRefElement(Member member, PropertyDescriptor pd) { super(member, pd); - } - - @Override - protected void initAnnotation(AnnotatedElement ae) { + AnnotatedElement ae = (AnnotatedElement) member; WebServiceRef resource = ae.getAnnotation(WebServiceRef.class); String resourceName = resource.name(); Class resourceType = resource.type(); @@ -647,14 +638,11 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean */ private class EjbRefElement extends LookupElement { - private String beanName; + private final String beanName; public EjbRefElement(Member member, PropertyDescriptor pd) { super(member, pd); - } - - @Override - protected void initAnnotation(AnnotatedElement ae) { + AnnotatedElement ae = (AnnotatedElement) member; EJB resource = ae.getAnnotation(EJB.class); String resourceBeanName = resource.beanName(); String resourceName = resource.name();