Author: rmannibucau
Date: Mon Sep 26 22:05:40 2011
New Revision: 1176099

URL: http://svn.apache.org/viewvc?rev=1176099&view=rev
Log:
adding a JMS test

Added:
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/main/tomcat/conf/openejb.xml
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/MdbIT.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstEjb.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstMdb.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/TstRestService.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstMdbServlet.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstServlet.java
Removed:
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TstEjb.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TstRestService.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TstServlet.java
Modified:
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/RestIT.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TomEEContainerIT.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/util/RemoteUtil.java

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/main/tomcat/conf/openejb.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/main/tomcat/conf/openejb.xml?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/main/tomcat/conf/openejb.xml
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/main/tomcat/conf/openejb.xml
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openejb>
+  <Container id="My Singleton Container" type="SINGLETON">
+    AccessTimeout = 30 seconds
+  </Container>
+
+  <Container id="My Stateful Container" type="STATEFUL">
+    AccessTimeout = 30 seconds
+    Passivator   org.apache.openejb.core.stateful.SimplePassivater
+    TimeOut  20
+    Capacity  1000
+    BulkPassivate  100
+  </Container>
+
+  <Container id="My Stateless Container" type="STATELESS">
+    AccessTimeout = 30 seconds
+    MaxSize = 10
+    MinSize = 0
+    StrictPooling = true
+    MaxAge = 0 hours
+    IdleTimeout = 0 minutes
+  </Container>
+
+  <Resource id="My DataSource" type="DataSource">
+    JdbcDriver org.hsqldb.jdbcDriver
+    JdbcUrl jdbc:hsqldb:file:data/hsqldb/hsqldb
+    UserName sa
+    Password
+    JtaManaged true
+  </Resource>
+
+  <Resource id="My Unmanaged DataSource" type="DataSource">
+    JdbcDriver org.hsqldb.jdbcDriver
+    JdbcUrl jdbc:hsqldb:file:data/hsqldb/hsqldb
+    UserName sa
+    Password
+    JtaManaged false
+  </Resource>
+
+  <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
+    BrokerXmlConfig
+    ServerUrl vm://localhost?broker.persistent=false
+  </Resource>
+
+  <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
+    ResourceAdapter MyJmsResourceAdapter
+  </Resource>
+
+  <Container id="MyJmsMdbContainer" ctype="MESSAGE">
+    ResourceAdapter MyJmsResourceAdapter
+  </Container>
+
+  <Resource id="QUEUE" type="javax.jms.Queue"/>
+
+  <Deployments dir="apps/" />
+</openejb>

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/MdbIT.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/MdbIT.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/MdbIT.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/MdbIT.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,53 @@
+/**
+ * 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.remote;
+
+import org.apache.openejb.arquillian.remote.ejb.TstMdb;
+import org.apache.openejb.arquillian.remote.rest.TstRestService;
+import org.apache.openejb.arquillian.remote.servlet.TstMdbServlet;
+import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+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.spec.servlet.web.WebAppDescriptor;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static junit.framework.Assert.assertTrue;
+import static org.apache.openejb.arquillian.remote.util.RemoteUtil.readContent;
+
+@RunWith(Arquillian.class)
+public class MdbIT {
+    @Deployment(testable = false) public static WebArchive createDeployment() {
+        return ShrinkWrap.create(WebArchive.class, "test-mdb.war")
+                .addClass(TstMdb.class)
+                .addClass(TstMdbServlet.class)
+                .setWebXML(new StringAsset(
+                    Descriptors.create(WebAppDescriptor.class)
+                        .version("3.0").displayName("Rest Test")
+                        .servlet(TstMdbServlet.class, "/test")
+                        .exportAsString()));
+    }
+
+    @Test public void helloRestService() throws Exception {
+        final String content = 
readContent("http://localhost:8080/test-mdb/test";);
+        assertTrue("last message = a servlet sent a message to a 
MDB".equals(content));
+    }
+
+}

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/RestIT.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/RestIT.java?rev=1176099&r1=1176098&r2=1176099&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/RestIT.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/RestIT.java
 Mon Sep 26 22:05:40 2011
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.arquillian.remote;
 
+import org.apache.openejb.arquillian.remote.rest.TstRestService;
 import org.jboss.arquillian.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
@@ -41,7 +42,7 @@ public class RestIT {
 
     @Test public void helloRestService() throws Exception {
         final String content = 
readContent("http://localhost:8080/test-rest/rest/foo";);
-        assertTrue(content.contains("hello, foo"));
+        assertTrue("hello, foo".equals(content));
     }
 
 }

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TomEEContainerIT.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TomEEContainerIT.java?rev=1176099&r1=1176098&r2=1176099&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TomEEContainerIT.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/TomEEContainerIT.java
 Mon Sep 26 22:05:40 2011
@@ -22,6 +22,8 @@ import java.net.URL;
 
 import junit.framework.Assert;
 
+import org.apache.openejb.arquillian.remote.ejb.TstEjb;
+import org.apache.openejb.arquillian.remote.servlet.TstServlet;
 import org.jboss.arquillian.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstEjb.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstEjb.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstEjb.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstEjb.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,28 @@
+/**
+ * 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.remote.ejb;
+
+import javax.ejb.Stateless;
+
+@Stateless
+public class TstEjb {
+
+    public String greet(String name) {
+        return "Hello, " + name;
+    }
+
+}

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstMdb.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstMdb.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstMdb.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/ejb/TstMdb.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,40 @@
+package org.apache.openejb.arquillian.remote.ejb;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.Queue;
+import javax.jms.TextMessage;
+import java.util.LinkedList;
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * @author rmannibucau
+ */
+@MessageDriven(activationConfig = {
+        @ActivationConfigProperty(propertyName = "destinationType", 
propertyValue = "javax.jms.Queue"),
+        @ActivationConfigProperty(propertyName = "destination", propertyValue 
= "QUEUE")})
+public class TstMdb implements MessageListener {
+    @Override public void onMessage(Message message) {
+        if (message instanceof TextMessage) {
+            String text = "";
+            try {
+                text = ((TextMessage) message).getText();
+            } catch (JMSException jmsEx) {
+                // no-op
+            }
+            MessageKeeper.MESSAGES.add(text);
+            Latch.LATCH.countDown();
+        }
+    }
+
+    public static class Latch {
+        public static final CountDownLatch LATCH = new CountDownLatch(1);
+    }
+
+    public static class MessageKeeper {
+        public static final LinkedList<String> MESSAGES = new 
LinkedList<String>();
+    }
+}

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/TstRestService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/TstRestService.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/TstRestService.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/rest/TstRestService.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,17 @@
+package org.apache.openejb.arquillian.remote.rest;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+/**
+ * @author rmannibucau
+ */
+@Path("/rest")
+public class TstRestService {
+    @Path("{name}") @GET @Produces(MediaType.TEXT_PLAIN) public String 
hello(@PathParam("name") String name) {
+        return "hello, " + name;
+    }
+}

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstMdbServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstMdbServlet.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstMdbServlet.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstMdbServlet.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,50 @@
+package org.apache.openejb.arquillian.remote.servlet;
+
+import org.apache.openejb.arquillian.remote.ejb.TstMdb;
+
+import javax.annotation.Resource;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.DeliveryMode;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author rmannibucau
+ */
+public class TstMdbServlet extends HttpServlet {
+    @Resource private ConnectionFactory connectionFactory;
+    @Resource(name = "QUEUE") private Queue queue;
+
+    @Override protected void doGet(HttpServletRequest req, HttpServletResponse 
resp) throws ServletException, IOException {
+        try {
+            Connection connection = connectionFactory.createConnection();
+            Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
+            MessageProducer producer = session.createProducer(queue);
+            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+            producer.send(session.createTextMessage("a servlet sent a message 
to a MDB"));
+
+            producer.close();
+            session.close();
+            connection.close();
+
+            TstMdb.Latch.LATCH.await(30, TimeUnit.SECONDS);
+        } catch (Exception ex) {
+            resp.getOutputStream().print("no message: " + ex.getMessage());
+            return;
+        }
+        if (TstMdb.MessageKeeper.MESSAGES.size() > 0) {
+            resp.getOutputStream().print("last message = " + 
TstMdb.MessageKeeper.MESSAGES.getLast());
+        } else {
+            resp.getOutputStream().print("no message");
+        }
+    }
+}

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstServlet.java?rev=1176099&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstServlet.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/servlet/TstServlet.java
 Mon Sep 26 22:05:40 2011
@@ -0,0 +1,44 @@
+/**
+ * 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.remote.servlet;
+
+import org.apache.openejb.arquillian.remote.ejb.TstEjb;
+
+import java.io.IOException;
+
+import javax.ejb.EJB;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class TstServlet extends HttpServlet {
+
+    @EJB
+    private TstEjb myEjb;
+
+    @Override
+    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
+        String name = req.getParameter("name");
+        if (name == null || name.length() == 0) {
+            name = "OpenEJB";
+        }
+
+        resp.getOutputStream().print(myEjb.greet(name));
+    }
+
+}

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/util/RemoteUtil.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/util/RemoteUtil.java?rev=1176099&r1=1176098&r2=1176099&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/util/RemoteUtil.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/remote/util/RemoteUtil.java
 Mon Sep 26 22:05:40 2011
@@ -15,7 +15,7 @@ public class RemoteUtil {
         // no-op
     }
 
-    public static String readContent(String url) throws MalformedURLException, 
IOException, UnsupportedEncodingException {
+    public static String readContent(String url) throws IOException {
         InputStream is = new URL(url).openStream();
         ByteArrayOutputStream os = new ByteArrayOutputStream();
 


Reply via email to