You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ga...@apache.org on 2010/08/17 23:17:05 UTC

svn commit: r986487 - in /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/JndiEncBuilder.java config/AutoConfig.java

Author: gawor
Date: Tue Aug 17 21:17:04 2010
New Revision: 986487

URL: http://svn.apache.org/viewvc?rev=986487&view=rev
Log:
1) more lookupName updates and 2) infer types for resource-env-refs

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?rev=986487&r1=986486&r2=986487&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Tue Aug 17 21:17:04 2010
@@ -262,33 +262,27 @@ public class JndiEncBuilder {
         }
 
         for (ResourceEnvReferenceInfo referenceInfo : jndiEnc.resourceEnvRefs) {
-            LinkRef linkRef = null;
-            try {
-                Class<?> type = Class.forName(referenceInfo.resourceEnvRefType, true, EJBContext.class.getClassLoader());
-                if (EJBContext.class.isAssignableFrom(type)) {
-                    String jndiName = "comp/EJBContext";
-                    linkRef = new LinkRef(jndiName);
-                    bindings.put(normalize(referenceInfo.referenceName), linkRef);
-                    continue;
-                } else if (WebServiceContext.class.equals(type)) {
-                    String jndiName = "comp/WebServiceContext";
-                    linkRef = new LinkRef(jndiName);
-                    bindings.put(normalize(referenceInfo.referenceName), linkRef);
-                    continue;
-                } else if (TimerService.class.equals(type)) {
-                    String jndiName = "comp/TimerService";
-                    linkRef = new LinkRef(jndiName);
-                    bindings.put(normalize(referenceInfo.referenceName), linkRef);
-                    continue;
-                }
-            } catch (ClassNotFoundException e) {
+            
+            if (referenceInfo.location != null) {
+                Reference reference = buildReferenceLocation(referenceInfo.location);
+                bindings.put(normalize(referenceInfo.referenceName), reference);
+                continue;
             }
-
+            
+            Class<?> type = getType(referenceInfo.resourceEnvRefType, referenceInfo);
+            
             Object reference = null;
-            if (UserTransaction.class.getName().equals(referenceInfo.resourceEnvRefType)) {
+            if (EJBContext.class.isAssignableFrom(type)) {
+                String jndiName = "comp/EJBContext";
+                reference = new LinkRef(jndiName);
+            } else if (WebServiceContext.class.equals(type)) {
+                String jndiName = "comp/WebServiceContext";
+                reference = new LinkRef(jndiName);
+            } else if (TimerService.class.equals(type)) {
+                String jndiName = "comp/TimerService";
+                reference = new LinkRef(jndiName);
+            } else if (UserTransaction.class.equals(type)) {
                 reference = new IntraVmJndiReference("comp/UserTransaction");
-            } else if (referenceInfo.location != null){
-                reference = buildReferenceLocation(referenceInfo.location);
             } else if (referenceInfo.resourceID != null) {
                 String jndiName = "openejb/Resource/" + referenceInfo.resourceID;
                 reference = new IntraVmJndiReference(jndiName);
@@ -296,9 +290,7 @@ public class JndiEncBuilder {
                 String jndiName = "openejb/Resource/" + referenceInfo.referenceName;
                 reference = new IntraVmJndiReference(jndiName);
             }
-            if (reference != null) {
-                bindings.put(normalize(referenceInfo.referenceName), reference);
-            }
+            bindings.put(normalize(referenceInfo.referenceName), reference);
         }
 
         for (PersistenceUnitReferenceInfo referenceInfo : jndiEnc.persistenceUnitRefs) {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=986487&r1=986486&r2=986487&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Tue Aug 17 21:17:04 2010
@@ -799,10 +799,13 @@ public class AutoConfig implements Dynam
     }
 
     private void processResourceRef(ResourceRef ref, EjbDeployment ejbDeployment, AppResources appResources) throws OpenEJBException {
+        // skip destinations with lookup name
+        if (ref.getLookupName() != null) {
+            return;
+        }
         // skip destinations with a global jndi name
-        String mappedName = ref.getMappedName();
-        if (mappedName == null) mappedName = "";
-        if ((mappedName).startsWith("jndi:")){
+        String mappedName = (ref.getMappedName() == null) ? "": ref.getMappedName();
+        if (mappedName.startsWith("jndi:")) {
             return;
         }
 
@@ -832,9 +835,13 @@ public class AutoConfig implements Dynam
     }
 
     private void processResourceEnvRef(JndiReference ref, EjbDeployment ejbDeployment, AppResources appResources) throws OpenEJBException {
+        // skip destinations with lookup name
+        if (ref.getLookupName() != null) {
+            return;
+        }
         // skip destinations with a global jndi name
-        String mappedName = (ref.getMappedName() == null)? "": ref.getMappedName();
-        if (mappedName.startsWith("jndi:")){
+        String mappedName = (ref.getMappedName() == null) ? "": ref.getMappedName();
+        if (mappedName.startsWith("jndi:")) {
             return;
         }