Fixed handling of @Resource's shareable value

Issue: SPR-10931
This commit is contained in:
Juergen Hoeller 2013-09-25 12:27:17 +02:00
parent 783871a42a
commit 7bc3e3b3f8
1 changed files with 7 additions and 19 deletions

View File

@ -473,11 +473,8 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean
public LookupElement(Member member, PropertyDescriptor pd) { public LookupElement(Member member, PropertyDescriptor pd) {
super(member, pd); super(member, pd);
initAnnotation((AnnotatedElement) member);
} }
protected abstract void initAnnotation(AnnotatedElement ae);
/** /**
* Return the resource name for the lookup. * Return the resource name for the lookup.
*/ */
@ -512,14 +509,11 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean
*/ */
private class ResourceElement extends LookupElement { private class ResourceElement extends LookupElement {
protected boolean shareable = true; protected final boolean shareable;
public ResourceElement(Member member, PropertyDescriptor pd) { public ResourceElement(Member member, PropertyDescriptor pd) {
super(member, pd); super(member, pd);
} AnnotatedElement ae = (AnnotatedElement) member;
@Override
protected void initAnnotation(AnnotatedElement ae) {
Resource resource = ae.getAnnotation(Resource.class); Resource resource = ae.getAnnotation(Resource.class);
String resourceName = resource.name(); String resourceName = resource.name();
Class<?> resourceType = resource.type(); Class<?> resourceType = resource.type();
@ -559,16 +553,13 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean
*/ */
private class WebServiceRefElement extends LookupElement { 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) { public WebServiceRefElement(Member member, PropertyDescriptor pd) {
super(member, pd); super(member, pd);
} AnnotatedElement ae = (AnnotatedElement) member;
@Override
protected void initAnnotation(AnnotatedElement ae) {
WebServiceRef resource = ae.getAnnotation(WebServiceRef.class); WebServiceRef resource = ae.getAnnotation(WebServiceRef.class);
String resourceName = resource.name(); String resourceName = resource.name();
Class<?> resourceType = resource.type(); Class<?> resourceType = resource.type();
@ -648,14 +639,11 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean
*/ */
private class EjbRefElement extends LookupElement { private class EjbRefElement extends LookupElement {
private String beanName; private final String beanName;
public EjbRefElement(Member member, PropertyDescriptor pd) { public EjbRefElement(Member member, PropertyDescriptor pd) {
super(member, pd); super(member, pd);
} AnnotatedElement ae = (AnnotatedElement) member;
@Override
protected void initAnnotation(AnnotatedElement ae) {
EJB resource = ae.getAnnotation(EJB.class); EJB resource = ae.getAnnotation(EJB.class);
String resourceBeanName = resource.beanName(); String resourceBeanName = resource.beanName();
String resourceName = resource.name(); String resourceName = resource.name();