[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