[jboss-cvs] JBossAS SVN: r77523 - trunk/tomcat/src/main/org/jboss/web/tomcat/service/injection.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 27 06:07:15 EDT 2008
Author: emuckenhuber
Date: 2008-08-27 06:07:15 -0400 (Wed, 27 Aug 2008)
New Revision: 77523
Modified:
trunk/tomcat/src/main/org/jboss/web/tomcat/service/injection/WebServiceRefInjectionHandler.java
Log:
[JBAS-5673] - cleanup WebServiceRefHandler, load annotatedElement if needed.
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/injection/WebServiceRefInjectionHandler.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/injection/WebServiceRefInjectionHandler.java 2008-08-27 09:22:07 UTC (rev 77522)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/injection/WebServiceRefInjectionHandler.java 2008-08-27 10:07:15 UTC (rev 77523)
@@ -66,9 +66,10 @@
srefMap.put(sref.getServiceRefName(), sref);
- String encName = "env/" + sref.getServiceRefName();
+ String srefName = sref.getServiceRefName();
+ String encName = "env/" + srefName;
AnnotatedElement annotatedElement = sref.getAnnotatedElement();
- if(sref.getInjectionTargets() != null)
+ if(sref.getInjectionTargets() != null && sref.getInjectionTargets().size() > 0)
{
for(ResourceInjectionTargetMetaData trg : sref.getInjectionTargets())
{
@@ -79,18 +80,26 @@
addInjector(container, encName, annotatedElement);
// Add the ServicerefEncInjector
- if(! container.getEncInjections().containsKey(encName))
- container.getEncInjectors().put(encName, new ServiceRefInjector(encName, annotatedElement, sref));
+ if(!container.getEncInjectors().containsKey(srefName))
+ container.getEncInjectors().put(srefName, new ServiceRefInjector(encName, annotatedElement, sref));
}
}
else
{
- if(container.getEncInjections().containsKey(encName))
+ if(container.getEncInjectors().containsKey(srefName))
continue;
- // Class annotations don't create a injectionTarget
- if(sref.getAnnotatedElement() != null)
- container.getEncInjectors().put(encName, new ServiceRefInjector(encName, sref.getAnnotatedElement(), sref));
+ // try to get the annotated element, which should be a class in this case
+ if(annotatedElement == null)
+ {
+ try
+ {
+ annotatedElement = container.getClassloader().loadClass(srefName);
+ }
+ catch(ClassNotFoundException e) { /** ignore for now */ }
+ }
+ // Add the ServicerefEncInjector only
+ container.getEncInjectors().put(srefName, new ServiceRefInjector(encName, annotatedElement, sref));
}
}
}
@@ -127,4 +136,4 @@
}
map.put(ao, injector);
}
-}
+}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list