[jboss-cvs] JBossAS SVN: r74808 - projects/ejb3/trunk/core/src/main/java/org/jboss/injection.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 18 13:53:33 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-06-18 13:53:33 -0400 (Wed, 18 Jun 2008)
New Revision: 74808
Modified:
projects/ejb3/trunk/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
Log:
EJBTHREE-1424
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java 2008-06-18 17:19:56 UTC (rev 74807)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java 2008-06-18 17:53:33 UTC (rev 74808)
@@ -24,6 +24,7 @@
// $Id: WebServiceRefHandler.java 61084 2007-03-05 14:50:45Z thomas.diesler at jboss.com $
import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -60,6 +61,26 @@
throw new IllegalStateException ("Duplicate <service-ref-name> in " + sref);
srefMap.put(sref.getServiceRefName(), sref);
+
+ String encName = "env/" + sref.getServiceRefName();
+ AnnotatedElement annotatedElement = sref.getAnnotatedElement();
+ if(annotatedElement == null)
+ {
+ if(sref.getInjectionTargets() != null && sref.getInjectionTargets().size() > 0)
+ {
+ for(ResourceInjectionTargetMetaData trg : sref.getInjectionTargets())
+ {
+ annotatedElement = InjectionUtil.findInjectionTarget(container.getClassloader(), trg);
+ addInjector(container, encName, annotatedElement);
+ }
+ }
+ else
+ log.warn("No injection target for service-ref: " + sref.getServiceRefName());
+ }
+ else
+ {
+ addInjector(container, encName, annotatedElement);
+ }
}
}
@@ -81,6 +102,18 @@
}
}
+ private void addInjector(InjectionContainer container, String encName, AnnotatedElement annotatedElement)
+ {
+ Injector jndiInjector;
+ if(annotatedElement instanceof Method)
+ jndiInjector = new JndiMethodInjector((Method)annotatedElement, encName, container.getEnc());
+ else if(annotatedElement instanceof Field)
+ jndiInjector = new JndiFieldInjector((Field)annotatedElement, encName, container.getEnc());
+ else
+ throw new IllegalStateException("Annotated element for '" + encName + "' is niether Method nor Field: " + annotatedElement);
+ container.getInjectors().add(jndiInjector);
+ }
+
private void bindRefOnType(Class<?> type, InjectionContainer container, WebServiceRef wsref)
{
String name = wsref.name();
More information about the jboss-cvs-commits
mailing list