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