Author: xuhaihong
Date: Mon Jun 27 01:43:59 2011
New Revision: 1139994

URL: http://svn.apache.org/viewvc?rev=1139994&view=rev
Log:
OPENEJB-1615 Support use the @Resource(name="java:global/env/abc") for 
environment entry injection
The changes is only for annotation injection, more changes are required for 
similar configurations in DD

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1139994&r1=1139993&r2=1139994&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Mon Jun 27 01:43:59 2011
@@ -329,6 +329,9 @@ public class AnnotationDeployer implemen
         return knownEnvironmentEntries.contains(type.getName()) || 
type.isEnum();
     }
 
+    public static boolean isShareableJNDINamespace(String jndiName) {
+        return jndiName.startsWith("java:global/") || 
jndiName.startsWith("java:app/") || jndiName.startsWith("java:module/");
+    }
     public static class DiscoverAnnotatedBeans implements DynamicDeployer {
 
         public AppModule deploy(AppModule appModule) throws OpenEJBException {
@@ -3342,9 +3345,16 @@ public class AnnotationDeployer implemen
                         envEntry.setLookupName(lookupName);
 
                         reference = envEntry;
+                    } else if(isShareableJNDINamespace(refName)){
+                        EnvEntry envEntry = new EnvEntry();
+                        envEntry.setName(member.getDeclaringClass().getName() 
+ "/" + member.getName());
+                        envEntry.setLookupName(refName);
+
+                        consumer.getEnvEntry().add(envEntry);                  
      
+                        reference = envEntry;
                     } else {
                         /*
-                         * Can't add env-entry since @Resource.lookup is not 
set.
+                         * Can't add env-entry since @Resource.lookup is not 
set and it is NOT in a shareable JNDI name space
                          */
                         return;
                     }


Reply via email to