Fixed handling of @Resource's shareable value

Issue: SPR-10931
(cherry picked from commit 7bc3e3b)
This commit is contained in:
Juergen Hoeller 2013-09-25 12:27:17 +02:00
parent 6fb2c72a55
commit 0a31892475
1 changed files with 7 additions and 19 deletions

View File

@ -472,11 +472,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.
*/ */
@ -511,14 +508,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();
@ -558,16 +552,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();
@ -647,14 +638,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();