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));