[jboss-cvs] JBossAS SVN: r68018 - trunk/ejb3/src/main/org/jboss/injection.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Dec 7 02:31:48 EST 2007


Author: scott.stark at jboss.org
Date: 2007-12-07 02:31:47 -0500 (Fri, 07 Dec 2007)
New Revision: 68018

Modified:
   trunk/ejb3/src/main/org/jboss/injection/ResourceHandler.java
Log:
JBCTS-717, handle ORB, UserTransaction types without mapped names from xml.

Modified: trunk/ejb3/src/main/org/jboss/injection/ResourceHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/ResourceHandler.java	2007-12-07 07:13:02 UTC (rev 68017)
+++ trunk/ejb3/src/main/org/jboss/injection/ResourceHandler.java	2007-12-07 07:31:47 UTC (rev 68018)
@@ -111,7 +111,9 @@
       for (ResourceReferenceMetaData envRef : refs)
       {
          String encName = "env/" + envRef.getResourceRefName();
-         if (container.getEncInjectors().containsKey(encName)) continue;
+         if (container.getEncInjectors().containsKey(encName))
+            continue;
+
          if (envRef.getMappedName() == null || envRef.getMappedName().equals(""))
          {
             if (envRef.getResUrl() != null)
@@ -125,6 +127,30 @@
                   throw new RuntimeException(e);
                }
             }
+            else if (UserTransaction.class.getName().equals(envRef.getType()))
+            {
+               final InjectionContainer ic = container;
+               InjectorFactory<?> factory = new InjectorFactory<UserTransactionPropertyInjector>()
+               {
+                  public UserTransactionPropertyInjector create(BeanProperty property)
+                  {
+                     return new UserTransactionPropertyInjector(property, ic);
+                  }
+               };
+               if(envRef.getInjectionTargets() != null)
+               {
+                  InjectionUtil.createInjectors(container.getInjectors(), container.getClassloader(), factory, envRef.getInjectionTargets());
+                  continue;
+               }
+               else
+               {
+                  encName = "java:comp/UserTransaction";
+               }
+            }
+            else if (ORB.class.getName().equals(envRef.getType()))
+            {
+               encName = "java:comp/ORB";
+            }
             else
             {
                throw new RuntimeException("mapped-name is required for " + envRef.getResourceRefName() + " of deployment " + container.getIdentifier());
@@ -234,11 +260,16 @@
 
    public void loadXml(X xml, InjectionContainer container)
    {
-      if (xml == null) return;
-      if (xml.getMessageDestinationReferences() != null) loadXmlMessageDestinationRefs(container, xml.getMessageDestinationReferences());
-      if (xml.getResourceEnvironmentReferences() != null) loadXmlResourceEnvRefs(container, xml.getResourceEnvironmentReferences());
-      if (xml.getResourceReferences() != null) loadXmlResourceRefs(container, xml.getResourceReferences());
-      if (xml.getEnvironmentEntries() != null) loadEnvEntry(container, xml.getEnvironmentEntries());
+      if (xml == null)
+         return;
+      if (xml.getMessageDestinationReferences() != null)
+         loadXmlMessageDestinationRefs(container, xml.getMessageDestinationReferences());
+      if (xml.getResourceEnvironmentReferences() != null)
+         loadXmlResourceEnvRefs(container, xml.getResourceEnvironmentReferences());
+      if (xml.getResourceReferences() != null)
+         loadXmlResourceRefs(container, xml.getResourceReferences());
+      if (xml.getEnvironmentEntries() != null)
+         loadEnvEntry(container, xml.getEnvironmentEntries());
    }
 
    public void handleClassAnnotations(Class<?> clazz, InjectionContainer container)




More information about the jboss-cvs-commits mailing list