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>