You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by xu...@apache.org on 2011/06/27 03:44:00 UTC
svn commit: r1139994 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
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;
}