[jbpm-commits] JBoss JBPM SVN: r6043 - in jbpm4/trunk: modules/distro/src/main/files/install/src/jboss/log and 6 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Dec 24 07:32:26 EST 2009
Author: tom.baeyens at jboss.com
Date: 2009-12-24 07:32:25 -0500 (Thu, 24 Dec 2009)
New Revision: 6043
Added:
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsNonXATopicListener.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsXATopicListener.java
Modified:
jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml
jbpm4/trunk/modules/distro/src/main/files/install/src/jboss/log/jboss-log4j.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsBinding.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsTopicListener.java
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/jms/JmsTopicTest.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml
jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml
jbpm4/trunk/qa/build.xml
Log:
JBPM-2695 jms split up between xa and non-xa usage
Modified: jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml
===================================================================
--- jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-Incubation.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -930,11 +930,21 @@
<section id="jms">
<title><literal>jms</literal> activity</title>
+ <para>Disclaimer: this activity is not yet stable. Two aspects will be revisisted
+ in following releases:</para>
+ <itemizedlist>
+ <listitem>Binding the non-xa use of JMS to the standard transaction</listitem>
+ <listitem>We're still figuring out why in JBoss the java:JmsXA connection
+ factory doesn't implement XAConnectionFactory. And that we have to use the
+ non-XA JMS API's for sending and retrieving messages. That is why we've
+ put <literal>transacted="false"</literal> in our enterprise QA run processes
+ (used for docs here). And that is why we use method <literal>jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);</literal>
+ in our test cases that run on JBoss (also used in docs here)</listitem>
+ </itemizedlist>
<para>
The <literal>jms</literal> activity provides users with convenience for sending JMS messages.
At this moment the sending of three different types of JMS messages is possible: text, object
and map. Specifying message properties is not yet supported.
- In the future the functionality may be elaborated to cover this and more of the JMS specification.
</para>
<table><title><literal>jms</literal> attributes:</title>
@@ -993,7 +1003,14 @@
that will be used to lookup the corresponding objects in JNDI. The lookup is done like this:
</para>
<programlisting>InitialContext initialContext = new InitialContext();
-Destination destination = (Destination) initialContext.lookup(destinationName);</programlisting>
+Destination destination = (Destination) initialContext.lookup(destinationName);
+Object connectionFactory = initialContext.lookup(connectionFactoryName);</programlisting>
+ <para>The <literal>jms</literal> activity will use the JMS queue apis if the destination
+ is an <literal>instanceof</literal> Queue. Analogue for topics.
+ </para>
+ <para>The <literal>jms</literal> activity will use the XA JMS apis if the connectionFactory
+ is an <literal>instanceof</literal> XAConnectionFactory. Analogue for plain ConnectionFactory's.
+ </para>
<para>So if you're running inside an appserver, then the <literal>new InitialContext()</literal>
will see the queue's and topics configured in the appserver.</para>
<para>When your're using the JMS mocking
@@ -1002,9 +1019,6 @@
<para>When you're running as a remote application client, then you have to
<ulink url="http://java.sun.com/products/jndi/tutorial/beyond/env/source.html">specify
the jndi environment with system properties</ulink>.</para>
- <para>The <literal>jms</literal> activity will use the JMS queue apis if the destination
- is an <literal>instanceof</literal> Queue. Analogue for topics.
- </para>
<table><title><literal>jms</literal> elements:</title>
<tgroup cols="3" rowsep="1" colsep="1">
@@ -1060,10 +1074,14 @@
<para>Following test helper methods are based solely on plain JMS apis and hence they work in
a standalone environment as well as in an appserver environment:</para>
<itemizedlist>
- <listitem>JbpmTestCase.jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName)</listitem>
- <listitem>JbpmTestCase.jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout)</listitem>
- <listitem>JbpmTestCase.jmsStartTopicListener(String connectionFactoryJndiName, String topicJndiName)</listitem>
+ <listitem>JbpmTestCase.jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName)
+ with defaults 1000, true, Session.AUTO_ACKNOWLEDGE for parameters timeout, transacted and acknowledgeMode respectively</listitem>
+ <listitem>JbpmTestCase.jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode)</listitem>
+ <listitem>JbpmTestCase.jmsConsumeMessageFromQueueXA(String connectionFactoryJndiName, String queueJndiName, long timeout)</listitem>
+ <listitem>JbpmTestCase.jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode)</listitem>
+ <listitem>JbpmTestCase.jmsAssertQueueEmptyXA(String connectionFactoryJndiName, String queueJndiName, long timeout)</listitem>
<listitem>JbpmTestCase.jmsStartTopicListener(String connectionFactoryJndiName, String topicJndiName, boolean transacted, int acknowledgeMode)</listitem>
+ <listitem>JbpmTestCase.jmsStartTopicListenerXA(String connectionFactoryJndiName, String topicJndiName)</listitem>
<listitem>JmsTopicListener.getNextMesssage(long timeout)</listitem>
<listitem>JmsTopicListener.stop()</listitem>
</itemizedlist>
@@ -1108,7 +1126,8 @@
<emphasis role="bold"><jms name="send message"
connection-factory="java:JmsXA"
- destination="queue/jbpm-test-queue">
+ destination="queue/jbpm-test-queue"
+ transacted="false">
<text>This is the body</text>
<transition to="wait"/>
</jms></emphasis>
@@ -1125,7 +1144,7 @@
<programlisting>executionService.startProcessInstanceByKey("JmsQueueText");
TextMessage textMessage = (TextMessage)
- jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertEquals("This is the body", textMessage.getText());</programlisting>
<para>
The relevant code is shown above in boldface. The rest of the method is boilerplate code needed to
@@ -1148,7 +1167,8 @@
<emphasis role="bold"><jms name="send message"
connection-factory="java:JmsXA"
- destination="queue/jbpm-test-queue">
+ destination="queue/jbpm-test-queue"
+ transacted="false">
<object expr="${object}"/>
<transition to="wait"/>
</jms></emphasis>
@@ -1167,7 +1187,7 @@
executionService.startProcessInstanceByKey("JmsQueueObject", variables);
ObjectMessage objectMessage = (ObjectMessage)
- jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertEquals("this is the object", objectMessage.getObject());</programlisting>
</section>
@@ -1186,7 +1206,8 @@
<emphasis role="bold"><jms name="send message"
connection-factory="java:JmsXA"
- destination="queue/jbpm-test-queue">
+ destination="queue/jbpm-test-queue"
+ transacted="false">
<map>
<entry>
<key><string value="x"/></key>
@@ -1208,15 +1229,13 @@
<programlisting>executionService.startProcessInstanceByKey("JmsQueueMap");
MapMessage mapMessage = (MapMessage)
- jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertTrue(mapMessage.itemExists("x"));
assertEquals("foo", mapMessage.getObject("x"));</programlisting>
</section>
</section>
-
-
<section>
<title>History session chain</title>
<para>
Modified: jbpm4/trunk/modules/distro/src/main/files/install/src/jboss/log/jboss-log4j.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/files/install/src/jboss/log/jboss-log4j.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/distro/src/main/files/install/src/jboss/log/jboss-log4j.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -30,7 +30,7 @@
so the full JBoss system property format is not supported; e.g.
setting a default via ${jboss.server.log.threshold:WARN} will not work.
-->
- <param name="Threshold" value="${jboss.server.log.threshold}"/>
+ <param name="Threshold" value="TRACE"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
@@ -41,7 +41,7 @@
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] (Thread) Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsActivity.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsActivity.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -27,6 +27,7 @@
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.Message;
+import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
@@ -40,6 +41,13 @@
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
+import javax.jms.XAConnectionFactory;
+import javax.jms.XAQueueConnection;
+import javax.jms.XAQueueConnectionFactory;
+import javax.jms.XAQueueSession;
+import javax.jms.XATopicConnection;
+import javax.jms.XATopicConnectionFactory;
+import javax.jms.XATopicSession;
import javax.naming.InitialContext;
import org.jbpm.api.JbpmException;
@@ -74,16 +82,39 @@
InitialContext initialContext = new InitialContext();
Destination destination = (Destination) initialContext.lookup(destinationName);
- if (destination instanceof Queue) {
- QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) initialContext.lookup(connectionFactoryName);
- sendToQueue((Queue) destination, queueConnectionFactory);
+ Object connectionFactory = initialContext.lookup(connectionFactoryName);
- } else if (destination instanceof Topic) {
- TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) initialContext.lookup(connectionFactoryName);
- sendToTopic((Topic) destination, topicConnectionFactory);
-
- } else {
- throw new JbpmException("invalid destination type for '"+destinationName+"': "+destination.getClass().getName());
+ if (connectionFactory instanceof XAConnectionFactory) {
+ log.debug("connection factory '"+connectionFactoryName+"' is a XAConnectionFactory: using xa jms apis");
+ if (destination instanceof Queue) {
+ log.debug("destination '"+destinationName+"' is a Queue: using xa queue jms apis");
+ XAQueueConnectionFactory xaQueueConnectionFactory = (XAQueueConnectionFactory) connectionFactory;
+ sendToQueueXA((Queue) destination, xaQueueConnectionFactory);
+
+ } else if (destination instanceof Topic) {
+ log.debug("destination '"+destinationName+"' is a Topic: using xa topic jms apis");
+ XATopicConnectionFactory xaTopicConnectionFactory = (XATopicConnectionFactory) connectionFactory;
+ sendToTopicXA((Topic) destination, xaTopicConnectionFactory);
+
+ } else {
+ throw new JbpmException("invalid destination type for '"+destinationName+"': "+destination.getClass().getName());
+ }
+
+ } else { // non-XA
+ log.debug("connection factory '"+connectionFactoryName+"' is a ConnectionFactory: using non-xa jms apis");
+ if (destination instanceof Queue) {
+ log.debug("destination '"+destinationName+"' is a Queue: using non-xa queue jms apis");
+ QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) connectionFactory;
+ sendToQueue((Queue) destination, queueConnectionFactory);
+
+ } else if (destination instanceof Topic) {
+ log.debug("destination '"+destinationName+"' is a Topic: using non-xa topic jms apis");
+ TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) connectionFactory;
+ sendToTopic((Topic) destination, topicConnectionFactory);
+
+ } else {
+ throw new JbpmException("invalid destination type for '"+destinationName+"': "+destination.getClass().getName());
+ }
}
} catch (RuntimeException e) {
@@ -96,7 +127,69 @@
}
}
- private void sendToQueue(Queue queue, QueueConnectionFactory queueConnectionFactory) throws Exception {
+ protected void sendToQueueXA(Queue queue, XAQueueConnectionFactory xaQueueConnectionFactory) throws Exception {
+ XAQueueConnection xaQueueConnection = null;
+ XAQueueSession xaQueueSession = null;
+ MessageProducer messageProducer = null;
+
+ try {
+ xaQueueConnection = xaQueueConnectionFactory.createXAQueueConnection();
+ xaQueueSession = xaQueueConnection.createXAQueueSession();
+ messageProducer = xaQueueSession.createProducer(queue);
+ Message message = createMessage(xaQueueSession);
+ messageProducer.send(message);
+
+ } finally {
+ try {
+ messageProducer.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ xaQueueSession.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ xaQueueConnection.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ protected void sendToTopicXA(Topic topic, XATopicConnectionFactory xaTopicConnectionFactory) throws Exception {
+ XATopicConnection xaTopicConnection = null;
+ XATopicSession xaTopicSession = null;
+ MessageProducer messageProducer = null;
+
+ try {
+ xaTopicConnection = xaTopicConnectionFactory.createXATopicConnection();
+ xaTopicSession = xaTopicConnection.createXATopicSession();
+ messageProducer = xaTopicSession.createProducer(topic);
+ Message message = createMessage(xaTopicSession);
+ messageProducer.send(message);
+
+ } finally {
+ try {
+ messageProducer.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ xaTopicSession.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ xaTopicConnection.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ protected void sendToQueue(Queue queue, QueueConnectionFactory queueConnectionFactory) throws Exception {
QueueConnection queueConnection = null;
QueueSession queueSession = null;
QueueSender queueSender = null;
@@ -107,6 +200,9 @@
queueSender = queueSession.createSender(queue);
Message message = createMessage(queueSession);
queueSender.send(message);
+ if (transacted) {
+ queueSession.commit();
+ }
} finally {
try {
@@ -127,7 +223,7 @@
}
}
- private void sendToTopic(Topic topic, TopicConnectionFactory topicConnectionFactory) throws Exception {
+ protected void sendToTopic(Topic topic, TopicConnectionFactory topicConnectionFactory) throws Exception {
TopicConnection topicConnection = null;
TopicSession topicSession = null;
TopicPublisher topicPublisher = null;
@@ -138,6 +234,9 @@
topicPublisher = topicSession.createPublisher(topic);
Message message = createMessage(topicSession);
topicPublisher.send(message);
+ if (transacted) {
+ topicSession.commit();
+ }
} finally {
try {
@@ -158,7 +257,7 @@
}
}
- private Message createMessage(Session session) throws Exception {
+ protected Message createMessage(Session session) throws Exception {
if ("text".equals(type)) {
return createTextMessage(session);
} else if ("object".equals(type)) {
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsBinding.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JmsBinding.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -57,7 +57,7 @@
jmsActivity.setDestinationName(destinationName);
Boolean transacted = XmlUtil.attributeBoolean(element, "transacted", false, parse, null);
- if (transacted != null) {
+ if (transacted!=null) {
jmsActivity.setTransacted(transacted);
}
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -111,21 +111,25 @@
}
public static Object jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName) {
- return jmsConsumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, true, Session.AUTO_ACKNOWLEDGE, 1000);
+ return jmsConsumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, 1000, true, Session.AUTO_ACKNOWLEDGE);
}
- public static Object jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
- return JmsExtensions.consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
+ public static Object jmsConsumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
+ return JmsExtensions.consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, timeout, transacted, acknowledgeMode);
}
- public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName) {
- jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, true, Session.AUTO_ACKNOWLEDGE, 1000);
+ public static Object jmsConsumeMessageFromQueueXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
+ return JmsExtensions.consumeMessageFromQueueXA(connectionFactoryJndiName, queueJndiName, timeout);
}
-
- public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
- JmsExtensions.jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
+
+ public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
+ JmsExtensions.jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, timeout, transacted, acknowledgeMode);
}
+ public static void jmsAssertQueueEmptyXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
+ JmsExtensions.jmsAssertQueueEmptyXA(connectionFactoryJndiName, queueJndiName, timeout);
+ }
+
public static void jmsRemoveQueue(String connectionFactoryJndiName, String queueJndiName) {
JmsExtensions.removeQueue(connectionFactoryJndiName, queueJndiName);
}
@@ -134,12 +138,12 @@
JmsExtensions.createTopic(connectionFactoryJndiName, topicJndiName);
}
- public static JmsTopicListener jmsStartTopicListener(String connectionFactoryJndiName, String topicJndiName) {
- return jmsStartTopicListener(connectionFactoryJndiName, topicJndiName, true, 1);
+ public static JmsTopicListener jmsStartTopicListener(String connectionFactoryJndiName, String topicJndiName, boolean transacted, int acknowledgeMode) {
+ return new JmsNonXATopicListener(connectionFactoryJndiName, topicJndiName, transacted, acknowledgeMode);
}
- public static JmsTopicListener jmsStartTopicListener(String connectionFactoryJndiName, String topicJndiName, boolean transacted, int acknowledgeMode) {
- return new JmsTopicListener(connectionFactoryJndiName, topicJndiName, transacted, acknowledgeMode);
+ public static JmsTopicListener jmsStartTopicListenerXA(String connectionFactoryJndiName, String topicJndiName) {
+ return new JmsXATopicListener(connectionFactoryJndiName, topicJndiName);
}
public static void jmsRemoveTopic(String connectionFactoryJndiName, String topicJndiName) {
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -29,8 +29,10 @@
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
import javax.jms.QueueSession;
+import javax.jms.XAQueueConnection;
+import javax.jms.XAQueueConnectionFactory;
+import javax.jms.XAQueueSession;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@@ -140,30 +142,77 @@
return jmsMockObjectFactory;
}
- public static Object consumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
+ public static Object consumeMessageFromQueueXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
try {
InitialContext context = new InitialContext();
+ Queue queue = (Queue)context.lookup(queueJndiName);
+ XAQueueConnectionFactory xaQueueConnectionFactory = (XAQueueConnectionFactory) context.lookup(connectionFactoryJndiName);
+
+ XAQueueConnection xaQueueConnection = null;
+ XAQueueSession queueSession = null;
+ MessageConsumer messageConsumer = null;
+ try {
+ xaQueueConnection = xaQueueConnectionFactory.createXAQueueConnection();
+ xaQueueConnection.start();
+ queueSession = xaQueueConnection.createXAQueueSession();
+ messageConsumer = queueSession.createConsumer(queue);
+ Message message = messageConsumer.receive(timeout);
+ if (message==null) {
+ throw new AssertionFailedError("no message on queue "+queueJndiName);
+ }
+ return message;
+
+ } finally {
+ try {
+ messageConsumer.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ queueSession.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ xaQueueConnection.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new JbpmException("couldn't receive message from queue: "+e.getMessage(), e);
+ }
+ }
+
+ public static Message consumeMessageFromQueue(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
+ try {
+ InitialContext context = new InitialContext();
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup(connectionFactoryJndiName);
Queue queue = (Queue)context.lookup(queueJndiName);
QueueConnection queueConnection = null;
QueueSession queueSession = null;
- QueueSender queueSender = null;
-
+ MessageConsumer messageConsumer = null;
+
try {
queueConnection = queueConnectionFactory.createQueueConnection();
queueConnection.start();
queueSession = queueConnection.createQueueSession(transacted, acknowledgeMode);
- MessageConsumer messageConsumer = queueSession.createConsumer(queue);
+ messageConsumer = queueSession.createConsumer(queue);
Message message = messageConsumer.receive(timeout);
if (message==null) {
throw new AssertionFailedError("no message on queue "+queueJndiName);
}
+ if (transacted) {
+ queueSession.commit();
+ }
return message;
-
+
} finally {
try {
- queueSender.close();
+ messageConsumer.close();
} catch (Exception e) {
e.printStackTrace();
}
@@ -185,9 +234,9 @@
}
}
- public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
+ public static void jmsAssertQueueEmptyXA(String connectionFactoryJndiName, String queueJndiName, long timeout) {
try {
- consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
+ consumeMessageFromQueueXA(connectionFactoryJndiName, queueJndiName, timeout);
} catch (AssertionFailedError e) {
if (e.getMessage().startsWith("no message on queue")) {
return;
@@ -195,4 +244,15 @@
}
throw new AssertionFailedError("message available on queue "+queueJndiName);
}
+
+ public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, long timeout, boolean transacted, int acknowledgeMode) {
+ try {
+ consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, timeout, transacted, acknowledgeMode);
+ } catch (AssertionFailedError e) {
+ if (e.getMessage().startsWith("no message on queue")) {
+ return;
+ }
+ }
+ throw new AssertionFailedError("message available on queue "+queueJndiName);
+ }
}
Copied: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsNonXATopicListener.java (from rev 6037, jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsTopicListener.java)
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsNonXATopicListener.java (rev 0)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsNonXATopicListener.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.Topic;
+import javax.jms.TopicConnection;
+import javax.jms.TopicConnectionFactory;
+import javax.jms.TopicSession;
+import javax.jms.TopicSubscriber;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+
+import org.jbpm.internal.log.Log;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class JmsNonXATopicListener implements JmsTopicListener {
+
+ private static Log log = Log.getLog(JmsNonXATopicListener.class.getName());
+
+ String topicJndiName = null;
+ String connectionFactoryJndiName = null;
+ boolean transacted;
+ int acknowledgeMode;
+ TopicConnectionFactory topicConnectionFactory = null;
+ Topic topic = null;
+ TopicConnection topicConnection = null;
+ TopicSession topicSession = null;
+ TopicSubscriber topicSubscriber = null;
+
+ List<Message> messages = null;
+
+ JmsNonXATopicListener(String connectionFactoryJndiName, String topicJndiName, boolean transacted, int acknowledgeMode) {
+ this.connectionFactoryJndiName = connectionFactoryJndiName;
+ this.topicJndiName = topicJndiName;
+ this.transacted = transacted;
+ this.acknowledgeMode = acknowledgeMode;
+ start();
+ }
+
+ void start() {
+ try {
+ messages = Collections.synchronizedList(new ArrayList<Message>());
+
+ InitialContext context = new InitialContext();
+ topicConnectionFactory = (TopicConnectionFactory) context.lookup(connectionFactoryJndiName);
+ topic = (Topic) context.lookup(topicJndiName);
+ topicConnection = topicConnectionFactory.createTopicConnection();
+ topicSession = topicConnection.createTopicSession(transacted, acknowledgeMode);
+ topicSubscriber = topicSession.createSubscriber(topic);
+ topicSubscriber.setMessageListener(new Listener());
+
+ topicConnection.start();
+
+ } catch (Exception e) {
+ stop();
+ throw new RuntimeException("couldn't subscribe message listener to topic '"+topicJndiName+"': "+e.getMessage(), e);
+ }
+ }
+
+ private class Listener implements MessageListener {
+ public void onMessage(Message message) {
+ messages.add(message);
+ }
+ }
+
+ public void stop() {
+ if ( transacted && (topicSession!=null)) {
+ try {
+ topicSession.commit();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ if (topicConnection!=null) {
+ try {
+ topicConnection.stop();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ if (topicSubscriber!=null) {
+ try {
+ topicSubscriber.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ topicSubscriber = null;
+ }
+ if (topicSession!=null) {
+ try {
+ topicSession.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ topicSession = null;
+ }
+ if (topicConnection!=null) {
+ try {
+ topicConnection.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ topicConnection = null;
+ }
+ }
+
+ public Message getNextMessage(long timeout) {
+ long start = System.currentTimeMillis();
+ while (true) {
+ if (!messages.isEmpty()) {
+ return messages.remove(0);
+ }
+ if (System.currentTimeMillis()-start > timeout) {
+ TestCase.fail("no message for topic "+topicJndiName);
+ }
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ log.info("waiting for next message got interrupted");
+ }
+ }
+ }
+}
Property changes on: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsNonXATopicListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsTopicListener.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsTopicListener.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsTopicListener.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -21,141 +21,14 @@
*/
package org.jbpm.test;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.Topic;
-import javax.jms.TopicConnection;
-import javax.jms.TopicConnectionFactory;
-import javax.jms.TopicSession;
-import javax.jms.TopicSubscriber;
-import javax.naming.InitialContext;
-import junit.framework.TestCase;
-
-import org.jbpm.internal.log.Log;
-
-
/**
* @author Tom Baeyens
*/
-public class JmsTopicListener {
-
- private static Log log = Log.getLog(JmsTopicListener.class.getName());
+public interface JmsTopicListener {
- static Map<Object, JmsTopicListener> topicListeners = new HashMap<Object, JmsTopicListener>();
-
- String topicJndiName = null;
- String connectionFactoryJndiName = null;
- boolean transacted;
- int acknowledgeMode;
- TopicConnectionFactory topicConnectionFactory = null;
- Topic topic = null;
- TopicConnection topicConnection = null;
- TopicSession topicSession = null;
- TopicSubscriber topicSubscriber = null;
-
- List<Message> messages = null;
+ Message getNextMessage(long timeout);
- static Object createJmsTopicListenerKey(String connectionFactoryJndiName, String topicJndiName) {
- List<String> topicListenerKey = new ArrayList<String>();
- topicListenerKey.add(connectionFactoryJndiName);
- topicListenerKey.add(topicJndiName);
- return topicListenerKey;
- }
-
- static JmsTopicListener getJmsTopicListener(String connectionFactoryJndiName, String topicJndiName) {
- return topicListeners.get(createJmsTopicListenerKey(connectionFactoryJndiName, topicJndiName));
- }
-
- JmsTopicListener(String connectionFactoryJndiName, String topicJndiName, boolean transacted, int acknowledgeMode) {
- this.connectionFactoryJndiName = connectionFactoryJndiName;
- this.topicJndiName = topicJndiName;
- this.transacted = transacted;
- this.acknowledgeMode = acknowledgeMode;
- topicListeners.put(createJmsTopicListenerKey(connectionFactoryJndiName, topicJndiName), this);
- start();
- }
-
- void start() {
- try {
- messages = Collections.synchronizedList(new ArrayList<Message>());
-
- InitialContext context = new InitialContext();
- topicConnectionFactory = (TopicConnectionFactory) context.lookup(connectionFactoryJndiName);
- topic = (Topic) context.lookup(topicJndiName);
- topicConnection = topicConnectionFactory.createTopicConnection();
- topicSession = topicConnection.createTopicSession(transacted, acknowledgeMode);
- topicSubscriber = topicSession.createSubscriber(topic);
- topicSubscriber.setMessageListener(new Listener());
-
- topicConnection.start();
-
- } catch (Exception e) {
- stop();
- throw new RuntimeException("couldn't subscribe message listener to topic '"+topicJndiName+"': "+e.getMessage(), e);
- }
- }
-
- private class Listener implements MessageListener {
- public void onMessage(Message message) {
- messages.add(message);
- }
- }
-
- public void stop() {
- if (topicConnection!=null) {
- try {
- topicConnection.stop();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- if (topicSubscriber!=null) {
- try {
- topicSubscriber.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- topicSubscriber = null;
- }
- if (topicSession!=null) {
- try {
- topicSession.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- topicSession = null;
- }
- if (topicConnection!=null) {
- try {
- topicConnection.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- topicConnection = null;
- }
- }
-
- public Message getNextMessage(long timeout) {
- long start = System.currentTimeMillis();
- while (true) {
- if (!messages.isEmpty()) {
- return messages.remove(0);
- }
- if (System.currentTimeMillis()-start > timeout) {
- TestCase.fail("no message for topic "+topicJndiName);
- }
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- log.info("waiting for next message got interrupted");
- }
- }
- }
-}
+ void stop();
+}
\ No newline at end of file
Added: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsXATopicListener.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsXATopicListener.java (rev 0)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsXATopicListener.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.Topic;
+import javax.jms.XATopicConnection;
+import javax.jms.XATopicConnectionFactory;
+import javax.jms.XATopicSession;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+
+import org.jbpm.internal.log.Log;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class JmsXATopicListener implements JmsTopicListener {
+
+ private static Log log = Log.getLog(JmsXATopicListener.class.getName());
+
+ String topicJndiName = null;
+ String connectionFactoryJndiName = null;
+ Topic topic = null;
+ XATopicConnectionFactory topicConnectionFactory = null;
+ XATopicConnection topicConnection = null;
+ XATopicSession topicSession = null;
+ MessageConsumer messageConsumer = null;
+
+ List<Message> messages = null;
+
+ JmsXATopicListener(String connectionFactoryJndiName, String topicJndiName) {
+ this.connectionFactoryJndiName = connectionFactoryJndiName;
+ this.topicJndiName = topicJndiName;
+ start();
+ }
+
+ void start() {
+ try {
+ messages = Collections.synchronizedList(new ArrayList<Message>());
+
+ InitialContext context = new InitialContext();
+ topicConnectionFactory = (XATopicConnectionFactory) context.lookup(connectionFactoryJndiName);
+ topic = (Topic) context.lookup(topicJndiName);
+ topicConnection = topicConnectionFactory.createXATopicConnection();
+ topicSession = topicConnection.createXATopicSession();
+ messageConsumer = topicSession.createConsumer(topic);
+ messageConsumer.setMessageListener(new Listener());
+
+ topicConnection.start();
+
+ } catch (Exception e) {
+ stop();
+ throw new RuntimeException("couldn't subscribe message listener to topic '"+topicJndiName+"': "+e.getMessage(), e);
+ }
+ }
+
+ private class Listener implements MessageListener {
+ public void onMessage(Message message) {
+ messages.add(message);
+ }
+ }
+
+ public void stop() {
+ if (topicConnection!=null) {
+ try {
+ topicConnection.stop();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ if (messageConsumer!=null) {
+ try {
+ messageConsumer.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ messageConsumer = null;
+ }
+ if (topicSession!=null) {
+ try {
+ topicSession.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ topicSession = null;
+ }
+ if (topicConnection!=null) {
+ try {
+ topicConnection.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ topicConnection = null;
+ }
+ }
+
+ public Message getNextMessage(long timeout) {
+ long start = System.currentTimeMillis();
+ while (true) {
+ if (!messages.isEmpty()) {
+ return messages.remove(0);
+ }
+ if (System.currentTimeMillis()-start > timeout) {
+ TestCase.fail("no message for topic "+topicJndiName);
+ }
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ log.info("waiting for next message got interrupted");
+ }
+ }
+ }
+}
Property changes on: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsXATopicListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/jms/JmsTopicTest.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/jms/JmsTopicTest.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/jms/JmsTopicTest.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -22,6 +22,7 @@
package org.jbpm.test.jms;
import javax.jms.MapMessage;
+import javax.jms.Session;
import org.jbpm.test.JbpmCustomCfgTestCase;
import org.jbpm.test.JmsTopicListener;
@@ -43,7 +44,7 @@
.deploy();
jmsCreateTopic("jms/ConnectionFactory", "topic/ProductTopic");
- jmsTopicListener = jmsStartTopicListener("jms/ConnectionFactory", "topic/ProductTopic");
+ jmsTopicListener = jmsStartTopicListener("jms/ConnectionFactory", "topic/ProductTopic", true, Session.AUTO_ACKNOWLEDGE);
}
protected void tearDown() throws Exception {
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -53,7 +53,7 @@
// OK
}
- jmsAssertQueueEmpty("java:JmsXA", "queue/jbpm-test-queue");
+ jmsAssertQueueEmptyXA("java:JmsXA", "queue/jbpm-test-queue", 1000);
assertEquals(0, executionService.createProcessInstanceQuery().list().size());
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -22,6 +22,7 @@
package org.jbpm.test.jms;
import javax.jms.MapMessage;
+import javax.jms.Session;
import junit.framework.Test;
@@ -44,7 +45,7 @@
public void testQueueMapMessage() throws Exception {
executionService.startProcessInstanceByKey("JmsQueueMap");
- MapMessage mapMessage = (MapMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ MapMessage mapMessage = (MapMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertTrue(mapMessage.itemExists("x"));
assertEquals("foo", mapMessage.getObject("x"));
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -25,6 +25,7 @@
import java.util.Map;
import javax.jms.ObjectMessage;
+import javax.jms.Session;
import junit.framework.Test;
@@ -51,7 +52,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("object", "this is the object");
executionService.startProcessInstanceByKey("JmsQueueObject", variables);
- ObjectMessage objectMessage = (ObjectMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ ObjectMessage objectMessage = (ObjectMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertEquals("this is the object", objectMessage.getObject());
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java 2009-12-24 12:32:25 UTC (rev 6043)
@@ -21,11 +21,13 @@
*/
package org.jbpm.test.jms;
+import javax.jms.Session;
import javax.jms.TextMessage;
import junit.framework.Test;
import org.apache.cactus.ServletTestSuite;
+import org.jbpm.pvm.internal.tx.JtaTransaction;
import org.jbpm.test.JbpmTestCase;
public class QueueTextMessageTest extends JbpmTestCase {
@@ -45,7 +47,7 @@
public void testQueueTextMessage() throws Exception {
executionService.startProcessInstanceByKey("JmsQueueText");
- TextMessage textMessage = (TextMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
+ TextMessage textMessage = (TextMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue", 1000, false, Session.AUTO_ACKNOWLEDGE);
assertEquals("This is the body", textMessage.getText());
}
}
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -9,6 +9,7 @@
<jms name="send message"
connection-factory="java:JmsXA"
destination="queue/jbpm-test-queue"
+ transacted="false"
g="96,16,83,52">
<map>
<entry>
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -9,6 +9,7 @@
<jms name="send message"
connection-factory="java:JmsXA"
destination="queue/jbpm-test-queue"
+ transacted="false"
g="96,16,83,52">
<object expr="${object}"/>
<transition to="wait" />
Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -9,6 +9,7 @@
<jms name="send message"
connection-factory="java:JmsXA"
destination="queue/jbpm-test-queue"
+ transacted="false"
g="96,16,83,52">
<text>This is the body</text>
<transition to="wait" />
Modified: jbpm4/trunk/qa/build.xml
===================================================================
--- jbpm4/trunk/qa/build.xml 2009-12-24 11:46:37 UTC (rev 6042)
+++ jbpm4/trunk/qa/build.xml 2009-12-24 12:32:25 UTC (rev 6043)
@@ -187,6 +187,7 @@
description="reinstalls jbpm, reinstalls jboss, installs jbpm into jboss, starts jboss and then creates the jbpm schema">
<ant antfile="${jbpm.home}/install/build.xml" target="start.hsqldb.server" />
<ant antfile="${jbpm.home}/install/build.xml" target="create.jbpm.schema" />
+ <ant antfile="${jbpm.home}/install/build.xml" target="enable.jboss.debug" />
<ant antfile="${jbpm.home}/install/build.xml" target="start.jboss" />
</target>
More information about the jbpm-commits
mailing list