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 2016/08/12 13:09:31 UTC
tomee git commit: TOMEE-1902 avoid mojarra to fail when CDI is not
activated
Repository: tomee
Updated Branches:
refs/heads/master 56ec4be8b -> 112743174
TOMEE-1902 avoid mojarra to fail when CDI is not activated
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/11274317
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/11274317
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/11274317
Branch: refs/heads/master
Commit: 112743174ddc842071657e324910444c70056c4d
Parents: 56ec4be
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Fri Aug 12 15:09:20 2016 +0200
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Fri Aug 12 15:09:20 2016 +0200
----------------------------------------------------------------------
.../tests/jsf/ejb/JSFInjectionTest.java | 2 ++
.../tomee/catalina/TomEEWebappClassLoader.java | 22 +++++++++++++++++---
2 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/11274317/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java
index 54ee332..43c63ab 100644
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java
+++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java
@@ -22,6 +22,7 @@ import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,6 +42,7 @@ public class JSFInjectionTest extends JSFs {
public static WebArchive getArchive() {
return base("jsf-injection-test.war")
.addClasses(DummyEJB.class, DummyManagedBean.class)
+ .addAsWebInfResource(new StringAsset("openejb.cdi.activated = false"), "application.properties") // ensure plume doesn't fail without CDI on
.addAsWebResource(new ClassLoaderAsset(
JSFInjectionTest.class.getPackage().getName().replace('.', '/').concat("/").concat("dummy.xhtml")), "dummy.xhtml");
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/11274317/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
index fbdd7bd..0ca7a1e 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
@@ -39,6 +39,7 @@ import org.apache.openejb.util.Logger;
import org.apache.openejb.util.URLs;
import org.apache.openejb.util.classloader.URLClassLoaderFirst;
import org.apache.openejb.util.reflection.Reflections;
+import org.apache.webbeans.config.WebBeansContext;
import java.io.File;
import java.io.IOException;
@@ -50,6 +51,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -461,11 +463,25 @@ public class TomEEWebappClassLoader extends ParallelWebappClassLoader {
it.remove();
}
}
- if (list.size() == 1) {
- return Collections.enumeration(list);
- }
return Collections.enumeration(list);
}
+ if ("META-INF/faces-config.xml".equals(name)) { // mojarra workaround
+ try {
+ if (WebBeansContext.currentInstance() == null && Boolean.parseBoolean(SystemInstance.get().getProperty("tomee.jsf.ignore-owb", "true"))) {
+ final Collection<URL> list = new HashSet<>(Collections.list(super.getResources(name)));
+ final Iterator<URL> it = list.iterator();
+ while (it.hasNext()) {
+ final String fileName = Files.toFile(it.next()).getName();
+ if (fileName.startsWith("openwebbeans-"/*jsf|el22*/) && fileName.endsWith(".jar")) {
+ it.remove();
+ }
+ }
+ return Collections.enumeration(list);
+ }
+ } catch (final Throwable th) {
+ // no-op
+ }
+ }
return URLClassLoaderFirst.filterResources(name, super.getResources(name));
}