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 2012/08/08 18:51:13 UTC

svn commit: r1370831 - in /openejb/trunk/openejb: arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/ arquillian/arquillia...

Author: rmannibucau
Date: Wed Aug  8 16:51:11 2012
New Revision: 1370831

URL: http://svn.apache.org/viewvc?rev=1370831&view=rev
Log:
TOMEE-359 TOMEE-355 TOMEE-358 activating myfaces discovery by default, using our filtering mecanism to filter fragment and adding jsf+@Resource arquillian test

Added:
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFs.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyEJB.java
      - copied, changed from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyEJB.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyManagedBean.java
      - copied, changed from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyManagedBean.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java
      - copied, changed from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFInjectionTest.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/enventry/
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/JSFResourceInjectionTest.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/ResourceManagedBean.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/ejb/
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/ejb/dummy.xhtml
      - copied unchanged from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/dummy.xhtml
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/resource.xhtml
Removed:
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyEJB.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyManagedBean.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFInjectionTest.java
    openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/dummy.xhtml
Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
    openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomExceptionMapperTest.java
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderTest.java
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderWithConfigTest.java
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/DiscoverCustomProviderTest.java
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EjbDeploymentTest.java
    openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/PathParamAtClassLevelTest.java
    openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java
    openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WebServiceWithAnUserInterceptorTest.java
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
    openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
    openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java

Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFs.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFs.java?rev=1370831&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFs.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFs.java Wed Aug  8 16:51:11 2012
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.arquillian.tests.jsf;
+
+import org.apache.myfaces.extensions.cdi.jsf.impl.projectstage.JsfProjectStageProducer;
+import org.apache.ziplock.JarLocation;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.webapp30.WebAppDescriptor;
+
+import javax.faces.webapp.FacesServlet;
+
+public final class JSFs {
+    private JSFs() {
+        // no-op
+    }
+
+    public static WebArchive base(final String name) {
+        final String webXml = Descriptors.create(WebAppDescriptor.class)
+                .createServlet()
+                .servletClass(FacesServlet.class.getName())
+                .servletName("jsf")
+                .loadOnStartup(1)
+                .up()
+                .createServletMapping()
+                .servletName("jsf")
+                .urlPattern("*.xhtml")
+                .up()
+                .exportAsString();
+
+        return ShrinkWrap.create(WebArchive.class, name)
+                .setWebXML(new StringAsset(webXml))
+                .addAsLibraries(JarLocation.jarLocation(JsfProjectStageProducer.class)); // codi because a test depends on it and needed embedded case
+    }
+}

Copied: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyEJB.java (from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyEJB.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyEJB.java?p2=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyEJB.java&p1=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyEJB.java&r1=1370679&r2=1370831&rev=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyEJB.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyEJB.java Wed Aug  8 16:51:11 2012
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.openejb.arquillian.tests.jsf;
+package org.apache.openejb.arquillian.tests.jsf.ejb;
 
 import javax.ejb.Stateless;
 
 @Stateless
 public class DummyEJB {
     public String foo() {
-        return "foo";
+        return "foobar";
     }
 }

Copied: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyManagedBean.java (from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyManagedBean.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyManagedBean.java?p2=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyManagedBean.java&p1=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyManagedBean.java&r1=1370679&r2=1370831&rev=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/DummyManagedBean.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/DummyManagedBean.java Wed Aug  8 16:51:11 2012
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.openejb.arquillian.tests.jsf;
+package org.apache.openejb.arquillian.tests.jsf.ejb;
 
 import javax.ejb.EJB;
 import javax.faces.bean.ManagedBean;

Copied: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java (from r1370679, openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFInjectionTest.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java?p2=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java&p1=openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFInjectionTest.java&r1=1370679&r2=1370831&rev=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/JSFInjectionTest.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/ejb/JSFInjectionTest.java Wed Aug  8 16:51:11 2012
@@ -14,12 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.openejb.arquillian.tests.jsf;
+package org.apache.openejb.arquillian.tests.jsf.ejb;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
+import org.apache.myfaces.extensions.cdi.jsf.impl.projectstage.JsfProjectStageProducer;
+import org.apache.openejb.arquillian.tests.jsf.JSFs;
+import org.apache.openejb.loader.IO;
 import org.apache.ziplock.JarLocation;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -33,6 +32,10 @@ import org.jboss.shrinkwrap.descriptor.a
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import javax.faces.webapp.FacesServlet;
+import java.io.IOException;
+import java.net.URL;
+
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertTrue;
 
@@ -43,36 +46,20 @@ public class JSFInjectionTest {
 
     @Deployment(testable = false)
     public static WebArchive getArchive() {
-        final WebAppDescriptor descriptor = Descriptors.create(WebAppDescriptor.class)
-                .version("3.0");
-
-        return ShrinkWrap.create(WebArchive.class, "jsf-injection-test.war")
+        return JSFs.base("jsf-injection-test.war")
+                .addPackage(JSFInjectionTest.class.getPackage())
                 .addAsWebResource(new ClassLoaderAsset(
-                        JSFInjectionTest.class.getPackage().getName().replace('.', '/').concat("/").concat("dummy.xhtml")), "dummy.xhtml")
-                .addAsLibraries(JarLocation.jarLocation(Test.class)) // junit
-                .setWebXML(new StringAsset(descriptor.exportAsString()));
+                        JSFInjectionTest.class.getPackage().getName().replace('.', '/').concat("/").concat("dummy.xhtml")), "dummy.xhtml");
     }
 
     @Test
-    public void testProjectStage() throws Exception {
-        validateTest("foo");
+    public void testEjbInjection() throws Exception {
+        validateTest("foobar");
     }
 
     private void validateTest(final String expectedOutput) throws IOException {
-        final InputStream is = new URL(url.toExternalForm() + "dummy.xhtml").openStream();
-        final ByteArrayOutputStream os = new ByteArrayOutputStream();
-
-        int bytesRead;
-        byte[] buffer = new byte[8192];
-        while ((bytesRead = is.read(buffer)) > -1) {
-            os.write(buffer, 0, bytesRead);
-        }
-
-        is.close();
-        os.close();
-
-        String output = new String(os.toByteArray(), "UTF-8");
+        final String output = IO.slurp(new URL(url.toExternalForm() + "dummy.xhtml"));
         assertNotNull("Response shouldn't be null", output);
-        assertTrue("Output should contain: " + expectedOutput, output.contains(expectedOutput));
+        assertTrue("Output should contain: " + expectedOutput + "; and not " + output, output.contains(expectedOutput));
     }
 }

Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/JSFResourceInjectionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/JSFResourceInjectionTest.java?rev=1370831&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/JSFResourceInjectionTest.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/JSFResourceInjectionTest.java Wed Aug  8 16:51:11 2012
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.arquillian.tests.jsf.resource;
+
+import org.apache.openejb.arquillian.tests.jsf.JSFs;
+import org.apache.openejb.loader.IO;
+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.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.IOException;
+import java.net.URL;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
+@RunWith(Arquillian.class)
+public class JSFResourceInjectionTest {
+    @ArquillianResource
+    private URL url;
+
+    @Deployment(testable = false)
+    public static WebArchive getArchive() {
+        return JSFs.base("jsf-resource-injection-test.war")
+                .addClass(ResourceManagedBean.class)
+                .addAsWebResource(new ClassLoaderAsset(
+                        JSFResourceInjectionTest.class.getPackage()
+                                .getName().replace('.', '/').concat("/resource.xhtml")), "resource.xhtml");
+    }
+
+    @Test
+    public void validResourceInjection() throws Exception {
+        validateTest("DataSource");
+    }
+
+    private void validateTest(final String expectedOutput) throws IOException {
+        final String output = IO.slurp(new URL(url.toExternalForm() + "resource.xhtml"));
+        assertNotNull("Response shouldn't be null", output);
+        assertTrue("Output should contain: " + expectedOutput + " and not " + output, output.contains(expectedOutput));
+    }
+}

Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/ResourceManagedBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/ResourceManagedBean.java?rev=1370831&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/ResourceManagedBean.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/jsf/resource/ResourceManagedBean.java Wed Aug  8 16:51:11 2012
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.arquillian.tests.jsf.resource;
+
+import javax.annotation.Resource;
+import javax.faces.bean.ManagedBean;
+import javax.sql.DataSource;
+
+@ManagedBean
+public class ResourceManagedBean {
+    @Resource
+    private DataSource ds;
+
+    public String getFoo() {
+        return ds.toString();
+    }
+}

Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/resource.xhtml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/resource.xhtml?rev=1370831&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/resource.xhtml (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/resources/org/apache/openejb/arquillian/tests/jsf/resource/resource.xhtml Wed Aug  8 16:51:11 2012
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:h="http://java.sun.com/jsf/html">
+    <h:outputText value="#{resourceManagedBean.foo}"></h:outputText>
+</html>

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Wed Aug  8 16:51:11 2012
@@ -241,14 +241,30 @@ public class AnnotationDeployer implemen
     private static final ThreadLocal<DeploymentModule> currentModule = new ThreadLocal<DeploymentModule>();
     private static final Set<String> lookupMissing = new HashSet<String>(2);
     private static final String[] JSF_CLASSES = new String[] {
-            "javax.faces.bean.ManagedBean",
-            "javax.faces.component.FacesComponent",
-            "javax.faces.component.behavior.FacesBehavior",
+            "javax.faces.bean.ApplicationScoped",
+            "javax.faces.bean.CustomScoped",
             "javax.faces.convert.FacesConverter",
-            "javax.faces.event.NamedEvent",
             "javax.faces.render.FacesBehaviorRenderer",
+            "javax.faces.component.FacesComponent",
+            "javax.faces.convert.FacesConverter",
             "javax.faces.render.FacesRenderer",
-            "javax.faces.validator.FacesValidator"
+            "javax.faces.validator.FacesValidator",
+            "javax.faces.event.ListenerFor",
+            "javax.faces.event.ListenersFor",
+            "javax.faces.bean.ManagedBean",
+            "javax.faces.bean.ManagedProperty",
+            "javax.faces.event.NamedEvent",
+            "javax.faces.bean.NoneScoped",
+            "javax.faces.bean.ReferencedBean",
+            "javax.faces.bean.RequestScoped",
+            "javax.faces.application.ResourceDependencies",
+            "javax.faces.application.ResourceDependency",
+            "javax.faces.bean.SessionScoped",
+            "javax.faces.bean.ViewScoped",
+            "javax.faces.component.UIComponent",
+            "javax.faces.convert.Converter",
+            "javax.faces.validator.Validator",
+            "javax.faces.render.Renderer"
     };
 
     private static final String[] WEB_CLASSES = new String[] {

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java Wed Aug  8 16:51:11 2012
@@ -253,6 +253,15 @@ public class NewLoaderLogic {
         return read;
     }
 
+    public static String sanitize(final String value) {
+        if (value.endsWith("*.jar")) {
+            return value.substring(0, value.length() - 5);
+        } else if (value.endsWith("*")) {
+            return value.substring(0, value.length() - 1);
+        }
+        return value;
+    }
+
     public static String[] readInputStreamList(final InputStream is) {
 
         final List<String> list = new ArrayList<String>();
@@ -265,7 +274,7 @@ public class NewLoaderLogic {
 
             while ((line = reader.readLine()) != null) {
                 final String value = line.trim();
-                if (line.startsWith("#")) {
+                if (line.startsWith("#") || value.isEmpty()) {
                     continue;
                 }
 
@@ -273,8 +282,8 @@ public class NewLoaderLogic {
                     for (String v : readDefaultExclusions()) {
                         list.add(v);
                     }
-                } else if (!value.isEmpty()) {
-                    list.add(value);
+                } else {
+                    list.add(sanitize(value));
                 }
             }
         } catch (Throwable e) {

Modified: openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions Wed Aug  8 16:51:11 2012
@@ -6,6 +6,17 @@ activemq-
 aether-
 antlr-
 aopalliance-
+arquillian-common
+arquillian-config-
+arquillian-core-api-
+arquillian-core-impl-base
+arquillian-core-spi-
+arquillian-container-
+arquillian-junit-
+arquillian-test-api
+arquillian-test-impl-base
+arquillian-test-spi
+arquillian-tomee-
 avalon-framework-
 axis-
 axis2-
@@ -59,6 +70,7 @@ icu4j-
 idb-
 idea_rt.jar
 jackson-mapper-asl-
+jansi-
 jasypt-
 javaee-
 javaee-api
@@ -100,6 +112,8 @@ neethi-
 nekohtml-
 openejb-api
 openejb-client
+openejb-cxf
+openejb-cxf-rs
 openejb-cxf-bundle
 openejb-cxf-transport
 openejb-derby
@@ -108,11 +122,15 @@ openejb-hsql
 openejb-http
 openejb-javaagent
 openejb-jee
+openejb-jpa-integration
 openejb-jsf
 openejb-jstl
 openejb-loader
 openejb-openwebbeans
+openejb-provisionning
+openejb-rest
 openejb-server
+openejb-webservices
 openjpa-
 opensaml-
 openwebbeans-
@@ -121,6 +139,7 @@ ops4j-
 org.eclipse.
 org.junit.
 org.osgi.core-
+oro-
 pax-
 plexus-
 quartz-
@@ -131,6 +150,9 @@ scannotation-
 serializer-
 serp-
 servlet-api-
+sisu-inject
+sisu-guice
+shrinkwrap-
 slf4j-
 snappy-java-
 spring-
@@ -141,6 +163,7 @@ swizzle-
 testng-
 tomcat-
 tomee-
+velocity-
 wagon-
 webbeans-ee
 webbeans-ejb
@@ -160,3 +183,4 @@ xmlschema-
 xmlsec-
 xmltooling-
 xmlunit-
+ziplock-
\ No newline at end of file

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomExceptionMapperTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomExceptionMapperTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomExceptionMapperTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomExceptionMapperTest.java Wed Aug  8 16:51:11 2012
@@ -27,6 +27,7 @@ import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -40,6 +41,7 @@ public class CustomExceptionMapperTest {
     @BeforeClass public static void start() throws Exception {
         providers = System.getProperty(CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_KEY);
         final Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         properties.setProperty(CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_KEY, EM.class.getName());
         container = EJBContainer.createEJBContainer(properties);

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderTest.java Wed Aug  8 16:51:11 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -47,6 +48,7 @@ public class CustomProviderTest {
     @BeforeClass public static void start() throws Exception {
         providers = System.getProperty(CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_KEY);
         Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         properties.setProperty(CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_KEY, ReverseProvider.class.getName());
         properties.setProperty(CustomSpecificService.class.getName() + CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_SUFFIX, ConstantProvider.class.getName());

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderWithConfigTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderWithConfigTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderWithConfigTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CustomProviderWithConfigTest.java Wed Aug  8 16:51:11 2012
@@ -32,6 +32,7 @@ import javax.ws.rs.ext.MessageBodyWriter
 import javax.ws.rs.ext.Provider;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -44,6 +45,7 @@ public class CustomProviderWithConfigTes
     @BeforeClass
     public static void start() throws Exception {
         final Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         properties.setProperty(CxfRsHttpListener.OPENEJB_CXF_JAXRS_PROVIDERS_KEY, ConfigurableProvider.class.getName());
         properties.setProperty("openejb.cxf.rs.jaxb.properties", "faultStackTraceEnabled=true");

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/DiscoverCustomProviderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/DiscoverCustomProviderTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/DiscoverCustomProviderTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/DiscoverCustomProviderTest.java Wed Aug  8 16:51:11 2012
@@ -33,6 +33,7 @@ import javax.ws.rs.ext.MessageBodyWriter
 import javax.ws.rs.ext.Provider;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.apache.openejb.server.rest.RESTService;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -46,6 +47,7 @@ public class DiscoverCustomProviderTest 
     @BeforeClass
     public static void start() throws Exception {
         final Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         properties.setProperty(RESTService.OPENEJB_JAXRS_PROVIDERS_AUTO_PROP, "true");
         properties.setProperty("openejb.cxf.rs.jaxb.properties", "faultStackTraceEnabled=true");

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EjbDeploymentTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EjbDeploymentTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EjbDeploymentTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EjbDeploymentTest.java Wed Aug  8 16:51:11 2012
@@ -17,9 +17,9 @@
 
 package org.apache.openejb.server.cxf.rs;
 
-import javax.annotation.PostConstruct;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -44,6 +44,7 @@ public class EjbDeploymentTest {
 
     @BeforeClass public static void start() throws Exception {
         Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         container = EJBContainer.createEJBContainer(properties);
         service = (RESTIsCool) container.getContext().lookup("java:/global/openejb-cxf-rs/RESTIsCool");

Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/PathParamAtClassLevelTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/PathParamAtClassLevelTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/PathParamAtClassLevelTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/PathParamAtClassLevelTest.java Wed Aug  8 16:51:11 2012
@@ -29,6 +29,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Request;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -42,6 +43,7 @@ public class PathParamAtClassLevelTest {
 
     @BeforeClass public static void start() throws Exception {
         Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf-rs.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
         container = EJBContainer.createEJBContainer(properties);
     }

Modified: openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java Wed Aug  8 16:51:11 2012
@@ -17,6 +17,7 @@
 package org.apache.openejb.server.cxf;
 
 import junit.framework.TestCase;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.apache.openejb.server.cxf.fault.AuthenticatorService;
 import org.apache.openejb.server.cxf.fault.WrongPasswordException;
 import org.apache.openejb.server.cxf.fault.WrongPasswordRuntimeException;
@@ -40,6 +41,7 @@ public class CxfJaxWsProviderTest extend
 
     protected void setUp() throws Exception {
         Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf.*");
         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory");
         properties.setProperty("openejb.embedded.remotable", "true");
 

Modified: openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WebServiceWithAnUserInterceptorTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WebServiceWithAnUserInterceptorTest.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WebServiceWithAnUserInterceptorTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WebServiceWithAnUserInterceptorTest.java Wed Aug  8 16:51:11 2012
@@ -18,6 +18,7 @@
 package org.apache.openejb.server.cxf;
 
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentFilterable;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -41,6 +42,7 @@ public class WebServiceWithAnUserInterce
 
     @BeforeClass public static void start() {
         final Properties properties = new Properties();
+        properties.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*openejb-cxf.*");
         properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
 
         container = EJBContainer.createEJBContainer(properties);

Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Wed Aug  8 16:51:11 2012
@@ -16,23 +16,26 @@
  */
 package org.apache.tomee.catalina;
 
+import org.apache.catalina.Context;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.deploy.WebXml;
 import org.apache.catalina.startup.ContextConfig;
+import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
-import org.apache.tomcat.util.ExceptionUtils;
-import org.apache.tomcat.util.bcel.classfile.ClassFormatException;
 import org.xml.sax.InputSource;
 
+import javax.servlet.ServletContainerInitializer;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 
 public class OpenEJBContextConfig extends ContextConfig {
 
@@ -75,6 +78,44 @@ public class OpenEJBContextConfig extend
     }
 
     @Override
+    protected void webConfig() {
+        super.webConfig();
+
+        // add myfaces auto-initializer
+        try {
+            final Class<?> myfacesInitializer = Class.forName("org.apache.myfaces.ee6.MyFacesContainerInitializer", true, context.getLoader().getClassLoader());
+            final ServletContainerInitializer instance = (ServletContainerInitializer) myfacesInitializer.newInstance();
+            context.addServletContainerInitializer(instance, getJsfClasses(context));
+            context.addApplicationListener("org.apache.myfaces.webapp.StartupServletContextListener");
+        } catch (Exception ignored) {
+            // no-op
+        }
+    }
+
+    private Set<Class<?>> getJsfClasses(final Context context) {
+        final WebAppBuilder builder = SystemInstance.get().getComponent(WebAppBuilder.class);
+        final ClassLoader cl = context.getLoader().getClassLoader();
+        final Map<String, Set<String>> scanned = builder.getJsfClasses().get(cl);
+
+        if (scanned == null || scanned.isEmpty()) {
+            return null;
+        }
+
+        final Set<Class<?>> classes = new HashSet<Class<?>>();
+        for (Set<String> entry : scanned.values()) {
+            for (String name : entry) {
+                try {
+                    classes.add(cl.loadClass(name));
+                } catch (ClassNotFoundException ignored) {
+                    logger.warning("class '" + name + "' was found but can't be loaded as a JSF class");
+                }
+            }
+        }
+
+        return classes;
+    }
+
+    @Override
     protected void parseWebXml(InputSource source, WebXml dest, boolean fragment) {
         super.parseWebXml(source, dest, fragment);
     }

Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java Wed Aug  8 16:51:11 2012
@@ -197,7 +197,7 @@ public class TomcatLoader implements Loa
             final String jarToSkipProp = catalinaProps.getProperty("tomcat.util.scan.DefaultJarScanner.jarsToSkip");
             if (jarToSkipProp != null) {
                 for (String s : jarToSkipProp.split(",")) {
-                    exclusions.add(s.trim());
+                    exclusions.add(NewLoaderLogic.sanitize(s.trim()));
                 }
             }
         }

Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java Wed Aug  8 16:51:11 2012
@@ -18,10 +18,13 @@ package org.apache.tomee.loader;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.openejb.config.NewLoaderLogic;
 import org.apache.tomcat.JarScanner;
 import org.apache.tomcat.JarScannerCallback;
 import org.apache.tomcat.util.res.StringManager;
 import org.apache.tomcat.util.scan.Constants;
+import org.apache.xbean.finder.filter.Filter;
+import org.apache.xbean.finder.filter.Filters;
 
 import javax.servlet.ServletContext;
 import java.io.File;
@@ -61,19 +64,9 @@ public class EmbeddedJarScanner implemen
     public void scan(ServletContext context, ClassLoader classloader, JarScannerCallback callback, Set<String> jarsToSkip) {
 
         try {
-            final UrlSet classpath = new UrlSet(classloader);
+            final org.apache.xbean.finder.UrlSet scan = NewLoaderLogic.applyBuiltinExcludes(new org.apache.xbean.finder.UrlSet(classloader), null);
 
-            UrlSet excluded = classpath.exclude(".*/WEB-INF/lib/.*");
-
-            // TODO Commenting out these two lines can have an impact on JSF
-            // There's something that gets pulled from the classpath here
-            // lets figure out what it is so we can optimize it as the effect
-            // of adding myfaces here is that the entire jar is scanned, which
-            // is really slow.
-
-//            excluded = excluded.exclude(".*myfaces-impl-.*");
-
-            final UrlSet scan = classpath.exclude(excluded);
+            // scan = scan.exclude(".*/WEB-INF/lib/.*"); // doing it simply prevent ServletContainerInitializer to de discovered
 
             for (URL url : scan) {
                 // Need to scan this JAR

Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java?rev=1370831&r1=1370830&r2=1370831&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java Wed Aug  8 16:51:11 2012
@@ -47,7 +47,7 @@ public class TomEEJarScanner extends Sta
 
     private static final Log log = LogFactory.getLog(StandardJarScanner.class);
 
-    private static final Set<String> defaultJarsToSkip = new HashSet<String>();
+    protected static final Set<String[]> DEFAULT_JARS_TO_SKIP;
 
     /**
      * The string resources for this package.
@@ -55,6 +55,7 @@ public class TomEEJarScanner extends Sta
     private static final StringManager sm = StringManager.getManager(Constants.Package);
 
     static {
+        final Set<String> defaultJarsToSkip = new HashSet<String>();
         String jarList = System.getProperty(Constants.SKIP_JARS_PROPERTY);
         if (jarList != null) {
             StringTokenizer tokenizer = new StringTokenizer(jarList, ",");
@@ -62,6 +63,12 @@ public class TomEEJarScanner extends Sta
                 defaultJarsToSkip.add(tokenizer.nextToken());
             }
         }
+
+        final Set<String[]> ignoredJarsTokens = new HashSet<String[]>();
+        for (String pattern : defaultJarsToSkip) {
+            ignoredJarsTokens.add(Matcher.tokenizePathAsArray(pattern));
+        }
+        DEFAULT_JARS_TO_SKIP = ignoredJarsTokens;
     }
 
     @Override
@@ -71,14 +78,6 @@ public class TomEEJarScanner extends Sta
             embeddedJarScanner.scan(context, classLoader, callback, jarsToIgnore);
         } else if ("TldJarScannerCallback".equals(callback.getClass().getSimpleName())) {
 
-            final Set<String> ignoredJars = defaultJarsToSkip;
-
-            final Set<String[]> ignoredJarsTokens = new HashSet<String[]>();
-
-            for (String pattern : ignoredJars) {
-                ignoredJarsTokens.add(Matcher.tokenizePathAsArray(pattern));
-            }
-
             // Scan WEB-INF/lib
             Set<String> dirList = context.getResourcePaths(Constants.WEB_INF_LIB);
             if (dirList != null) {
@@ -86,7 +85,7 @@ public class TomEEJarScanner extends Sta
                 while (it.hasNext()) {
                     String path = it.next();
                     if (path.endsWith(Constants.JAR_EXT) &&
-                            !Matcher.matchPath(ignoredJarsTokens,
+                            !Matcher.matchPath(DEFAULT_JARS_TO_SKIP,
                                     path.substring(path.lastIndexOf('/') + 1))) {
                         // Need to scan this JAR
                         URL url = null;
@@ -129,7 +128,7 @@ public class TomEEJarScanner extends Sta
 
                         // Skip JARs known not to be interesting and JARs
                         // in WEB-INF/lib we have already scanned
-                        if (jarName != null && !(Matcher.matchPath(ignoredJarsTokens, jarName) || url.toString().contains(Constants.WEB_INF_LIB + jarName))) {
+                        if (jarName != null && !(Matcher.matchPath(DEFAULT_JARS_TO_SKIP, jarName) || url.toString().contains(Constants.WEB_INF_LIB + jarName))) {
 
                             if (log.isDebugEnabled()) {
                                 log.debug(sm.getString("jarScan.classloaderJarScan", url));