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/07/15 09:37:28 UTC
svn commit: r1361641 - in
/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader:
./ HashCdiExtension.java HashServlet.java webapp/
webapp/WebAppClassLoaderTest.java
Author: rmannibucau
Date: Sun Jul 15 07:37:28 2012
New Revision: 1361641
URL: http://svn.apache.org/viewvc?rev=1361641&view=rev
Log:
adding a test for beanmanagerholder like impl
Added:
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashCdiExtension.java
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashServlet.java
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/WebAppClassLoaderTest.java
Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashCdiExtension.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashCdiExtension.java?rev=1361641&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashCdiExtension.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashCdiExtension.java Sun Jul 15 07:37:28 2012
@@ -0,0 +1,18 @@
+package org.apache.openejb.arquillian.tests.classloader;
+
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.Extension;
+import java.util.HashMap;
+import java.util.Map;
+
+// bean manager holder to check we are compatible with such impl
+public class HashCdiExtension implements Extension {
+ public static Map<ClassLoader, BeanManager> BMS = new HashMap<ClassLoader, BeanManager>();
+
+ protected void setBeanManager(@Observes final AfterBeanDiscovery afterBeanDiscovery, final BeanManager beanManager) {
+ final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ BMS.put(tccl, beanManager);
+ }
+}
Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashServlet.java?rev=1361641&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashServlet.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/HashServlet.java Sun Jul 15 07:37:28 2012
@@ -0,0 +1,21 @@
+package org.apache.openejb.arquillian.tests.classloader;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebServlet(urlPatterns = "/hash")
+public class HashServlet extends HttpServlet {
+ @Override
+ protected void service(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ final BeanManager bm = HashCdiExtension.BMS.get(tccl);
+ // todo: do some lookup
+ resp.getWriter().write(Boolean.toString(bm != null));
+ }
+}
Added: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/WebAppClassLoaderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/WebAppClassLoaderTest.java?rev=1361641&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/WebAppClassLoaderTest.java (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/src/test/java/org/apache/openejb/arquillian/tests/classloader/webapp/WebAppClassLoaderTest.java Sun Jul 15 07:37:28 2012
@@ -0,0 +1,39 @@
+package org.apache.openejb.arquillian.tests.classloader.webapp;
+
+import org.apache.openejb.arquillian.tests.classloader.HashCdiExtension;
+import org.apache.openejb.arquillian.tests.classloader.HashServlet;
+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.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.enterprise.inject.spi.Extension;
+import java.io.IOException;
+import java.net.URL;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Arquillian.class)
+public class WebAppClassLoaderTest {
+ @ArquillianResource
+ private URL url;
+
+ @Deployment
+ public static WebArchive war() {
+ return ShrinkWrap.create(WebArchive.class)
+ .addClasses(HashCdiExtension.class, HashServlet.class)
+ .addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"))
+ .addAsServiceProvider(Extension.class, HashCdiExtension.class);
+ }
+
+ @Test
+ public void valid() throws IOException {
+ assertEquals("true", IO.slurp(new URL(url.toExternalForm() + "hash")));
+ }
+}