You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/04/15 15:00:14 UTC

tomee git commit: stronger filtering for default resources - only availabe in webapps for now

Repository: tomee
Updated Branches:
  refs/heads/master b14e14900 -> 7b9f898b7


stronger filtering for default resources - only availabe in webapps for now


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/7b9f898b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/7b9f898b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/7b9f898b

Branch: refs/heads/master
Commit: 7b9f898b78afb97289f55e9c9d4e67f488ff8c5f
Parents: b14e149
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Apr 15 15:00:05 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed Apr 15 15:00:05 2015 +0200

----------------------------------------------------------------------
 .../arquillian/common/TestClassDiscoverer.java  |  1 +
 .../org/apache/openejb/config/AutoConfig.java   | 31 ++++++++------------
 .../config/BuiltInEnvironmentEntries.java       | 11 +++----
 .../openejb/config/MergeWebappJndiContext.java  |  6 ++++
 4 files changed, 26 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/7b9f898b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
index f8619aa..12021e1 100644
--- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
+++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
@@ -170,6 +170,7 @@ public class TestClassDiscoverer implements AdditionalBeanDiscoverer {
                 ejbModule.setWebapp(true);
                 ejbModule.getProperties().put("openejb.ejbmodule.webappId", webModule.getModuleId());
             }
+            ejbModule.getProperties().put("openejb.ejbmodule.MergeWebappJndiContext", "true");
             module.getEjbModules().add(ejbModule);
         }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/7b9f898b/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
index dbee1f5..f75d3f6 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
@@ -17,7 +17,6 @@
 
 package org.apache.openejb.config;
 
-import org.apache.openejb.BeanContext;
 import org.apache.openejb.JndiConstants;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.assembler.classic.ContainerInfo;
@@ -65,6 +64,19 @@ import org.apache.openejb.util.SuperProperties;
 import org.apache.openejb.util.URISupport;
 import org.apache.openejb.util.URLs;
 
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
 import javax.annotation.ManagedBean;
 import javax.ejb.TimerService;
 import javax.enterprise.inject.spi.BeanManager;
@@ -88,19 +100,6 @@ import javax.ws.rs.core.SecurityContext;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ContextResolver;
 import javax.ws.rs.ext.Providers;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
 
 import static java.util.Arrays.asList;
 
@@ -863,10 +862,6 @@ public class AutoConfig implements DynamicDeployer, JndiConstants {
 
             // Resource env reference
             for (final JndiReference ref : bean.getResourceEnvRef()) {
-                final String name = ref.getName();
-                if (name != null && name.startsWith("java:comp/Default") && !BeanContext.Comp.class.getName().equals(bean.getEjbClass())) {
-                    return; // all default resources will be available thanks to Comp bean, far enough for what it provides!
-                }
                 processResourceEnvRef(ref, ejbDeployment, appResources, ejbModule.getClassLoader());
             }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/7b9f898b/container/openejb-core/src/main/java/org/apache/openejb/config/BuiltInEnvironmentEntries.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/BuiltInEnvironmentEntries.java b/container/openejb-core/src/main/java/org/apache/openejb/config/BuiltInEnvironmentEntries.java
index ade5a90..af90000 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/BuiltInEnvironmentEntries.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/BuiltInEnvironmentEntries.java
@@ -17,6 +17,7 @@
 
 package org.apache.openejb.config;
 
+import org.apache.openejb.BeanContext;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.EnterpriseBean;
@@ -50,7 +51,7 @@ public class BuiltInEnvironmentEntries implements DynamicDeployer {
                 continue;
             }
 
-            add(consumer, module, appModule);
+            add(consumer, module, appModule, false);
         }
 
         for (final WebModule module : appModule.getWebModules()) {
@@ -59,7 +60,7 @@ public class BuiltInEnvironmentEntries implements DynamicDeployer {
                 continue;
             }
 
-            add(consumer, module, appModule);
+            add(consumer, module, appModule, addDefaults);
         }
 
         for (final EjbModule module : appModule.getEjbModules()) {
@@ -69,14 +70,14 @@ public class BuiltInEnvironmentEntries implements DynamicDeployer {
             }
 
             for (final EnterpriseBean consumer : ejbJar.getEnterpriseBeans()) {
-                add(consumer, module, appModule);
+                add(consumer, module, appModule, addDefaults && BeanContext.Comp.class.getName().equals(consumer.getEjbClass()));
             }
         }
 
         return appModule;
     }
 
-    private void add(final JndiConsumer jndi, final DeploymentModule module, final DeploymentModule app) {
+    private void add(final JndiConsumer jndi, final DeploymentModule module, final DeploymentModule app, final boolean defaults) {
 
         // Standard names
         add(jndi.getEnvEntryMap(), new EnvEntry().name("java:module/ModuleName").value(module.getModuleId()).type(String.class));
@@ -89,7 +90,7 @@ public class BuiltInEnvironmentEntries implements DynamicDeployer {
         add(jndi.getResourceEnvRefMap(), new ResourceEnvRef().name("java:comp/TransactionManager").type(TransactionManager.class));
         add(jndi.getResourceEnvRefMap(), new ResourceEnvRef().name("java:comp/TransactionSynchronizationRegistry").type(TransactionSynchronizationRegistry.class));
 
-        if (addDefaults) {
+        if (defaults) {
             add(jndi.getResourceEnvRefMap(), new ResourceEnvRef().name("java:comp/DefaultManagedExecutorService").type(ManagedExecutorService.class));
             add(jndi.getResourceEnvRefMap(), new ResourceEnvRef().name("java:comp/DefaultManagedScheduledExecutorService").type(ManagedScheduledExecutorService.class));
             add(jndi.getResourceEnvRefMap(), new ResourceEnvRef().name("java:comp/DefaultManagedThreadFactory").type(ManagedThreadFactory.class));

http://git-wip-us.apache.org/repos/asf/tomee/blob/7b9f898b/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java b/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
index 0bbb29d..fced6dc 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
@@ -58,6 +58,12 @@ public class MergeWebappJndiContext implements DynamicDeployer {
             for (final EjbModule ejbModule : appModule.getEjbModules()) {
                 // If they are the same module, they'll have the same finder
                 if (ejbModule.getFinder() != webModule.getFinder()) {
+                    final String forceMerge = ejbModule.getProperties().getProperty("openejb.ejbmodule.MergeWebappJndiContext"); // always true is not null
+                    if (forceMerge != null) { // default resource propagation
+                        for (final EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
+                            copy(webModule.getWebApp().getResourceEnvRefMap(), bean.getResourceEnvRefMap());
+                        }
+                    }
                     continue;
                 }