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 2014/12/26 17:18:55 UTC

tomee git commit: add test class as managed bean even for ears

Repository: tomee
Updated Branches:
  refs/heads/develop 4f5b58d3f -> b1442ea28


add test class as managed bean even for ears


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

Branch: refs/heads/develop
Commit: b1442ea280be724daf2581c6a3564665d8345941
Parents: 4f5b58d
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Dec 26 17:18:42 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Dec 26 17:18:42 2014 +0100

----------------------------------------------------------------------
 .../openejb/OpenEJBArchiveProcessor.java        | 33 +++++++++++---------
 .../openejb/assembler/classic/JndiBuilder.java  | 12 +++++--
 tck/cdi-embedded/src/test/resources/failing.xml |  3 +-
 3 files changed, 30 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/b1442ea2/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
index dfdbfab..001cad0 100644
--- a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
+++ b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
@@ -214,26 +214,14 @@ public class OpenEJBArchiveProcessor {
         }
 
         if (isEar) { // adding the test class as lib class can break test if tested against the web part of the ear
+            addTestClassAsManagedBean(javaClass, tempClassLoader, appModule);
             return appModule;
         }
 
         // add the test as a managed bean to be able to inject into it easily
         final Map<String, Object> testDD;
         if (javaClass != null) {
-            final EjbJar ejbJar = new EjbJar();
-            final OpenejbJar openejbJar = new OpenejbJar();
-            final String ejbName = appModule.getModuleId() + "_" + javaClass.getName();
-            final ManagedBean bean = ejbJar.addEnterpriseBean(new ManagedBean(ejbName, javaClass.getName(), true));
-            bean.localBean();
-            bean.setTransactionType(TransactionType.BEAN);
-            final EjbDeployment ejbDeployment = openejbJar.addEjbDeployment(bean);
-            ejbDeployment.setDeploymentId(ejbName);
-            final EjbModule e = new EjbModule(ejbJar, openejbJar);
-            e.getProperties().setProperty("openejb.cdi.activated", "false");
-            e.setBeans(new Beans());
-            e.setClassLoader(tempClassLoader);
-            appModule.getEjbModules().add(e);
-            testDD = e.getAltDDs();
+            testDD = addTestClassAsManagedBean(javaClass, tempClassLoader, appModule).getAltDDs();
         } else {
             testDD = new HashMap<>(); // ignore
         }
@@ -288,6 +276,23 @@ public class OpenEJBArchiveProcessor {
         return appModule;
     }
 
+    private static EjbModule addTestClassAsManagedBean(Class<?> javaClass, URLClassLoader tempClassLoader, AppModule appModule) {
+        final EjbJar ejbJar = new EjbJar();
+        final OpenejbJar openejbJar = new OpenejbJar();
+        final String ejbName = appModule.getModuleId() + "_" + javaClass.getName();
+        final ManagedBean bean = ejbJar.addEnterpriseBean(new ManagedBean(ejbName, javaClass.getName(), true));
+        bean.localBean();
+        bean.setTransactionType(TransactionType.BEAN);
+        final EjbDeployment ejbDeployment = openejbJar.addEjbDeployment(bean);
+        ejbDeployment.setDeploymentId(ejbName);
+        final EjbModule e = new EjbModule(ejbJar, openejbJar);
+        e.getProperties().setProperty("openejb.cdi.activated", "false");
+        e.setBeans(new Beans());
+        e.setClassLoader(tempClassLoader);
+        appModule.getEjbModules().add(e);
+        return e;
+    }
+
     private static WebApp createWebApp(final Archive<?> archive) {
         WebApp webApp;
         final Node webXml = archive.get(WEB_INF + "web.xml");

http://git-wip-us.apache.org/repos/asf/tomee/blob/b1442ea2/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
index 10230f1..c3a731c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
@@ -671,7 +671,7 @@ public class JndiBuilder {
         final AppContext application = module.getAppContext();
 
         final String appName = application.isStandaloneModule() ? "" : application.getId() + "/";
-        final String moduleName = cdi.getModuleName() + "/";
+        final String moduleName = moduleName(cdi);
         String beanName = cdi.getEjbName();
         if (intrface != null) {
             beanName = beanName + "!" + intrface.getName();
@@ -680,6 +680,14 @@ public class JndiBuilder {
         return "global/" + appName + moduleName + beanName;
     }
 
+    private String moduleName(BeanContext cdi) {
+        String moduleName = cdi.getModuleName() + "/";
+        if (moduleName.startsWith("ear-scoped-cdi-beans_")) {
+            moduleName = moduleName.substring("ear-scoped-cdi-beans_".length());
+        }
+        return moduleName;
+    }
+
     private void bindJava(final BeanContext cdi, final Class intrface, final Reference ref, final Bindings bindings, final EnterpriseBeanInfo beanInfo) throws NamingException {
         final ModuleContext module = cdi.getModuleContext();
         final AppContext application = module.getAppContext();
@@ -689,7 +697,7 @@ public class JndiBuilder {
         final Context globalContext = application.getGlobalJndiContext();
 
         final String appName = application.isStandaloneModule() ? "" : application.getId() + "/";
-        String moduleName = cdi.getModuleName() + "/";
+        String moduleName = moduleName(cdi);
         if (moduleName.startsWith("/")) {
             moduleName = moduleName.substring(1);
         }

http://git-wip-us.apache.org/repos/asf/tomee/blob/b1442ea2/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index 92a597b..30674b2 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -26,8 +26,7 @@
     -Dopenejb.deploymentId.format={appId}/{ejbJarId}/{ejbName}
     -->
     <classes>
-      <!--<class name="org.jboss.cdi.tck.tests.interceptors.definition.broken.interceptorForLifecycleTargetMethod.InterceptorForLifecycleTargetMethodTest" />-->
-      <class name="org.jboss.cdi.tck.tests.context.session.listener.shutdown.SessionContextListenerShutdownTest" />
+      <class name="org.jboss.cdi.tck.tests.context.application.ejb.ApplicationContextSharedTest" />
     </classes>
   </test>
 </suite>