[jboss-cvs] JBoss Messaging SVN: r7374 - trunk/tests/src/org/jboss/messaging/tests/integration/client.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 16 23:53:02 EDT 2009
Author: clebert.suconic at jboss.com
Date: 2009-06-16 23:53:02 -0400 (Tue, 16 Jun 2009)
New Revision: 7374
Added:
trunk/tests/src/org/jboss/messaging/tests/integration/client/AckBatchSizeTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/AcknowledgeTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/AutogroupIdTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/CommitRollbackTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerRoundRobinTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/DeliveryOrderTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageCounterTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageHandlerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ProducerCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/QueueBrowserTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ReceiveTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/RequestorTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/RoutingTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SendTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateAndDeleteQueueTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateConsumerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateProducerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionSendAcknowledgementHandlerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionStopStartTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionTest.java
Removed:
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAckBatchSizeTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAcknowledgeTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAutogroupIdTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientCommitRollbackTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerRoundRobinTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientDeliveryOrderTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageCounterTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageHandlerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientProducerCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientQueueBrowserTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientReceiveTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRequestorTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRoutingTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSendTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCloseTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateAndDeleteQueueTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateConsumerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateProducerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionSendAcknowledgementHandlerTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionStopStartTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionTest.java
Log:
Just renaming client.Client tests as we talked before
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/AckBatchSizeTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAckBatchSizeTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/AckBatchSizeTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/AckBatchSizeTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,161 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class AckBatchSizeTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+ /*ackbatchSize tests*/
+
+ /*
+ * tests that wed don't acknowledge until the correct ackBatchSize is reached
+ * */
+
+ private int getMessageEncodeSize(final SimpleString address) throws Exception
+ {
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ ClientMessage message = session.createClientMessage(false);
+ // we need to set the destination so we can calculate the encodesize correctly
+ message.setDestination(address);
+ int encodeSize = message.getEncodeSize();
+ session.close();
+ cf.close();
+ return encodeSize;
+ }
+
+ public void testAckBatchSize() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ int numMessages = 100;
+ cf.setAckBatchSize(numMessages * getMessageEncodeSize(addressA));
+ cf.setBlockOnAcknowledge(true);
+ ClientSession sendSession = cf.createSession(false, true, true);
+
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+
+ ClientConsumer consumer = session.createConsumer(queueA);
+ session.start();
+ for (int i = 0; i < numMessages - 1; i++)
+ {
+ ClientMessage m = consumer.receive(5000);
+ m.acknowledge();
+ }
+
+ ClientMessage m = consumer.receive(5000);
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ m.acknowledge();
+ assertEquals(0, q.getDeliveringCount());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ /*
+ * tests that when the ackBatchSize is 0 we ack every message directly
+ * */
+ public void testAckBatchSizeZero() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setAckBatchSize(0);
+ cf.setBlockOnAcknowledge(true);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ int numMessages = 100;
+
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+
+ ClientConsumer consumer = session.createConsumer(queueA);
+ session.start();
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ ClientMessage[] messages = new ClientMessage[numMessages];
+ for (int i = 0; i < numMessages; i++)
+ {
+ messages[i] = consumer.receive(5000);
+ assertNotNull(messages[i]);
+ }
+ for (int i = 0; i < numMessages; i++)
+ {
+ messages[i].acknowledge();
+ assertEquals(numMessages - i - 1, q.getDeliveringCount());
+ }
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/AckBatchSizeTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/AcknowledgeTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAcknowledgeTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/AcknowledgeTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/AcknowledgeTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,255 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class AcknowledgeTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+
+ public void testReceiveAckLastMessageOnly() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setAckBatchSize(0);
+ cf.setBlockOnAcknowledge(true);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession session = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ session.start();
+ ClientMessage cm = null;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cm = cc.receive(5000);
+ assertNotNull(cm);
+ }
+ cm.acknowledge();
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+
+ assertEquals(0, q.getDeliveringCount());
+ session.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testAsyncConsumerNoAck() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession session = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ final CountDownLatch latch = new CountDownLatch(numMessages);
+ session.start();
+ cc.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ latch.countDown();
+ }
+ });
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testAsyncConsumerAck() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnAcknowledge(true);
+ cf.setAckBatchSize(0);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ final ClientSession session = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ final CountDownLatch latch = new CountDownLatch(numMessages);
+ session.start();
+ cc.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ try
+ {
+ session.close();
+ }
+ catch (MessagingException e1)
+ {
+ e1.printStackTrace();
+ }
+ }
+ latch.countDown();
+ }
+ });
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(0, q.getDeliveringCount());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testAsyncConsumerAckLastMessageOnly() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnAcknowledge(true);
+ cf.setAckBatchSize(0);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ final ClientSession session = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ final CountDownLatch latch = new CountDownLatch(numMessages);
+ session.start();
+ cc.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ if (latch.getCount() == 1)
+ {
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ try
+ {
+ session.close();
+ }
+ catch (MessagingException e1)
+ {
+ e1.printStackTrace();
+ }
+ }
+ }
+ latch.countDown();
+ }
+ });
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(0, q.getDeliveringCount());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/AcknowledgeTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/AutogroupIdTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAutogroupIdTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/AutogroupIdTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/AutogroupIdTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,260 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.impl.GroupingRoundRobinDistributor;
+import org.jboss.messaging.core.settings.impl.AddressSettings;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class AutogroupIdTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+ private final SimpleString groupTestQ = new SimpleString("testGroupQueue");
+
+ /* auto group id tests*/
+
+ /*
+ * tests when the autogroupid is set only 1 consumer (out of 2) gets all the messages from a single producer
+ * */
+
+ public void testGroupIdAutomaticallySet() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ AddressSettings qs = new AddressSettings();
+ qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
+ server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
+ server.start();
+
+ ClientSessionFactory sf = createInVMFactory();
+ sf.setAutoGroup(true);
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(groupTestQ, groupTestQ, null, false);
+
+ ClientProducer producer = session.createProducer(groupTestQ);
+
+ final CountDownLatch latch = new CountDownLatch(100);
+
+ MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
+ MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
+
+ ClientConsumer consumer = session.createConsumer(groupTestQ);
+ consumer.setMessageHandler(myMessageHandler);
+ ClientConsumer consumer2 = session.createConsumer(groupTestQ);
+ consumer2.setMessageHandler(myMessageHandler2);
+
+ session.start();
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ producer.send(session.createClientMessage(false));
+ }
+ latch.await();
+
+ session.close();
+
+ assertEquals(myMessageHandler.messagesReceived, 100);
+ assertEquals(myMessageHandler2.messagesReceived, 0);
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+
+ }
+
+ /*
+ * tests when the autogroupid is set only 2 consumers (out of 3) gets all the messages from 2 producers
+ * */
+ public void testGroupIdAutomaticallySetMultipleProducers() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ AddressSettings qs = new AddressSettings();
+ qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
+ server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
+ server.start();
+
+ ClientSessionFactory sf = createInVMFactory();
+ sf.setAutoGroup(true);
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(groupTestQ, groupTestQ, null, false);
+
+ ClientProducer producer = session.createProducer(groupTestQ);
+ ClientProducer producer2 = session.createProducer(groupTestQ);
+
+ final CountDownLatch latch = new CountDownLatch(200);
+
+ MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
+ MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
+ MyMessageHandler myMessageHandler3 = new MyMessageHandler(latch);
+
+ ClientConsumer consumer = session.createConsumer(groupTestQ);
+ consumer.setMessageHandler(myMessageHandler);
+ ClientConsumer consumer2 = session.createConsumer(groupTestQ);
+ consumer2.setMessageHandler(myMessageHandler2);
+ ClientConsumer consumer3 = session.createConsumer(groupTestQ);
+ consumer3.setMessageHandler(myMessageHandler3);
+
+ session.start();
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ producer.send(session.createClientMessage(false));
+ }
+ for (int i = 0; i < numMessages; i++)
+ {
+ producer2.send(session.createClientMessage(false));
+ }
+ latch.await();
+
+ session.close();
+
+ assertEquals(myMessageHandler.messagesReceived, 100);
+ assertEquals(myMessageHandler2.messagesReceived, 100);
+ assertEquals(myMessageHandler3.messagesReceived, 0);
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+
+ }
+
+ /*
+ * tests that even tho we have an grouping round robin distributor we don't pin the consumer as autogroup is false
+ * */
+ public void testGroupIdAutomaticallyNotSet() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ AddressSettings qs = new AddressSettings();
+ qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
+
+ server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
+ server.start();
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(groupTestQ, groupTestQ, null, false);
+
+ ClientProducer producer = session.createProducer(groupTestQ);
+
+ final CountDownLatch latch = new CountDownLatch(100);
+
+ MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
+ MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
+
+ ClientConsumer consumer = session.createConsumer(groupTestQ);
+ consumer.setMessageHandler(myMessageHandler);
+ ClientConsumer consumer2 = session.createConsumer(groupTestQ);
+ consumer2.setMessageHandler(myMessageHandler2);
+
+ session.start();
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ producer.send(session.createClientMessage(false));
+ }
+ latch.await();
+
+ session.close();
+
+ assertEquals(myMessageHandler.messagesReceived, 50);
+ assertEquals(myMessageHandler2.messagesReceived, 50);
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+
+ }
+
+ private static class MyMessageHandler implements MessageHandler
+ {
+ volatile int messagesReceived = 0;
+
+ private final CountDownLatch latch;
+
+ public MyMessageHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void onMessage(ClientMessage message)
+ {
+ messagesReceived++;
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ e.printStackTrace();
+ }
+ latch.countDown();
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/AutogroupIdTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAckBatchSizeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAckBatchSizeTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAckBatchSizeTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,161 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientAckBatchSizeTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
- /*ackbatchSize tests*/
-
- /*
- * tests that wed don't acknowledge until the correct ackBatchSize is reached
- * */
-
- private int getMessageEncodeSize(final SimpleString address) throws Exception
- {
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- ClientMessage message = session.createClientMessage(false);
- // we need to set the destination so we can calculate the encodesize correctly
- message.setDestination(address);
- int encodeSize = message.getEncodeSize();
- session.close();
- cf.close();
- return encodeSize;
- }
-
- public void testAckBatchSize() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- int numMessages = 100;
- cf.setAckBatchSize(numMessages * getMessageEncodeSize(addressA));
- cf.setBlockOnAcknowledge(true);
- ClientSession sendSession = cf.createSession(false, true, true);
-
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
-
- ClientConsumer consumer = session.createConsumer(queueA);
- session.start();
- for (int i = 0; i < numMessages - 1; i++)
- {
- ClientMessage m = consumer.receive(5000);
- m.acknowledge();
- }
-
- ClientMessage m = consumer.receive(5000);
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- m.acknowledge();
- assertEquals(0, q.getDeliveringCount());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- /*
- * tests that when the ackBatchSize is 0 we ack every message directly
- * */
- public void testAckBatchSizeZero() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setAckBatchSize(0);
- cf.setBlockOnAcknowledge(true);
- ClientSession sendSession = cf.createSession(false, true, true);
- int numMessages = 100;
-
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
-
- ClientConsumer consumer = session.createConsumer(queueA);
- session.start();
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- ClientMessage[] messages = new ClientMessage[numMessages];
- for (int i = 0; i < numMessages; i++)
- {
- messages[i] = consumer.receive(5000);
- assertNotNull(messages[i]);
- }
- for (int i = 0; i < numMessages; i++)
- {
- messages[i].acknowledge();
- assertEquals(numMessages - i - 1, q.getDeliveringCount());
- }
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAcknowledgeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAcknowledgeTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAcknowledgeTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,255 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientAcknowledgeTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
-
- public void testReceiveAckLastMessageOnly() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setAckBatchSize(0);
- cf.setBlockOnAcknowledge(true);
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession session = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- session.start();
- ClientMessage cm = null;
- for (int i = 0; i < numMessages; i++)
- {
- cm = cc.receive(5000);
- assertNotNull(cm);
- }
- cm.acknowledge();
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
-
- assertEquals(0, q.getDeliveringCount());
- session.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testAsyncConsumerNoAck() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession session = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- final CountDownLatch latch = new CountDownLatch(numMessages);
- session.start();
- cc.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- latch.countDown();
- }
- });
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testAsyncConsumerAck() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnAcknowledge(true);
- cf.setAckBatchSize(0);
- ClientSession sendSession = cf.createSession(false, true, true);
- final ClientSession session = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- final CountDownLatch latch = new CountDownLatch(numMessages);
- session.start();
- cc.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- try
- {
- session.close();
- }
- catch (MessagingException e1)
- {
- e1.printStackTrace();
- }
- }
- latch.countDown();
- }
- });
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(0, q.getDeliveringCount());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testAsyncConsumerAckLastMessageOnly() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnAcknowledge(true);
- cf.setAckBatchSize(0);
- ClientSession sendSession = cf.createSession(false, true, true);
- final ClientSession session = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- final CountDownLatch latch = new CountDownLatch(numMessages);
- session.start();
- cc.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- if (latch.getCount() == 1)
- {
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- try
- {
- session.close();
- }
- catch (MessagingException e1)
- {
- e1.printStackTrace();
- }
- }
- }
- latch.countDown();
- }
- });
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(0, q.getDeliveringCount());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAutogroupIdTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAutogroupIdTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientAutogroupIdTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,260 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.impl.GroupingRoundRobinDistributor;
-import org.jboss.messaging.core.settings.impl.AddressSettings;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientAutogroupIdTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
- private final SimpleString groupTestQ = new SimpleString("testGroupQueue");
-
- /* auto group id tests*/
-
- /*
- * tests when the autogroupid is set only 1 consumer (out of 2) gets all the messages from a single producer
- * */
-
- public void testGroupIdAutomaticallySet() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- AddressSettings qs = new AddressSettings();
- qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
- server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
- server.start();
-
- ClientSessionFactory sf = createInVMFactory();
- sf.setAutoGroup(true);
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(groupTestQ, groupTestQ, null, false);
-
- ClientProducer producer = session.createProducer(groupTestQ);
-
- final CountDownLatch latch = new CountDownLatch(100);
-
- MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
- MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
-
- ClientConsumer consumer = session.createConsumer(groupTestQ);
- consumer.setMessageHandler(myMessageHandler);
- ClientConsumer consumer2 = session.createConsumer(groupTestQ);
- consumer2.setMessageHandler(myMessageHandler2);
-
- session.start();
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- producer.send(session.createClientMessage(false));
- }
- latch.await();
-
- session.close();
-
- assertEquals(myMessageHandler.messagesReceived, 100);
- assertEquals(myMessageHandler2.messagesReceived, 0);
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
-
- }
-
- /*
- * tests when the autogroupid is set only 2 consumers (out of 3) gets all the messages from 2 producers
- * */
- public void testGroupIdAutomaticallySetMultipleProducers() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- AddressSettings qs = new AddressSettings();
- qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
- server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
- server.start();
-
- ClientSessionFactory sf = createInVMFactory();
- sf.setAutoGroup(true);
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(groupTestQ, groupTestQ, null, false);
-
- ClientProducer producer = session.createProducer(groupTestQ);
- ClientProducer producer2 = session.createProducer(groupTestQ);
-
- final CountDownLatch latch = new CountDownLatch(200);
-
- MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
- MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
- MyMessageHandler myMessageHandler3 = new MyMessageHandler(latch);
-
- ClientConsumer consumer = session.createConsumer(groupTestQ);
- consumer.setMessageHandler(myMessageHandler);
- ClientConsumer consumer2 = session.createConsumer(groupTestQ);
- consumer2.setMessageHandler(myMessageHandler2);
- ClientConsumer consumer3 = session.createConsumer(groupTestQ);
- consumer3.setMessageHandler(myMessageHandler3);
-
- session.start();
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- producer.send(session.createClientMessage(false));
- }
- for (int i = 0; i < numMessages; i++)
- {
- producer2.send(session.createClientMessage(false));
- }
- latch.await();
-
- session.close();
-
- assertEquals(myMessageHandler.messagesReceived, 100);
- assertEquals(myMessageHandler2.messagesReceived, 100);
- assertEquals(myMessageHandler3.messagesReceived, 0);
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
-
- }
-
- /*
- * tests that even tho we have an grouping round robin distributor we don't pin the consumer as autogroup is false
- * */
- public void testGroupIdAutomaticallyNotSet() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- AddressSettings qs = new AddressSettings();
- qs.setDistributionPolicyClass(GroupingRoundRobinDistributor.class.getName());
-
- server.getAddressSettingsRepository().addMatch(groupTestQ.toString(), qs);
- server.start();
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(groupTestQ, groupTestQ, null, false);
-
- ClientProducer producer = session.createProducer(groupTestQ);
-
- final CountDownLatch latch = new CountDownLatch(100);
-
- MyMessageHandler myMessageHandler = new MyMessageHandler(latch);
- MyMessageHandler myMessageHandler2 = new MyMessageHandler(latch);
-
- ClientConsumer consumer = session.createConsumer(groupTestQ);
- consumer.setMessageHandler(myMessageHandler);
- ClientConsumer consumer2 = session.createConsumer(groupTestQ);
- consumer2.setMessageHandler(myMessageHandler2);
-
- session.start();
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- producer.send(session.createClientMessage(false));
- }
- latch.await();
-
- session.close();
-
- assertEquals(myMessageHandler.messagesReceived, 50);
- assertEquals(myMessageHandler2.messagesReceived, 50);
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
-
- }
-
- private static class MyMessageHandler implements MessageHandler
- {
- volatile int messagesReceived = 0;
-
- private final CountDownLatch latch;
-
- public MyMessageHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public void onMessage(ClientMessage message)
- {
- messagesReceived++;
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- e.printStackTrace();
- }
- latch.countDown();
- }
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientCommitRollbackTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientCommitRollbackTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientCommitRollbackTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,332 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientCommitRollbackTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString addressB = new SimpleString("addressB");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
-
- public void testReceiveWithCommit() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession session = cf.createSession(false, false, false);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = cc.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- session.commit();
- assertEquals(0, q.getDeliveringCount());
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveWithRollback() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession session = cf.createSession(false, false, false);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = cc.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- session.rollback();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = cc.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- assertEquals(numMessages, q.getDeliveringCount());
- session.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveWithRollbackMultipleConsumersDifferentQueues() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession session = cf.createSession(false, false, false);
- sendSession.createQueue(addressA, queueA, false);
- sendSession.createQueue(addressB, queueB, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientProducer cp2 = sendSession.createProducer(addressB);
- ClientConsumer cc = session.createConsumer(queueA);
- ClientConsumer cc2 = session.createConsumer(queueB);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- cp2.send(sendSession.createClientMessage(false));
- }
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = cc.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- cm = cc2.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- Queue q2 = (Queue) server.getPostOffice().getBinding(queueB).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- cc.close();
- cc2.close();
- session.rollback();
- assertEquals(0, q2.getDeliveringCount());
- assertEquals(numMessages, q.getMessageCount());
- assertEquals(0, q2.getDeliveringCount());
- assertEquals(numMessages, q.getMessageCount());
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testAsyncConsumerCommit() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnAcknowledge(true);
- cf.setAckBatchSize(0);
- ClientSession sendSession = cf.createSession(false, true, true);
- final ClientSession session = cf.createSession(false, true, false);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- final CountDownLatch latch = new CountDownLatch(numMessages);
- session.start();
- cc.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- try
- {
- session.close();
- }
- catch (MessagingException e1)
- {
- e1.printStackTrace();
- }
- }
- latch.countDown();
- }
- });
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- Queue q = (Queue)server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- assertEquals(numMessages, q.getMessageCount());
- session.commit();
- assertEquals(0, q.getDeliveringCount());
- assertEquals(0, q.getMessageCount());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testAsyncConsumerRollback() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnAcknowledge(true);
- cf.setAckBatchSize(0);
- ClientSession sendSession = cf.createSession(false, true, true);
- final ClientSession session = cf.createSession(false, true, false);
- sendSession.createQueue(addressA, queueA, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientConsumer cc = session.createConsumer(queueA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(sendSession.createClientMessage(false));
- }
- CountDownLatch latch = new CountDownLatch(numMessages);
- session.start();
- cc.setMessageHandler(new ackHandler(session, latch));
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(numMessages, q.getDeliveringCount());
- assertEquals(numMessages, q.getMessageCount());
- session.stop();
- session.rollback();
- assertEquals(0, q.getDeliveringCount());
- assertEquals(numMessages, q.getMessageCount());
- latch = new CountDownLatch(numMessages);
- cc.setMessageHandler(new ackHandler(session, latch));
- session.start();
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- private static class ackHandler implements MessageHandler
- {
- private final ClientSession session;
-
- private final CountDownLatch latch;
-
- public ackHandler(ClientSession session, CountDownLatch latch)
- {
- this.session = session;
- this.latch = latch;
- }
-
- public void onMessage(ClientMessage message)
- {
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- try
- {
- session.close();
- }
- catch (MessagingException e1)
- {
- e1.printStackTrace();
- }
- }
- latch.countDown();
- }
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerCloseTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerCloseTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,146 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- */
-public class ClientConsumerCloseTest extends ServiceTestBase
-{
-
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private MessagingServer server;
- private ClientSession session;
- private SimpleString queue;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testCanNotUseAClosedConsumer() throws Exception
- {
- final ClientConsumer consumer = session.createConsumer(queue);
-
- consumer.close();
-
- assertTrue(consumer.isClosed());
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- consumer.receive();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- consumer.receiveImmediate();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- consumer.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- }
- });
- }
- });
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- Configuration config = new ConfigurationImpl();
- config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
- config.setSecurityEnabled(false);
- server = Messaging.newMessagingServer(config, false);
- server.start();
-
- SimpleString address = randomSimpleString();
- queue = randomSimpleString();
-
- sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- session = sf.createSession(false, true, true);
- session.createQueue(address, queue, false);
-
- }
-
- private ClientSessionFactory sf;
-
- @Override
- protected void tearDown() throws Exception
- {
- session.deleteQueue(queue);
-
- session.close();
-
- sf.close();
-
- server.stop();
-
- super.tearDown();
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerRoundRobinTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerRoundRobinTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerRoundRobinTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,94 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientConsumerRoundRobinTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public void testConsumersRoundRobinCorrectly() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
-
- ClientConsumer[] consumers = new ClientConsumer[5];
- // start the session before we create the consumers, this is because start is non blocking and we have to
- // gaurantee
- // all consumers have been started before sending messages
- session.start();
- consumers[0] = session.createConsumer(queueA);
- consumers[1] = session.createConsumer(queueA);
- consumers[2] = session.createConsumer(queueA);
- consumers[3] = session.createConsumer(queueA);
- consumers[4] = session.createConsumer(queueA);
-
- //ClientSession sendSession = cf.createSession(false, true, true);
- ClientProducer cp = session.createProducer(addressA);
- int numMessage = 100;
- for (int i = 0; i < numMessage; i++)
- {
- ClientMessage cm = session.createClientMessage(false);
- cm.getBody().writeInt(i);
- cp.send(cm);
- }
- int currMessage = 0;
- for (int i = 0; i < numMessage / 5; i++)
- {
- for (int j = 0; j < 5; j++)
- {
- ClientMessage cm = consumers[j].receive(5000);
- assertNotNull(cm);
- assertEquals(currMessage++, cm.getBody().readInt());
- }
- }
- //sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,225 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
- */
-public class ClientConsumerTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientConsumerTest.class);
-
- private MessagingServer server;
-
- private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- server = null;
-
- super.tearDown();
- }
-
-
-
- public void testConsumerAckImmediateAutoCommitTrue() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
- }
-
- public void testConsumerAckImmediateAutoCommitFalse() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, false, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
- }
-
- public void testConsumerAckImmediateAckIgnored() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- if (i < 50)
- {
- message2.acknowledge();
- }
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
- }
-
- public void testConsumerAckImmediateCloseSession() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- if (i < 50)
- {
- message2.acknowledge();
- }
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
-
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientDeliveryOrderTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientDeliveryOrderTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientDeliveryOrderTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,224 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientDeliveryOrderTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
-
-
- public void testSendDeliveryOrderOnCommit() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, false, true);
- ClientProducer cp = sendSession.createProducer(addressA);
- int numMessages = 1000;
- sendSession.createQueue(addressA, queueA, false);
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = sendSession.createClientMessage(false);
- cm.getBody().writeInt(i);
- cp.send(cm);
- if (i % 10 == 0)
- {
- sendSession.commit();
- }
- sendSession.commit();
- }
- ClientConsumer c = sendSession.createConsumer(queueA);
- sendSession.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = c.receive(5000);
- assertNotNull(cm);
- assertEquals(i, cm.getBody().readInt());
- }
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveDeliveryOrderOnRollback() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, false);
- ClientProducer cp = sendSession.createProducer(addressA);
- int numMessages = 1000;
- sendSession.createQueue(addressA, queueA, false);
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = sendSession.createClientMessage(false);
- cm.getBody().writeInt(i);
- cp.send(cm);
- }
- ClientConsumer c = sendSession.createConsumer(queueA);
- sendSession.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = c.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- assertEquals(i, cm.getBody().readInt());
- }
- sendSession.rollback();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage cm = c.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- assertEquals(i, cm.getBody().readInt());
- }
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testMultipleConsumersMessageOrder() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientSession recSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- int numReceivers = 100;
- AtomicInteger count = new AtomicInteger(0);
- int numMessage = 10000;
- ClientConsumer[] clientConsumers = new ClientConsumer[numReceivers];
- Receiver[] receivers = new Receiver[numReceivers];
- CountDownLatch latch = new CountDownLatch(numMessage);
- for (int i = 0; i < numReceivers; i++)
- {
- clientConsumers[i] = recSession.createConsumer(queueA);
- receivers[i] = new Receiver(latch);
- clientConsumers[i].setMessageHandler(receivers[i]);
- }
- recSession.start();
- ClientProducer clientProducer = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessage; i++)
- {
- ClientMessage cm = sendSession.createClientMessage(false);
- cm.getBody().writeInt(count.getAndIncrement());
- clientProducer.send(cm);
- }
- assertTrue(latch.await(10, TimeUnit.SECONDS));
- for (Receiver receiver : receivers)
- {
- assertFalse("" + receiver.lastMessage, receiver.failed);
- }
- sendSession.close();
- recSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
-
-
-
-
- class Receiver implements MessageHandler
- {
- final CountDownLatch latch;
-
- int lastMessage = -1;
-
- boolean failed = false;
-
- public Receiver(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public void onMessage(ClientMessage message)
- {
- int i = message.getBody().readInt();
- try
- {
- message.acknowledge();
- }
- catch (MessagingException e)
- {
- e.printStackTrace();
- }
- if (i <= lastMessage)
- {
- failed = true;
- }
- lastMessage = i;
- latch.countDown();
- }
-
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageCounterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageCounterTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageCounterTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,112 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
- */
-public class ClientMessageCounterTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientConsumerTest.class);
-
- private MessagingServer server;
-
- private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- server = null;
-
- super.tearDown();
- }
-
- public void testMessageCounter() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- sf.setBlockOnNonPersistentSend(true);
- sf.setBlockOnPersistentSend(true);
-
- ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- session.commit();
- session.start();
-
- assertEquals(100, getMessageCount(server.getPostOffice(), QUEUE.toString()));
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, false);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = consumer.receive(1000);
-
- assertNotNull(message);
- message.acknowledge();
-
- session.commit();
-
- assertEquals("m" + i, message.getBody().readString());
- }
-
- session.close();
-
- assertEquals(0, getMessageCount(server.getPostOffice(), QUEUE.toString()));
-
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageHandlerTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageHandlerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,412 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientMessageHandlerTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientConsumerTest.class);
-
- private MessagingServer server;
-
- private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- server = null;
-
- super.tearDown();
- }
-
- public void testSetMessageHandlerWithMessagesPending() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
-
- session.start();
-
- Thread.sleep(100);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- public void onMessage(final ClientMessage message)
- {
- try
- {
- Thread.sleep(10);
-
- message.acknowledge();
- }
- catch (Exception e)
- {
- }
- }
- }
-
- consumer.setMessageHandler(new MyHandler());
-
- // Let a few messages get processed
- Thread.sleep(100);
-
- // Now set null
-
- consumer.setMessageHandler(null);
-
- // Give a bit of time for some queued executors to run
-
- Thread.sleep(500);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
-
- session.close();
- }
-
-
- public void testSetResetMessageHandler() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
-
- session.start();
-
- CountDownLatch latch = new CountDownLatch(50);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- int messageReceived = 0;
-
- boolean failed;
-
- boolean started = true;
-
- private final CountDownLatch latch;
-
- public MyHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
- messageReceived++;
- latch.countDown();
-
- if (latch.getCount() == 0)
- {
-
- message.acknowledge();
- started = false;
- consumer.setMessageHandler(null);
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler(latch);
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- latch = new CountDownLatch(50);
- handler = new MyHandler(latch);
- consumer.setMessageHandler(handler);
- session.start();
- assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
- assertNull(consumer.getLastException());
- session.close();
- }
-
- public void testSetUnsetMessageHandler() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
-
- session.start();
-
- CountDownLatch latch = new CountDownLatch(50);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- int messageReceived = 0;
-
- boolean failed;
-
- boolean started = true;
-
- private final CountDownLatch latch;
-
- public MyHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
- messageReceived++;
- latch.countDown();
-
- if (latch.getCount() == 0)
- {
-
- message.acknowledge();
- started = false;
- consumer.setMessageHandler(null);
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler(latch);
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- consumer.setMessageHandler(null);
- ClientMessage cm = consumer.receiveImmediate();
- assertNotNull(cm);
-
- session.close();
- }
-
- public void testSetUnsetResetMessageHandler() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
-
- session.start();
-
- CountDownLatch latch = new CountDownLatch(50);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- int messageReceived = 0;
-
- boolean failed;
-
- boolean started = true;
-
- private final CountDownLatch latch;
-
- public MyHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
- messageReceived++;
- latch.countDown();
-
- if (latch.getCount() == 0)
- {
-
- message.acknowledge();
- started = false;
- consumer.setMessageHandler(null);
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler(latch);
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- consumer.setMessageHandler(null);
- ClientMessage cm = consumer.receiveImmediate();
- assertNotNull(cm);
- latch = new CountDownLatch(49);
- handler = new MyHandler(latch);
- consumer.setMessageHandler(handler);
- session.start();
- assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
- assertNull(consumer.getLastException());
- session.close();
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientProducerCloseTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientProducerCloseTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientProducerCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,116 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-
-/**
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- */
-public class ClientProducerCloseTest extends ServiceTestBase
-{
-
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private MessagingServer server;
-
- private ClientSession session;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testCanNotUseAClosedProducer() throws Exception
- {
- final ClientProducer producer = session.createProducer(randomSimpleString());
-
- assertFalse(producer.isClosed());
-
- producer.close();
-
- assertTrue(producer.isClosed());
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- producer.send(session.createClientMessage(false));
- }
- });
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
- Configuration config = new ConfigurationImpl();
- config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
- config.setSecurityEnabled(false);
- server = Messaging.newMessagingServer(config, false);
- server.start();
-
- sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- session = sf.createSession(false, true, true);
- }
-
- private ClientSessionFactory sf;
-
- @Override
- protected void tearDown() throws Exception
- {
- session.close();
-
- sf.close();
-
- server.stop();
-
- super.tearDown();
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientQueueBrowserTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientQueueBrowserTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientQueueBrowserTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,358 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
- */
-public class ClientQueueBrowserTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientConsumerTest.class);
-
- private MessagingServer server;
-
- private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- server = null;
-
- super.tearDown();
- }
-
- private ClientSessionFactory sf;
-
- public void testSimpleConsumerBrowser() throws Exception
- {
- sf = new ClientSessionFactoryImpl(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory"));
-
- sf.setBlockOnNonPersistentSend(true);
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- consumer.close();
-
- consumer = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- consumer.close();
-
- session.close();
-
- }
-
- public void testConsumerBrowserWithSelector() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("x"), i);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("x >= 50"), true);
-
- for (int i = 50; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- consumer.close();
-
- consumer = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- consumer.close();
-
- session.close();
-
- }
-
- public void testConsumerBrowserWithStringSelector() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- if (i % 2 == 0)
- {
- message.putStringProperty(new SimpleString("color"), new SimpleString("RED"));
- }
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("color = 'RED'"), true);
-
- for (int i = 0; i < numMessages; i += 2)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- session.close();
-
- }
-
- public void testConsumerMultipleBrowser() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
- ClientConsumer consumer2 = session.createConsumer(QUEUE, null, true);
- ClientConsumer consumer3 = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- message2 = consumer2.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- message2 = consumer3.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- session.close();
-
- }
-
- public void testConsumerMultipleBrowserWithSelector() throws Exception
- {
-
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("x"), i);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("x < 50"), true);
- ClientConsumer consumer2 = session.createConsumer(QUEUE, new SimpleString("x >= 50"), true);
- ClientConsumer consumer3 = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < 50; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- }
- for (int i = 50; i < numMessages; i++)
- {
- ClientMessage message2 = consumer2.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- }
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer3.receive(1000);
- assertEquals("m" + i, message2.getBody().readString());
- }
-
- session.close();
-
- }
-
- public void testConsumerBrowserMessages() throws Exception
- {
- testConsumerBrowserMessagesArentAcked(false);
- }
-
- public void testConsumerBrowserMessagesPreACK() throws Exception
- {
- testConsumerBrowserMessagesArentAcked(false);
- }
-
- private void testConsumerBrowserMessagesArentAcked(boolean preACK) throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(null, null, false, true, true, preACK, 0);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- assertEquals("m" + i, message2.getBody().readString());
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(100, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
- }
-
- public void testConsumerBrowserMessageAckDoesNothing() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message2 = consumer.receive(1000);
-
- message2.acknowledge();
-
- assertEquals("m" + i, message2.getBody().readString());
- }
- // assert that all the messages are there and none have been acked
- assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(100, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
-
- session.close();
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientReceiveTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientReceiveTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientReceiveTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,205 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientReceiveTest extends ServiceTestBase
-{
- SimpleString addressA = new SimpleString("addressA");
-
- SimpleString queueA = new SimpleString("queueA");
-
- public void testBasicReceive() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientConsumer cc = session.createConsumer(queueA);
- session.start();
- cp.send(sendSession.createClientMessage(false));
- assertNotNull(cc.receive());
- session.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveTimesoutCorrectly() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientConsumer cc = session.createConsumer(queueA);
- session.start();
- long time = System.currentTimeMillis();
- cc.receive(1000);
- assertTrue(System.currentTimeMillis() - time >= 1000);
- session.close();
-
-
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveOnClosedException() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientConsumer cc = session.createConsumer(queueA);
- session.start();
- session.close();
- try
- {
- cc.receive();
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(MessagingException.OBJECT_CLOSED, e.getCode());
- }
- session.close();
-
-
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveThrowsExceptionWhenHandlerSet() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientConsumer cc = session.createConsumer(queueA);
- session.start();
- cc.setMessageHandler(new MessageHandler()
- {
- public void onMessage(ClientMessage message)
- {
- }
- });
- try
- {
- cc.receive();
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(MessagingException.ILLEGAL_STATE, e.getCode());
- }
- session.close();
-
-
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testReceiveImmediate() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- //forces perfect round robin
- cf.setConsumerWindowSize(1);
- ClientSession sendSession = cf.createSession(false, true, true);
- ClientProducer cp = sendSession.createProducer(addressA);
- ClientSession session = cf.createSession(false, true, true);
- session.createQueue(addressA, queueA, false);
- ClientConsumer cc = session.createConsumer(queueA);
- ClientConsumer cc2 = session.createConsumer(queueA);
- session.start();
- cp.send(sendSession.createClientMessage(false));
- cp.send(sendSession.createClientMessage(false));
- cp.send(sendSession.createClientMessage(false));
- //at this point we know that the first consumer has a messge in ites buffer
- assertNotNull(cc2.receive(5000));
- assertNotNull(cc2.receive(5000));
- assertNotNull(cc.receiveImmediate());
- session.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRequestorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRequestorTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRequestorTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,275 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientRequestor;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.client.impl.ClientMessageImpl;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingServer;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * A ClientRequestorTest
- *
- * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
- */
-public class ClientRequestorTest extends UnitTestCase
-{
-
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private MessagingServer service;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testRequest() throws Exception
- {
- final SimpleString key = randomSimpleString();
- long value = randomLong();
- SimpleString requestAddress = randomSimpleString();
- SimpleString requestQueue = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.start();
-
- session.createTemporaryQueue(requestAddress, requestQueue);
-
- ClientConsumer requestConsumer = session.createConsumer(requestQueue);
- requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
-
- ClientRequestor requestor = new ClientRequestor(session, requestAddress);
- ClientMessage request = session.createClientMessage(false);
- request.putLongProperty(key, value);
-
- ClientMessage reply = requestor.request(request, 500);
- assertNotNull("reply was not received", reply);
- assertEquals(value, reply.getProperty(key));
-
- session.close();
- }
-
- public void testTwoRequests() throws Exception
- {
- final SimpleString key = randomSimpleString();
- long value = randomLong();
- SimpleString requestAddress = randomSimpleString();
- SimpleString requestQueue = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.start();
-
- session.createTemporaryQueue(requestAddress, requestQueue);
-
- ClientConsumer requestConsumer = session.createConsumer(requestQueue);
- requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
-
- ClientRequestor requestor = new ClientRequestor(session, requestAddress);
- ClientMessage request = session.createClientMessage(false);
- request.putLongProperty(key, value);
-
- ClientMessage reply = requestor.request(request, 500);
- assertNotNull("reply was not received", reply);
- assertEquals(value, reply.getProperty(key));
-
- request = session.createClientMessage(false);
- request.putLongProperty(key, value + 1);
-
- reply = requestor.request(request, 500);
- assertNotNull("reply was not received", reply);
- assertEquals(value + 1, reply.getProperty(key));
-
- session.close();
- }
-
- public void testRequestWithRequestConsumerWhichDoesNotReply() throws Exception
- {
- SimpleString requestAddress = randomSimpleString();
- SimpleString requestQueue = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.start();
-
- session.createTemporaryQueue(requestAddress, requestQueue);
-
- ClientConsumer requestConsumer = session.createConsumer(requestQueue);
- requestConsumer.setMessageHandler(new MessageHandler()
- {
- // return a message with the negative request's value
- public void onMessage(ClientMessage request)
- {
- // do nothing -> no reply
- }
- });
-
- ClientRequestor requestor = new ClientRequestor(session, requestAddress);
- ClientMessage request = session.createClientMessage(false);
-
- ClientMessage reply = requestor.request(request, 500);
- assertNull(reply);
-
- session.close();
- }
-
- public void testClientRequestorConstructorWithClosedSession() throws Exception
- {
- final SimpleString requestAddress = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.close();
-
- expectMessagingException("ClientRequestor's session must not be closed", MessagingException.OBJECT_CLOSED, new MessagingAction(){
- public void run() throws Exception
- {
- new ClientRequestor(session, requestAddress);
- }
- });
- }
-
- public void testClose() throws Exception
- {
- final SimpleString key = randomSimpleString();
- long value = randomLong();
- SimpleString requestAddress = randomSimpleString();
- SimpleString requestQueue = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.start();
-
- session.createTemporaryQueue(requestAddress, requestQueue);
-
- ClientConsumer requestConsumer = session.createConsumer(requestQueue);
- requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
-
- final ClientRequestor requestor = new ClientRequestor(session, requestAddress);
- ClientMessage request = session.createClientMessage(false);
- request.putLongProperty(key, value);
-
- ClientMessage reply = requestor.request(request, 500);
- assertNotNull("reply was not received", reply);
- assertEquals(value, reply.getProperty(key));
-
- request = session.createClientMessage(false);
- request.putLongProperty(key, value + 1);
-
- requestor.close();
-
- expectMessagingException("can not send a request on a closed ClientRequestor", MessagingException.OBJECT_CLOSED, new MessagingAction(){
-
- public void run() throws Exception
- {
- requestor.request(session.createClientMessage(false), 500);
- }
- });
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- Configuration conf = new ConfigurationImpl();
- conf.setSecurityEnabled(false);
- conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
- service = Messaging.newMessagingServer(conf, false);
- service.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- service.stop();
-
- super.tearDown();
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
- private final class SimpleMessageHandler implements MessageHandler
- {
- private final SimpleString key;
-
- private final ClientSession session;
-
- private SimpleMessageHandler(SimpleString key, ClientSession session)
- {
- this.key = key;
- this.session = session;
- }
-
- public void onMessage(ClientMessage request)
- {
- try
- {
- ClientMessage reply = session.createClientMessage(false);
- SimpleString replyTo = (SimpleString)request.getProperty(ClientMessageImpl.REPLYTO_HEADER_NAME);
- long value = (Long)request.getProperty(key);
- reply.putLongProperty(key, value);
- ClientProducer replyProducer = session.createProducer(replyTo);
- replyProducer.send(reply);
- request.acknowledge();
- }
- catch (MessagingException e)
- {
- e.printStackTrace();
- }
- }
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRoutingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRoutingTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRoutingTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,314 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientRoutingTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
-
- public void testRouteToMultipleQueues() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- sendSession.createQueue(addressA, queueB, false);
- sendSession.createQueue(addressA, queueC, false);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- p.send(sendSession.createClientMessage(false));
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- ClientConsumer c2 = session.createConsumer(queueB);
- ClientConsumer c3 = session.createConsumer(queueC);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- c2.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- c3.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- assertNull(c2.receiveImmediate());
- assertNull(c3.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRouteToSingleNonDurableQueue() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, false);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- p.send(sendSession.createClientMessage(false));
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRouteToSingleDurableQueue() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, true);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- p.send(sendSession.createClientMessage(false));
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRouteToSingleQueueWithFilter() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage clientMessage = sendSession.createClientMessage(false);
- clientMessage.putStringProperty(new SimpleString("foo"), new SimpleString("bar"));
- p.send(clientMessage);
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRouteToMultipleQueueWithFilters() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
- sendSession.createQueue(addressA, queueB, new SimpleString("x = 1"), false);
- sendSession.createQueue(addressA, queueC, new SimpleString("b = false"), false);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage clientMessage = sendSession.createClientMessage(false);
- if (i % 3 == 0)
- {
- clientMessage.putStringProperty(new SimpleString("foo"), new SimpleString("bar"));
- }
- else if (i % 3 == 1)
- {
- clientMessage.putIntProperty(new SimpleString("x"), 1);
- }
- else
- {
- clientMessage.putBooleanProperty(new SimpleString("b"), false);
- }
- p.send(clientMessage);
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- ClientConsumer c2 = session.createConsumer(queueB);
- ClientConsumer c3 = session.createConsumer(queueC);
- session.start();
- for (int i = 0; i < numMessages / 3; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = c2.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = c3.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- assertNull(c2.receiveImmediate());
- assertNull(c3.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRouteToSingleTemporaryQueue() throws Exception
- {
- MessagingServer server = createServer(false);
-
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession sendSession = cf.createSession(false, true, true);
- sendSession.createTemporaryQueue(addressA, queueA);
- int numMessages = 300;
- ClientProducer p = sendSession.createProducer(addressA);
- for (int i = 0; i < numMessages; i++)
- {
- p.send(sendSession.createClientMessage(false));
- }
- ClientSession session = cf.createSession(false, true, true);
- ClientConsumer c1 = session.createConsumer(queueA);
- session.start();
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage m = c1.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- }
- assertNull(c1.receiveImmediate());
- sendSession.close();
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSendTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSendTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSendTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,122 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSendTest extends ServiceTestBase
-{
- public final SimpleString addressA = new SimpleString("addressA");
-
- public final SimpleString queueA = new SimpleString("queueA");
-
- public final SimpleString queueB = new SimpleString("queueB");
-
- public final SimpleString queueC = new SimpleString("queueC");
-
-
- public void testSendWithCommit() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, false, false);
- session.createQueue(addressA, queueA, false);
- ClientProducer cp = session.createProducer(addressA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(session.createClientMessage(false));
- }
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(q.getMessageCount(), 0);
- session.commit();
- assertEquals(q.getMessageCount(), numMessages);
- // now send some more
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(session.createClientMessage(false));
- }
- assertEquals(q.getMessageCount(), numMessages);
- session.commit();
- assertEquals(q.getMessageCount(), numMessages * 2);
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testSendWithRollback() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, false, false);
- session.createQueue(addressA, queueA, false);
- ClientProducer cp = session.createProducer(addressA);
- int numMessages = 100;
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(session.createClientMessage(false));
- }
- Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
- assertEquals(q.getMessageCount(), 0);
- session.rollback();
- assertEquals(q.getMessageCount(), 0);
- // now send some more
- for (int i = 0; i < numMessages; i++)
- {
- cp.send(session.createClientMessage(false));
- }
- assertEquals(q.getMessageCount(), 0);
- session.commit();
- assertEquals(q.getMessageCount(), numMessages);
- session.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCloseTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCloseTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,281 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
-
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * A SessionCloseTest
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- *
- */
-public class ClientSessionCloseTest extends UnitTestCase
-{
-
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private MessagingServer server;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testCanNotUseAClosedSession() throws Exception
- {
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(false, true, true);
-
- session.close();
-
- assertTrue(session.isClosed());
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.createProducer();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.createConsumer(randomSimpleString());
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.createQueue(randomSimpleString(), randomSimpleString(), randomBoolean());
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.createTemporaryQueue(randomSimpleString(), randomSimpleString());
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.start();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.stop();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.commit();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.rollback();
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.queueQuery(randomSimpleString());
- }
- });
-
- expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
- {
- public void run() throws MessagingException
- {
- session.bindingQuery(randomSimpleString());
- }
- });
-
- }
-
- public void testCanNotUseXAWithClosedSession() throws Exception
- {
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- final ClientSession session = sf.createSession(true, false, false);
-
- session.close();
-
- assertTrue(session.isXA());
- assertTrue(session.isClosed());
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.commit(randomXid(), randomBoolean());
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.end(randomXid(), XAResource.TMSUCCESS);
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.forget(randomXid());
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.prepare(randomXid());
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.recover(XAResource.TMSTARTRSCAN);
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.rollback(randomXid());
- }
- });
-
- expectXAException(XAException.XAER_RMERR, new MessagingAction()
- {
- public void run() throws XAException
- {
- session.start(randomXid(), XAResource.TMNOFLAGS);
- }
- });
-
- }
-
- public void testCloseHierarchy() throws Exception
- {
- SimpleString address = randomSimpleString();
- SimpleString queue = randomSimpleString();
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
- ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(address, queue, false);
-
- ClientProducer producer = session.createProducer(address);
- ClientConsumer consumer = session.createConsumer(queue);
-
- session.close();
-
- assertTrue(session.isClosed());
- assertTrue(producer.isClosed());
- assertTrue(consumer.isClosed());
-
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- Configuration config = new ConfigurationImpl();
- config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
- config.setSecurityEnabled(false);
- server = Messaging.newMessagingServer(config, false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- super.tearDown();
- }
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateAndDeleteQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateAndDeleteQueueTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateAndDeleteQueueTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,163 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.postoffice.Binding;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.core.server.impl.LastValueQueue;
-import org.jboss.messaging.core.settings.impl.AddressSettings;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSessionCreateAndDeleteQueueTest extends ServiceTestBase
-{
- private MessagingServer server;
-
- private SimpleString address = new SimpleString("address");
-
- private SimpleString queueName = new SimpleString("queue");
-
-
- public void testDurableFalse() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- session.createQueue(address, queueName, false);
- Binding binding = server.getPostOffice().getBinding(queueName);
- Queue q = (Queue) binding.getBindable();
- assertFalse(q.isDurable());
-
- session.close();
- }
-
- public void testDurableTrue() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- session.createQueue(address, queueName, true);
- Binding binding = server.getPostOffice().getBinding(queueName);
- Queue q = (Queue) binding.getBindable();
- assertTrue(q.isDurable());
-
- session.close();
- }
-
- public void testTemporaryFalse() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- session.createQueue(address, queueName, false);
- Binding binding = server.getPostOffice().getBinding(queueName);
- Queue q = (Queue) binding.getBindable();
- assertFalse(q.isTemporary());
-
- session.close();
- }
-
- public void testTemporaryTrue() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- session.createTemporaryQueue(address, queueName);
- Binding binding = server.getPostOffice().getBinding(queueName);
- Queue q = (Queue) binding.getBindable();
- assertTrue(q.isTemporary());
-
- session.close();
- }
-
- public void testcreateWithFilter() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- SimpleString filterString = new SimpleString("x=y");
- session.createQueue(address, queueName, filterString, false);
- Binding binding = server.getPostOffice().getBinding(queueName);
- Queue q = (Queue) binding.getBindable();
- assertEquals(q.getFilter().getFilterString(), filterString);
-
- session.close();
- }
-
- public void testAddressSettingUSed() throws Exception
- {
- AddressSettings addressSettings = new AddressSettings();
- addressSettings.setLastValueQueue(true);
- server.getAddressSettingsRepository().addMatch(address.toString(), addressSettings);
- ClientSession session = createInVMFactory().createSession(false, true, true);
- SimpleString filterString = new SimpleString("x=y");
- session.createQueue(address, queueName, filterString, false);
- Binding binding = server.getPostOffice().getBinding(queueName);
- assertTrue(binding.getBindable() instanceof LastValueQueue);
-
- session.close();
- }
-
- public void testDeleteQueue() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- session.createQueue(address, queueName, false);
- Binding binding = server.getPostOffice().getBinding(queueName);
- assertNotNull(binding);
- session.deleteQueue(queueName);
- binding = server.getPostOffice().getBinding(queueName);
- assertNull(binding);
- session.close();
- }
-
- public void testDeleteQueueNotExist() throws Exception
- {
- ClientSession session = createInVMFactory().createSession(false, true, true);
- try
- {
- session.deleteQueue(queueName);
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(MessagingException.QUEUE_DOES_NOT_EXIST, e.getCode());
- }
- session.close();
- }
-
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
- server = createServer(false);
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- if(server != null && server.isStarted())
- {
- server.stop();
- }
-
- super.tearDown();
-
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateConsumerTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateConsumerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,183 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionInternal;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSessionCreateConsumerTest extends ServiceTestBase
-{
- private String queueName = "ClientSessionCreateConsumerTestQ";
-
- public void testCreateConsumer() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientConsumer consumer = clientSession.createConsumer(queueName);
- assertNotNull(consumer);
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateConsumerNoQ() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- try
- {
- clientSession.createConsumer(queueName);
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(e.getCode(), MessagingException.QUEUE_DOES_NOT_EXIST);
- }
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateConsumerWithFilter() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientConsumer consumer = clientSession.createConsumer(queueName, "foo=bar");
- assertNotNull(consumer);
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateConsumerWithInvalidFilter() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- try
- {
- clientSession.createConsumer(queueName, "foobar");
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(e.getCode(), MessagingException.INVALID_FILTER_EXPRESSION);
- }
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateConsumerWithBrowseOnly() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientConsumer consumer = clientSession.createConsumer(queueName, null, true);
- assertNotNull(consumer);
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateConsumerWithOverrides() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientConsumer consumer = clientSession.createConsumer(queueName, null, 100, 100, false);
- assertNotNull(consumer);
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateProducerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateProducerTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateProducerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,168 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionInternal;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSessionCreateProducerTest extends ServiceTestBase
-{
- public void testCreateAnonProducer() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
- ClientProducer producer = clientSession.createProducer();
- assertNull(producer.getAddress());
- assertEquals(cf.getProducerMaxRate(), producer.getMaxRate());
- assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
- assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
- assertFalse(producer.isClosed());
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateProducer1() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
- ClientProducer producer = clientSession.createProducer("testAddress");
- assertNotNull(producer.getAddress());
- assertEquals(cf.getProducerMaxRate(), producer.getMaxRate());
- assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
- assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
- assertFalse(producer.isClosed());
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateProducer2() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
- int rate = 9876;
- ClientProducer producer = clientSession.createProducer("testAddress", rate);
- assertNotNull(producer.getAddress());
- assertEquals(rate, producer.getMaxRate());
- assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
- assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
- assertFalse(producer.isClosed());
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testCreateProducer3() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
- int rate = 9876;
- boolean blockOnSend = false;
- boolean blockOnNonSend = false;
- ClientProducer producer = clientSession.createProducer("testAddress", 9876, blockOnSend, blockOnNonSend);
- assertNotNull(producer.getAddress());
- assertEquals(rate, producer.getMaxRate());
- assertEquals(blockOnSend, producer.isBlockOnNonPersistentSend());
- assertEquals(blockOnNonSend, producer.isBlockOnPersistentSend());
- assertFalse(producer.isClosed());
- clientSession.close();
- }
- finally
- {
- service.stop();
- }
- }
-
- public void testProducerOnClosedSession() throws Exception
- {
- MessagingServer service = createServer(false);
- try
- {
- service.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setProducerMaxRate(99);
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnNonPersistentSend(true);
- ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
- clientSession.close();
- try
- {
- clientSession.createProducer();
- fail("should throw exception");
- }
- catch (MessagingException e)
- {
- assertEquals(e.getCode(), MessagingException.OBJECT_CLOSED);
- }
- }
- finally
- {
- service.stop();
- }
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,881 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ClientSessionImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.RandomUtil;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.Pair;
-
-/**
- *
- * A ClientSessionFactoryTest
- *
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- *
- */
-public class ClientSessionFactoryTest extends ServiceTestBase
-{
- private final String groupAddress = "230.1.2.3";
-
- private final int groupPort = 8765;
-
- private MessagingServer liveService;
-
- private MessagingServer backupService;
-
- private TransportConfiguration liveTC;
-
- private TransportConfiguration backupTC;
-
- public void testDefaultConstructor() throws Exception
- {
- try
- {
- startLiveAndBackup();
- ClientSessionFactory cf = new ClientSessionFactoryImpl();
- assertFactoryParams(cf,
- null,
- null,
- 0,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
- ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
- ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
- ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
- ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
- ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
- ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
- ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
- try
- {
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- fail("Should throw exception");
- }
- catch (MessagingException e)
- {
- // Ok
- }
- final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- this.backupTC);
- staticConnectors.add(pair0);
- cf.setStaticConnectors(staticConnectors);
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- assertNotNull(session);
- session.close();
- testSettersThrowException(cf);
- }
- finally
- {
- stopLiveAndBackup();
- }
- }
-
- public void testDiscoveryConstructor() throws Exception
- {
- try
- {
- startLiveAndBackup();
- ClientSessionFactory cf = new ClientSessionFactoryImpl(groupAddress, groupPort);
- assertFactoryParams(cf,
- null,
- groupAddress,
- groupPort,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
- ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
- ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
- ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
- ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
- ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
- ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
- ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- assertNotNull(session);
- session.close();
- testSettersThrowException(cf);
- }
- finally
- {
- stopLiveAndBackup();
- }
- }
-
- public void testStaticConnectorListConstructor() throws Exception
- {
- try
- {
- startLiveAndBackup();
- final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- this.backupTC);
- staticConnectors.add(pair0);
-
- ClientSessionFactory cf = new ClientSessionFactoryImpl(staticConnectors);
- assertFactoryParams(cf,
- staticConnectors,
- null,
- 0,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
- ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
- ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
- ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
- ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
- ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
- ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
- ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- assertNotNull(session);
- session.close();
- testSettersThrowException(cf);
- }
- finally
- {
- stopLiveAndBackup();
- }
- }
-
- public void testStaticConnectorLiveAndBackupConstructor() throws Exception
- {
- try
- {
- startLiveAndBackup();
- final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- this.backupTC);
- staticConnectors.add(pair0);
-
- ClientSessionFactory cf = new ClientSessionFactoryImpl(this.liveTC, this.backupTC);
- assertFactoryParams(cf,
- staticConnectors,
- null,
- 0,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
- ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
- ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
- ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
- ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
- ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
- ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
- ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- assertNotNull(session);
- session.close();
- testSettersThrowException(cf);
- }
- finally
- {
- stopLiveAndBackup();
- }
- }
-
- public void testStaticConnectorLiveConstructor() throws Exception
- {
- try
- {
- startLiveAndBackup();
- final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- null);
- staticConnectors.add(pair0);
-
- ClientSessionFactory cf = new ClientSessionFactoryImpl(this.liveTC);
- assertFactoryParams(cf,
- staticConnectors,
- null,
- 0,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
- ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
- ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
- ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
- ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
- ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
- ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
- ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
- ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
- ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
- ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
- ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
- ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
- ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
- ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
- assertNotNull(session);
- session.close();
- testSettersThrowException(cf);
- }
- finally
- {
- stopLiveAndBackup();
- }
- }
-
- public void testGettersAndSetters()
- {
- ClientSessionFactory cf = new ClientSessionFactoryImpl();
-
- List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- this.backupTC);
- staticConnectors.add(pair0);
-
- String discoveryAddress = randomString();
- int discoveryPort = RandomUtil.randomPositiveInt();
- long discoveryRefreshTimeout = RandomUtil.randomPositiveLong();
- long clientFailureCheckPeriod = RandomUtil.randomPositiveLong();
- long connectionTTL = RandomUtil.randomPositiveLong();
- long callTimeout = RandomUtil.randomPositiveLong();
- int maxConnections = RandomUtil.randomPositiveInt();
- int minLargeMessageSize = RandomUtil.randomPositiveInt();
- int consumerWindowSize = RandomUtil.randomPositiveInt();
- int consumerMaxRate = RandomUtil.randomPositiveInt();
- int producerWindowSize = RandomUtil.randomPositiveInt();
- int producerMaxRate = RandomUtil.randomPositiveInt();
- boolean blockOnAcknowledge = RandomUtil.randomBoolean();
- boolean blockOnPersistentSend = RandomUtil.randomBoolean();
- boolean blockOnNonPersistentSend = RandomUtil.randomBoolean();
- boolean autoGroup = RandomUtil.randomBoolean();
- boolean preAcknowledge = RandomUtil.randomBoolean();
- String loadBalancingPolicyClassName = RandomUtil.randomString();
- int ackBatchSize = RandomUtil.randomPositiveInt();
- long initialWaitTimeout = RandomUtil.randomPositiveLong();
- boolean useGlobalPools = RandomUtil.randomBoolean();
- int scheduledThreadPoolMaxSize = RandomUtil.randomPositiveInt();
- int threadPoolMaxSize = RandomUtil.randomPositiveInt();
- long retryInterval = RandomUtil.randomPositiveLong();
- double retryIntervalMultiplier = RandomUtil.randomDouble();
- int reconnectAttempts = RandomUtil.randomPositiveInt();
- boolean failoverOnServerShutdown = RandomUtil.randomBoolean();
-
- cf.setStaticConnectors(staticConnectors);
- cf.setDiscoveryAddress(discoveryAddress);
- cf.setDiscoveryPort(discoveryPort);
- cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
- cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
- cf.setConnectionTTL(connectionTTL);
- cf.setCallTimeout(callTimeout);
- cf.setMaxConnections(maxConnections);
- cf.setMinLargeMessageSize(minLargeMessageSize);
- cf.setConsumerWindowSize(consumerWindowSize);
- cf.setConsumerMaxRate(consumerMaxRate);
- cf.setProducerWindowSize(producerWindowSize);
- cf.setProducerMaxRate(producerMaxRate);
- cf.setBlockOnAcknowledge(blockOnAcknowledge);
- cf.setBlockOnPersistentSend(blockOnPersistentSend);
- cf.setBlockOnNonPersistentSend(blockOnNonPersistentSend);
- cf.setAutoGroup(autoGroup);
- cf.setPreAcknowledge(preAcknowledge);
- cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
- cf.setAckBatchSize(ackBatchSize);
- cf.setDiscoveryInitialWaitTimeout(initialWaitTimeout);
- cf.setUseGlobalPools(useGlobalPools);
- cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
- cf.setThreadPoolMaxSize(threadPoolMaxSize);
- cf.setRetryInterval(retryInterval);
- cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
- cf.setReconnectAttempts(reconnectAttempts);
- cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
-
- assertEquals(staticConnectors, cf.getStaticConnectors());
- assertEquals(discoveryAddress, cf.getDiscoveryAddress());
- assertEquals(discoveryPort, cf.getDiscoveryPort());
- assertEquals(discoveryRefreshTimeout, cf.getDiscoveryRefreshTimeout());
- assertEquals(clientFailureCheckPeriod, cf.getClientFailureCheckPeriod());
- assertEquals(connectionTTL, cf.getConnectionTTL());
- assertEquals(callTimeout, cf.getCallTimeout());
- assertEquals(maxConnections, cf.getMaxConnections());
- assertEquals(minLargeMessageSize, cf.getMinLargeMessageSize());
- assertEquals(consumerWindowSize, cf.getConsumerWindowSize());
- assertEquals(consumerMaxRate, cf.getConsumerMaxRate());
- assertEquals(producerWindowSize, cf.getProducerWindowSize());
- assertEquals(producerMaxRate, cf.getProducerMaxRate());
- assertEquals(blockOnAcknowledge, cf.isBlockOnAcknowledge());
- assertEquals(blockOnPersistentSend, cf.isBlockOnPersistentSend());
- assertEquals(blockOnNonPersistentSend, cf.isBlockOnNonPersistentSend());
- assertEquals(autoGroup, cf.isAutoGroup());
- assertEquals(preAcknowledge, cf.isPreAcknowledge());
- assertEquals(loadBalancingPolicyClassName, cf.getConnectionLoadBalancingPolicyClassName());
- assertEquals(ackBatchSize, cf.getAckBatchSize());
- assertEquals(initialWaitTimeout, cf.getDiscoveryInitialWaitTimeout());
- assertEquals(useGlobalPools, cf.isUseGlobalPools());
- assertEquals(scheduledThreadPoolMaxSize, cf.getScheduledThreadPoolMaxSize());
- assertEquals(threadPoolMaxSize, cf.getThreadPoolMaxSize());
- assertEquals(retryInterval, cf.getRetryInterval());
- assertEquals(retryIntervalMultiplier, cf.getRetryIntervalMultiplier());
- assertEquals(reconnectAttempts, cf.getReconnectAttempts());
- assertEquals(failoverOnServerShutdown, cf.isFailoverOnServerShutdown());
-
- }
-
- private void testSettersThrowException(ClientSessionFactory cf)
- {
- List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
- Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
- this.backupTC);
- staticConnectors.add(pair0);
-
- String discoveryAddress = randomString();
- int discoveryPort = RandomUtil.randomPositiveInt();
- long discoveryRefreshTimeout = RandomUtil.randomPositiveLong();
- long clientFailureCheckPeriod = RandomUtil.randomPositiveLong();
- long connectionTTL = RandomUtil.randomPositiveLong();
- long callTimeout = RandomUtil.randomPositiveLong();
- int maxConnections = RandomUtil.randomPositiveInt();
- int minLargeMessageSize = RandomUtil.randomPositiveInt();
- int consumerWindowSize = RandomUtil.randomPositiveInt();
- int consumerMaxRate = RandomUtil.randomPositiveInt();
- int producerWindowSize = RandomUtil.randomPositiveInt();
- int producerMaxRate = RandomUtil.randomPositiveInt();
- boolean blockOnAcknowledge = RandomUtil.randomBoolean();
- boolean blockOnPersistentSend = RandomUtil.randomBoolean();
- boolean blockOnNonPersistentSend = RandomUtil.randomBoolean();
- boolean autoGroup = RandomUtil.randomBoolean();
- boolean preAcknowledge = RandomUtil.randomBoolean();
- String loadBalancingPolicyClassName = RandomUtil.randomString();
- int ackBatchSize = RandomUtil.randomPositiveInt();
- long initialWaitTimeout = RandomUtil.randomPositiveLong();
- boolean useGlobalPools = RandomUtil.randomBoolean();
- int scheduledThreadPoolMaxSize = RandomUtil.randomPositiveInt();
- int threadPoolMaxSize = RandomUtil.randomPositiveInt();
- long retryInterval = RandomUtil.randomPositiveLong();
- double retryIntervalMultiplier = RandomUtil.randomDouble();
- int reconnectAttempts = RandomUtil.randomPositiveInt();
- boolean failoverOnServerShutdown = RandomUtil.randomBoolean();
-
- try
- {
- cf.setStaticConnectors(staticConnectors);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setDiscoveryAddress(discoveryAddress);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setDiscoveryPort(discoveryPort);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setConnectionTTL(connectionTTL);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setCallTimeout(callTimeout);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setMaxConnections(maxConnections);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setMinLargeMessageSize(minLargeMessageSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setConsumerWindowSize(consumerWindowSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setConsumerMaxRate(consumerMaxRate);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setProducerWindowSize(producerWindowSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setProducerMaxRate(producerMaxRate);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setBlockOnAcknowledge(blockOnAcknowledge);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setBlockOnPersistentSend(blockOnPersistentSend);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setBlockOnNonPersistentSend(blockOnNonPersistentSend);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setAutoGroup(autoGroup);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setPreAcknowledge(preAcknowledge);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setAckBatchSize(ackBatchSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setDiscoveryInitialWaitTimeout(initialWaitTimeout);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setUseGlobalPools(useGlobalPools);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setThreadPoolMaxSize(threadPoolMaxSize);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setRetryInterval(retryInterval);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setReconnectAttempts(reconnectAttempts);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
- try
- {
- cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
- fail("Should throw exception");
- }
- catch (IllegalStateException e)
- {
- // OK
- }
-
- cf.getStaticConnectors();
- cf.getDiscoveryAddress();
- cf.getDiscoveryPort();
- cf.getDiscoveryRefreshTimeout();
- cf.getClientFailureCheckPeriod();
- cf.getConnectionTTL();
- cf.getCallTimeout();
- cf.getMaxConnections();
- cf.getMinLargeMessageSize();
- cf.getConsumerWindowSize();
- cf.getConsumerMaxRate();
- cf.getProducerWindowSize();
- cf.getProducerMaxRate();
- cf.isBlockOnAcknowledge();
- cf.isBlockOnPersistentSend();
- cf.isBlockOnNonPersistentSend();
- cf.isAutoGroup();
- cf.isPreAcknowledge();
- cf.getConnectionLoadBalancingPolicyClassName();
- cf.getAckBatchSize();
- cf.getDiscoveryInitialWaitTimeout();
- cf.isUseGlobalPools();
- cf.getScheduledThreadPoolMaxSize();
- cf.getThreadPoolMaxSize();
- cf.getRetryInterval();
- cf.getRetryIntervalMultiplier();
- cf.getReconnectAttempts();
- cf.isFailoverOnServerShutdown();
-
- }
-
- private void assertFactoryParams(ClientSessionFactory cf,
- List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors,
- String discoveryAddress,
- int discoveryPort,
- long discoveryRefreshTimeout,
- long clientFailureCheckPeriod,
- long connectionTTL,
- long callTimeout,
- int maxConnections,
- int minLargeMessageSize,
- int consumerWindowSize,
- int consumerMaxRate,
- int producerWindowSize,
- int producerMaxRate,
- boolean blockOnAcknowledge,
- boolean blockOnPersistentSend,
- boolean blockOnNonPersistentSend,
- boolean autoGroup,
- boolean preAcknowledge,
- String loadBalancingPolicyClassName,
- int ackBatchSize,
- long initialWaitTimeout,
- boolean useGlobalPools,
- int scheduledThreadPoolMaxSize,
- int threadPoolMaxSize,
- long retryInterval,
- double retryIntervalMultiplier,
- int reconnectAttempts,
- boolean failoverOnServerShutdown)
- {
- List<Pair<TransportConfiguration, TransportConfiguration>> cfStaticConnectors = cf.getStaticConnectors();
- if (staticConnectors == null)
- {
- assertNull(cfStaticConnectors);
- }
- else
- {
- assertEquals(staticConnectors.size(), cfStaticConnectors.size());
-
- for (int i = 0; i < staticConnectors.size(); i++)
- {
- assertEquals(staticConnectors.get(i), cfStaticConnectors.get(i));
- }
- }
- assertEquals(cf.getDiscoveryAddress(), discoveryAddress);
- assertEquals(cf.getDiscoveryPort(), discoveryPort);
- assertEquals(cf.getDiscoveryRefreshTimeout(), discoveryRefreshTimeout);
- assertEquals(cf.getClientFailureCheckPeriod(), clientFailureCheckPeriod);
- assertEquals(cf.getConnectionTTL(), connectionTTL);
- assertEquals(cf.getCallTimeout(), callTimeout);
- assertEquals(cf.getMaxConnections(), maxConnections);
- assertEquals(cf.getMinLargeMessageSize(), minLargeMessageSize);
- assertEquals(cf.getConsumerWindowSize(), consumerWindowSize);
- assertEquals(cf.getConsumerMaxRate(), consumerMaxRate);
- assertEquals(cf.getProducerWindowSize(), producerWindowSize);
- assertEquals(cf.getProducerMaxRate(), producerMaxRate);
- assertEquals(cf.isBlockOnAcknowledge(), blockOnAcknowledge);
- assertEquals(cf.isBlockOnPersistentSend(), blockOnPersistentSend);
- assertEquals(cf.isBlockOnNonPersistentSend(), blockOnNonPersistentSend);
- assertEquals(cf.isAutoGroup(), autoGroup);
- assertEquals(cf.isPreAcknowledge(), preAcknowledge);
- assertEquals(cf.getConnectionLoadBalancingPolicyClassName(), loadBalancingPolicyClassName);
- assertEquals(cf.getAckBatchSize(), ackBatchSize);
- assertEquals(cf.getDiscoveryInitialWaitTimeout(), initialWaitTimeout);
- assertEquals(cf.isUseGlobalPools(), useGlobalPools);
- assertEquals(cf.getScheduledThreadPoolMaxSize(), scheduledThreadPoolMaxSize);
- assertEquals(cf.getThreadPoolMaxSize(), threadPoolMaxSize);
- assertEquals(cf.getRetryInterval(), retryInterval);
- assertEquals(cf.getRetryIntervalMultiplier(), retryIntervalMultiplier);
- assertEquals(cf.getReconnectAttempts(), reconnectAttempts);
- assertEquals(cf.isFailoverOnServerShutdown(), failoverOnServerShutdown);
- }
-
- private void stopLiveAndBackup() throws Exception
- {
- if (liveService.isStarted())
- {
- liveService.stop();
- }
- if (backupService.isStarted())
- {
- backupService.stop();
- }
- }
-
- private void startLiveAndBackup() throws Exception
- {
- Map<String, Object> backupParams = new HashMap<String, Object>();
- Configuration backupConf = new ConfigurationImpl();
- backupConf.setSecurityEnabled(false);
- backupConf.setClustered(true);
- backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
- backupConf.getAcceptorConfigurations()
- .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
- backupParams));
- backupConf.setBackup(true);
- backupService = Messaging.newMessagingServer(backupConf, false);
- backupService.start();
-
- Configuration liveConf = new ConfigurationImpl();
- liveConf.setSecurityEnabled(false);
- liveTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory");
- liveConf.getAcceptorConfigurations()
- .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory"));
- Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
- backupTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
- backupParams);
- connectors.put(backupTC.getName(), backupTC);
- connectors.put(liveTC.getName(), liveTC);
- liveConf.setConnectorConfigurations(connectors);
- liveConf.setBackupConnectorName(backupTC.getName());
- liveConf.setClustered(true);
-
- List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
- connectorNames.add(new Pair<String, String>(liveTC.getName(), backupTC.getName()));
-
- final long broadcastPeriod = 250;
-
- final String bcGroupName = "bc1";
-
- final int localBindPort = 5432;
-
- BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
- null,
- localBindPort,
- groupAddress,
- groupPort,
- broadcastPeriod,
- connectorNames);
-
- List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<BroadcastGroupConfiguration>();
- bcConfigs1.add(bcConfig1);
- liveConf.setBroadcastGroupConfigurations(bcConfigs1);
-
- liveService = Messaging.newMessagingServer(liveConf, false);
- liveService.start();
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionSendAcknowledgementHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionSendAcknowledgementHandlerTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionSendAcknowledgementHandlerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,115 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.SendAcknowledgementHandler;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A SendAcknowledgementsTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- * Created 9 Feb 2009 13:29:19
- *
- *
- */
-public class ClientSessionSendAcknowledgementHandlerTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientSessionSendAcknowledgementHandlerTest.class);
-
- private MessagingServer server;
-
- private SimpleString address = new SimpleString("address");
-
- private SimpleString queueName = new SimpleString("queue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- if (server != null && server.isStarted())
- {
- server.stop();
- }
-
- super.tearDown();
- }
-
- public void testSendAcknowledgements() throws Exception
- {
- ClientSessionFactory csf = createInVMFactory();
-
- csf.setProducerWindowSize(1024);
-
- ClientSession session = csf.createSession(null, null, false, true, true, false, 1);
-
- session.createQueue(address, queueName, false);
-
- ClientProducer prod = session.createProducer(address);
-
- final int numMessages = 1000;
-
- final CountDownLatch latch = new CountDownLatch(numMessages);
-
- session.setSendAcknowledgementHandler(new SendAcknowledgementHandler()
- {
- public void sendAcknowledged(final Message message)
- {
- latch.countDown();
- }
- });
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage msg = session.createClientMessage(false);
-
- prod.send(msg);
- }
-
- session.close();
-
- boolean ok = latch.await(5000, TimeUnit.MILLISECONDS);
-
- assertTrue(ok);
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionStopStartTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionStopStartTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionStopStartTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,712 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.MessageHandler;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSessionStopStartTest extends ServiceTestBase
-{
- private static final Logger log = Logger.getLogger(ClientConsumerTest.class);
-
- private MessagingServer server;
-
- private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- server = createServer(false);
-
- server.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- server.stop();
-
- server = null;
-
- super.tearDown();
- }
-
- public void testStopStartConsumerSyncReceiveImmediate() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
-
- for (int i = 0; i < numMessages / 2; i++)
- {
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- session.stop();
- ClientMessage cm = consumer.receiveImmediate();
- assertNull(cm);
-
- session.start();
- for (int i = 0; i < numMessages / 2; i++)
- {
- cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
-
- session.close();
- }
-
- public void testStopStartConsumerSyncReceive() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
-
- for (int i = 0; i < numMessages / 2; i++)
- {
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- session.stop();
- long time = System.currentTimeMillis();
- ClientMessage cm = consumer.receive(1000);
- long taken = System.currentTimeMillis() - time;
- assertTrue(taken >= 1000);
- assertNull(cm);
-
- session.start();
- for (int i = 0; i < numMessages / 2; i++)
- {
- cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
-
- session.close();
- }
-
- public void testStopStartConsumerAsyncSyncStoppedByHandler() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
- final CountDownLatch latch = new CountDownLatch(10);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- boolean failed;
-
- boolean started = true;
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
-
- latch.countDown();
-
- if (latch.getCount() == 0)
- {
-
- message.acknowledge();
- session.stop();
- started = false;
- }
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler();
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- consumer.setMessageHandler(null);
- session.start();
- for (int i = 0; i < 90; i++)
- {
- ClientMessage msg = consumer.receive(1000);
- if (msg == null)
- {
- System.out.println("ClientConsumerTest.testStopConsumer");
- }
- assertNotNull("message " + i, msg);
- msg.acknowledge();
- }
-
- assertNull(consumer.receiveImmediate());
-
- session.close();
- }
-
- public void testStopStartConsumerAsyncSync() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
- final CountDownLatch latch = new CountDownLatch(10);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- boolean failed;
-
- boolean started = true;
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
-
- latch.countDown();
-
- if (latch.getCount() == 0)
- {
-
- message.acknowledge();
- started = false;
- consumer.setMessageHandler(null);
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler();
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- try
- {
- session.stop();
- }
- catch (Exception e)
- {
- log.warn(e.getMessage(), e);
- throw e;
- }
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- consumer.setMessageHandler(null);
- session.start();
- for (int i = 0; i < 90; i++)
- {
- ClientMessage msg = consumer.receive(1000);
- if (msg == null)
- {
- System.out.println("ClientConsumerTest.testStopConsumer");
- }
- assertNotNull("message " + i, msg);
- msg.acknowledge();
- }
-
- assertNull(consumer.receiveImmediate());
-
- session.close();
- }
-
- public void testStopStartConsumerAsyncASyncStoppeeByHandler() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
- CountDownLatch latch = new CountDownLatch(10);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- int messageReceived = 0;
-
- boolean failed;
-
- boolean started = true;
-
- private final CountDownLatch latch;
-
- private boolean stop = true;
-
- public MyHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public MyHandler(CountDownLatch latch, boolean stop)
- {
- this(latch);
- this.stop = stop;
- }
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
- messageReceived++;
- latch.countDown();
-
- if (stop && latch.getCount() == 0)
- {
-
- message.acknowledge();
- session.stop();
- started = false;
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler(latch);
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- latch = new CountDownLatch(90);
- handler = new MyHandler(latch, false);
- consumer.setMessageHandler(handler);
- session.start();
- assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
- assertNull(consumer.getLastException());
- session.close();
- }
-
- public void testStopStartConsumerAsyncASync() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
- CountDownLatch latch = new CountDownLatch(10);
-
- // Message should be in consumer
-
- class MyHandler implements MessageHandler
- {
- int messageReceived = 0;
-
- boolean failed;
-
- boolean started = true;
-
- private final CountDownLatch latch;
-
- private boolean stop = true;
-
- public MyHandler(CountDownLatch latch)
- {
- this.latch = latch;
- }
-
- public MyHandler(CountDownLatch latch, boolean stop)
- {
- this(latch);
- this.stop = stop;
- }
-
- public void onMessage(final ClientMessage message)
- {
-
- try
- {
- if (!started)
- {
- failed = true;
- }
- messageReceived++;
- latch.countDown();
-
- if (stop && latch.getCount() == 0)
- {
-
- message.acknowledge();
- consumer.setMessageHandler(null);
- started = false;
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
-
- MyHandler handler = new MyHandler(latch);
-
- consumer.setMessageHandler(handler);
-
- latch.await();
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
-
- // Make sure no exceptions were thrown from onMessage
- assertNull(consumer.getLastException());
- latch = new CountDownLatch(90);
- handler = new MyHandler(latch, false);
- consumer.setMessageHandler(handler);
- session.start();
- assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
-
- Thread.sleep(100);
-
- assertFalse(handler.failed);
- assertNull(consumer.getLastException());
- session.close();
- }
-
- private int getMessageEncodeSize(final SimpleString address) throws Exception
- {
- ClientSessionFactory cf = createInVMFactory();
- ClientSession session = cf.createSession(false, true, true);
- ClientMessage message = session.createClientMessage(false);
- // we need to set the destination so we can calculate the encodesize correctly
- message.setDestination(address);
- int encodeSize = message.getEncodeSize();
- session.close();
- cf.close();
- return encodeSize;
- }
-
- public void testStopStartMultipleConsumers() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
- sf.setConsumerWindowSize(this.getMessageEncodeSize(QUEUE) * 33);
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- ClientConsumer consumer = session.createConsumer(QUEUE);
- ClientConsumer consumer2 = session.createConsumer(QUEUE);
- ClientConsumer consumer3 = session.createConsumer(QUEUE);
-
- session.start();
-
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- cm = consumer2.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- cm = consumer3.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
-
- session.stop();
- cm = consumer.receiveImmediate();
- assertNull(cm);
- cm = consumer2.receiveImmediate();
- assertNull(cm);
- cm = consumer3.receiveImmediate();
- assertNull(cm);
-
- session.start();
- cm = consumer.receive(5000);
- assertNotNull(cm);
- cm = consumer2.receive(5000);
- assertNotNull(cm);
- cm = consumer3.receive(5000);
- assertNotNull(cm);
- session.close();
- }
-
-
- public void testStopStartAlreadyStartedSession() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
-
- for (int i = 0; i < numMessages / 2; i++)
- {
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
-
- session.start();
- for (int i = 0; i < numMessages / 2; i++)
- {
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
-
- session.close();
- }
-
- public void testStopAlreadyStoppedSession() throws Exception
- {
- ClientSessionFactory sf = createInVMFactory();
-
- final ClientSession session = sf.createSession(false, true, true);
-
- session.createQueue(QUEUE, QUEUE, null, false);
-
- ClientProducer producer = session.createProducer(QUEUE);
-
- final int numMessages = 100;
-
- for (int i = 0; i < numMessages; i++)
- {
- ClientMessage message = createTextMessage("m" + i, session);
- message.putIntProperty(new SimpleString("i"), i);
- producer.send(message);
- }
-
- final ClientConsumer consumer = session.createConsumer(QUEUE);
-
- session.start();
-
-
- for (int i = 0; i < numMessages / 2; i++)
- {
- ClientMessage cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
- session.stop();
- ClientMessage cm = consumer.receiveImmediate();
- assertNull(cm);
-
- session.stop();
- cm = consumer.receiveImmediate();
- assertNull(cm);
-
- session.start();
- for (int i = 0; i < numMessages / 2; i++)
- {
- cm = consumer.receive(5000);
- assertNotNull(cm);
- cm.acknowledge();
- }
-
- session.close();
- }
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionTest.java 2009-06-16 23:58:22 UTC (rev 7373)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -1,627 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.jboss.messaging.tests.integration.client;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.FailureListener;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
-import org.jboss.messaging.core.server.MessagingServer;
-import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.utils.SimpleString;
-
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * This test covers the API for ClientSession altho XA tests are tested seperately.
- *
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class ClientSessionTest extends ServiceTestBase
-{
- private String queueName = "ClientSessionTestQ";
-
- public void testFailureListener() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- final CountDownLatch latch = new CountDownLatch(1);
- clientSession.addFailureListener(new FailureListener()
- {
- public boolean connectionFailed(MessagingException me)
- {
- latch.countDown();
- return false;
- }
- });
-
- server.stop();
- assertTrue(latch.await(5, TimeUnit.SECONDS));
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testFailureListenerRemoved() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- class MyFailureListener implements FailureListener
- {
- boolean called = false;
-
- public boolean connectionFailed(MessagingException me)
- {
- called = true;
- return false;
- }
- }
-
- MyFailureListener listener = new MyFailureListener();
- clientSession.addFailureListener(listener);
-
- assertTrue(clientSession.removeFailureListener(listener));
- server.stop();
- assertFalse(listener.called);
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testBindingQuery() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- clientSession.createQueue("a1", "q1", false);
- clientSession.createQueue("a1", "q2", false);
- clientSession.createQueue("a2", "q3", false);
- clientSession.createQueue("a2", "q4", false);
- clientSession.createQueue("a2", "q5", false);
- SessionBindingQueryResponseMessage resp = clientSession.bindingQuery(new SimpleString("a"));
- List<SimpleString> queues = resp.getQueueNames();
- assertTrue(queues.isEmpty());
- resp = clientSession.bindingQuery(new SimpleString("a1"));
- queues = resp.getQueueNames();
- assertEquals(queues.size(), 2);
- assertTrue(queues.contains(new SimpleString("q1")));
- assertTrue(queues.contains(new SimpleString("q2")));
- resp = clientSession.bindingQuery(new SimpleString("a2"));
- queues = resp.getQueueNames();
- assertEquals(queues.size(), 3);
- assertTrue(queues.contains(new SimpleString("q3")));
- assertTrue(queues.contains(new SimpleString("q4")));
- assertTrue(queues.contains(new SimpleString("q5")));
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testQueueQuery() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- clientSession.createQueue("a1", queueName, false);
- clientSession.createConsumer(queueName);
- clientSession.createConsumer(queueName);
- ClientProducer cp = clientSession.createProducer("a1");
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
- assertEquals(new SimpleString("a1"), resp.getAddress());
- assertEquals(2, resp.getConsumerCount());
- assertEquals(2, resp.getMessageCount());
- assertEquals(null, resp.getFilterString());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testQueueQueryWithFilter() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- clientSession.createQueue("a1", queueName, "foo=bar", false);
- clientSession.createConsumer(queueName);
- clientSession.createConsumer(queueName);
- SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
- assertEquals(new SimpleString("a1"), resp.getAddress());
- assertEquals(2, resp.getConsumerCount());
- assertEquals(0, resp.getMessageCount());
- assertEquals(new SimpleString("foo=bar"), resp.getFilterString());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testQueueQueryNoQ() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
- assertFalse(resp.isExists());
- assertEquals(null, resp.getAddress());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testClose() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientProducer p = clientSession.createProducer();
- ClientProducer p1 = clientSession.createProducer(queueName);
- ClientConsumer c = clientSession.createConsumer(queueName);
- ClientConsumer c1 = clientSession.createConsumer(queueName);
- clientSession.close();
- assertTrue(clientSession.isClosed());
- assertTrue(p.isClosed());
- assertTrue(p1.isClosed());
- assertTrue(c.isClosed());
- assertTrue(c1.isClosed());
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCreateClientMessageNonDurable() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- ClientMessage clientMessage = clientSession.createClientMessage(false);
- assertFalse(clientMessage.isDurable());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCreateClientMessageDurable() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- ClientMessage clientMessage = clientSession.createClientMessage(true);
- assertTrue(clientMessage.isDurable());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCreateClientMessageType() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- ClientMessage clientMessage = clientSession.createClientMessage((byte) 99, false);
- assertEquals((byte) 99, clientMessage.getType());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCreateClientMessageOverrides() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- ClientMessage clientMessage = clientSession.createClientMessage((byte) 88, false, 100l, 300l, (byte) 33);
- assertEquals((byte) 88, clientMessage.getType());
- assertEquals(100l, clientMessage.getExpiration());
- assertEquals(300l, clientMessage.getTimestamp());
- assertEquals((byte) 33, clientMessage.getPriority());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testGetVersion() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSession clientSession = cf.createSession(false, true, true);
- assertEquals(server.getVersion().getIncrementingVersion(), clientSession.getVersion());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testStart() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- clientSession.start();
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testStop() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, true);
- clientSession.createQueue(queueName, queueName, false);
- clientSession.start();
- clientSession.stop();
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCommitWithSend() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, false, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientProducer cp = clientSession.createProducer(queueName);
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
- assertEquals(0, q.getMessageCount());
- clientSession.commit();
- assertEquals(10, q.getMessageCount());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRollbackWithSend() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, false, true);
- clientSession.createQueue(queueName, queueName, false);
- ClientProducer cp = clientSession.createProducer(queueName);
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
- assertEquals(0, q.getMessageCount());
- clientSession.rollback();
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- clientSession.commit();
- assertEquals(2, q.getMessageCount());
- clientSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testCommitWithReceive() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnPersistentSend(true);
- ClientSessionImpl sendSession = (ClientSessionImpl) cf.createSession(false, true, true);
- ClientProducer cp = sendSession.createProducer(queueName);
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, false);
- clientSession.createQueue(queueName, queueName, false);
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
- assertEquals(10, q.getMessageCount());
- ClientConsumer cc = clientSession.createConsumer(queueName);
- clientSession.start();
- ClientMessage m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- clientSession.commit();
- assertEquals(0, q.getMessageCount());
- clientSession.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-
- public void testRollbackWithReceive() throws Exception
- {
- MessagingServer server = createServer(false);
- try
- {
- server.start();
- ClientSessionFactory cf = createInVMFactory();
- cf.setBlockOnNonPersistentSend(true);
- cf.setBlockOnPersistentSend(true);
- ClientSessionImpl sendSession = (ClientSessionImpl) cf.createSession(false, true, true);
- ClientProducer cp = sendSession.createProducer(queueName);
- ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, false);
- clientSession.createQueue(queueName, queueName, false);
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- cp.send(clientSession.createClientMessage(false));
- Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
- assertEquals(10, q.getMessageCount());
- ClientConsumer cc = clientSession.createConsumer(queueName);
- clientSession.start();
- ClientMessage m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- m = cc.receive(5000);
- assertNotNull(m);
- m.acknowledge();
- clientSession.rollback();
- assertEquals(10, q.getMessageCount());
- clientSession.close();
- sendSession.close();
- }
- finally
- {
- if (server.isStarted())
- {
- server.stop();
- }
- }
- }
-}
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/CommitRollbackTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientCommitRollbackTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/CommitRollbackTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/CommitRollbackTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,332 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class CommitRollbackTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString addressB = new SimpleString("addressB");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+
+ public void testReceiveWithCommit() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession session = cf.createSession(false, false, false);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = cc.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ session.commit();
+ assertEquals(0, q.getDeliveringCount());
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveWithRollback() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession session = cf.createSession(false, false, false);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = cc.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ session.rollback();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = cc.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ assertEquals(numMessages, q.getDeliveringCount());
+ session.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveWithRollbackMultipleConsumersDifferentQueues() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession session = cf.createSession(false, false, false);
+ sendSession.createQueue(addressA, queueA, false);
+ sendSession.createQueue(addressB, queueB, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientProducer cp2 = sendSession.createProducer(addressB);
+ ClientConsumer cc = session.createConsumer(queueA);
+ ClientConsumer cc2 = session.createConsumer(queueB);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ cp2.send(sendSession.createClientMessage(false));
+ }
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = cc.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ cm = cc2.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ Queue q2 = (Queue) server.getPostOffice().getBinding(queueB).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ cc.close();
+ cc2.close();
+ session.rollback();
+ assertEquals(0, q2.getDeliveringCount());
+ assertEquals(numMessages, q.getMessageCount());
+ assertEquals(0, q2.getDeliveringCount());
+ assertEquals(numMessages, q.getMessageCount());
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testAsyncConsumerCommit() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnAcknowledge(true);
+ cf.setAckBatchSize(0);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ final ClientSession session = cf.createSession(false, true, false);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ final CountDownLatch latch = new CountDownLatch(numMessages);
+ session.start();
+ cc.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ try
+ {
+ session.close();
+ }
+ catch (MessagingException e1)
+ {
+ e1.printStackTrace();
+ }
+ }
+ latch.countDown();
+ }
+ });
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ Queue q = (Queue)server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ assertEquals(numMessages, q.getMessageCount());
+ session.commit();
+ assertEquals(0, q.getDeliveringCount());
+ assertEquals(0, q.getMessageCount());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testAsyncConsumerRollback() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnAcknowledge(true);
+ cf.setAckBatchSize(0);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ final ClientSession session = cf.createSession(false, true, false);
+ sendSession.createQueue(addressA, queueA, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientConsumer cc = session.createConsumer(queueA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(sendSession.createClientMessage(false));
+ }
+ CountDownLatch latch = new CountDownLatch(numMessages);
+ session.start();
+ cc.setMessageHandler(new ackHandler(session, latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(numMessages, q.getDeliveringCount());
+ assertEquals(numMessages, q.getMessageCount());
+ session.stop();
+ session.rollback();
+ assertEquals(0, q.getDeliveringCount());
+ assertEquals(numMessages, q.getMessageCount());
+ latch = new CountDownLatch(numMessages);
+ cc.setMessageHandler(new ackHandler(session, latch));
+ session.start();
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ private static class ackHandler implements MessageHandler
+ {
+ private final ClientSession session;
+
+ private final CountDownLatch latch;
+
+ public ackHandler(ClientSession session, CountDownLatch latch)
+ {
+ this.session = session;
+ this.latch = latch;
+ }
+
+ public void onMessage(ClientMessage message)
+ {
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ try
+ {
+ session.close();
+ }
+ catch (MessagingException e1)
+ {
+ e1.printStackTrace();
+ }
+ }
+ latch.countDown();
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/CommitRollbackTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerCloseTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerCloseTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerCloseTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,146 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ */
+public class ConsumerCloseTest extends ServiceTestBase
+{
+
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private MessagingServer server;
+ private ClientSession session;
+ private SimpleString queue;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testCanNotUseAClosedConsumer() throws Exception
+ {
+ final ClientConsumer consumer = session.createConsumer(queue);
+
+ consumer.close();
+
+ assertTrue(consumer.isClosed());
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ consumer.receive();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ consumer.receiveImmediate();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ consumer.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ }
+ });
+ }
+ });
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ Configuration config = new ConfigurationImpl();
+ config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
+ config.setSecurityEnabled(false);
+ server = Messaging.newMessagingServer(config, false);
+ server.start();
+
+ SimpleString address = randomSimpleString();
+ queue = randomSimpleString();
+
+ sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ session = sf.createSession(false, true, true);
+ session.createQueue(address, queue, false);
+
+ }
+
+ private ClientSessionFactory sf;
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ session.deleteQueue(queue);
+
+ session.close();
+
+ sf.close();
+
+ server.stop();
+
+ super.tearDown();
+ }
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerCloseTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerRoundRobinTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerRoundRobinTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerRoundRobinTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerRoundRobinTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class ConsumerRoundRobinTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public void testConsumersRoundRobinCorrectly() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+
+ ClientConsumer[] consumers = new ClientConsumer[5];
+ // start the session before we create the consumers, this is because start is non blocking and we have to
+ // gaurantee
+ // all consumers have been started before sending messages
+ session.start();
+ consumers[0] = session.createConsumer(queueA);
+ consumers[1] = session.createConsumer(queueA);
+ consumers[2] = session.createConsumer(queueA);
+ consumers[3] = session.createConsumer(queueA);
+ consumers[4] = session.createConsumer(queueA);
+
+ //ClientSession sendSession = cf.createSession(false, true, true);
+ ClientProducer cp = session.createProducer(addressA);
+ int numMessage = 100;
+ for (int i = 0; i < numMessage; i++)
+ {
+ ClientMessage cm = session.createClientMessage(false);
+ cm.getBody().writeInt(i);
+ cp.send(cm);
+ }
+ int currMessage = 0;
+ for (int i = 0; i < numMessage / 5; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ ClientMessage cm = consumers[j].receive(5000);
+ assertNotNull(cm);
+ assertEquals(currMessage++, cm.getBody().readInt());
+ }
+ }
+ //sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerRoundRobinTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,225 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ */
+public class ConsumerTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(ConsumerTest.class);
+
+ private MessagingServer server;
+
+ private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ server = null;
+
+ super.tearDown();
+ }
+
+
+
+ public void testConsumerAckImmediateAutoCommitTrue() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+ }
+
+ public void testConsumerAckImmediateAutoCommitFalse() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, false, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+ }
+
+ public void testConsumerAckImmediateAckIgnored() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ if (i < 50)
+ {
+ message2.acknowledge();
+ }
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+ }
+
+ public void testConsumerAckImmediateCloseSession() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ if (i < 50)
+ {
+ message2.acknowledge();
+ }
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0,
+ ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/DeliveryOrderTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientDeliveryOrderTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/DeliveryOrderTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/DeliveryOrderTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,224 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class DeliveryOrderTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+
+
+ public void testSendDeliveryOrderOnCommit() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, false, true);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ int numMessages = 1000;
+ sendSession.createQueue(addressA, queueA, false);
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = sendSession.createClientMessage(false);
+ cm.getBody().writeInt(i);
+ cp.send(cm);
+ if (i % 10 == 0)
+ {
+ sendSession.commit();
+ }
+ sendSession.commit();
+ }
+ ClientConsumer c = sendSession.createConsumer(queueA);
+ sendSession.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = c.receive(5000);
+ assertNotNull(cm);
+ assertEquals(i, cm.getBody().readInt());
+ }
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveDeliveryOrderOnRollback() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, false);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ int numMessages = 1000;
+ sendSession.createQueue(addressA, queueA, false);
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = sendSession.createClientMessage(false);
+ cm.getBody().writeInt(i);
+ cp.send(cm);
+ }
+ ClientConsumer c = sendSession.createConsumer(queueA);
+ sendSession.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = c.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ assertEquals(i, cm.getBody().readInt());
+ }
+ sendSession.rollback();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage cm = c.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ assertEquals(i, cm.getBody().readInt());
+ }
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testMultipleConsumersMessageOrder() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientSession recSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ int numReceivers = 100;
+ AtomicInteger count = new AtomicInteger(0);
+ int numMessage = 10000;
+ ClientConsumer[] clientConsumers = new ClientConsumer[numReceivers];
+ Receiver[] receivers = new Receiver[numReceivers];
+ CountDownLatch latch = new CountDownLatch(numMessage);
+ for (int i = 0; i < numReceivers; i++)
+ {
+ clientConsumers[i] = recSession.createConsumer(queueA);
+ receivers[i] = new Receiver(latch);
+ clientConsumers[i].setMessageHandler(receivers[i]);
+ }
+ recSession.start();
+ ClientProducer clientProducer = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessage; i++)
+ {
+ ClientMessage cm = sendSession.createClientMessage(false);
+ cm.getBody().writeInt(count.getAndIncrement());
+ clientProducer.send(cm);
+ }
+ assertTrue(latch.await(10, TimeUnit.SECONDS));
+ for (Receiver receiver : receivers)
+ {
+ assertFalse("" + receiver.lastMessage, receiver.failed);
+ }
+ sendSession.close();
+ recSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+
+
+
+
+ class Receiver implements MessageHandler
+ {
+ final CountDownLatch latch;
+
+ int lastMessage = -1;
+
+ boolean failed = false;
+
+ public Receiver(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void onMessage(ClientMessage message)
+ {
+ int i = message.getBody().readInt();
+ try
+ {
+ message.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ e.printStackTrace();
+ }
+ if (i <= lastMessage)
+ {
+ failed = true;
+ }
+ lastMessage = i;
+ latch.countDown();
+ }
+
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/DeliveryOrderTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageCounterTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageCounterTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageCounterTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageCounterTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ */
+public class MessageCounterTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(MessageCounterTest.class);
+
+ private MessagingServer server;
+
+ private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ server = null;
+
+ super.tearDown();
+ }
+
+ public void testMessageCounter() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ sf.setBlockOnNonPersistentSend(true);
+ sf.setBlockOnPersistentSend(true);
+
+ ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ session.commit();
+ session.start();
+
+ assertEquals(100, getMessageCount(server.getPostOffice(), QUEUE.toString()));
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, false);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = consumer.receive(1000);
+
+ assertNotNull(message);
+ message.acknowledge();
+
+ session.commit();
+
+ assertEquals("m" + i, message.getBody().readString());
+ }
+
+ session.close();
+
+ assertEquals(0, getMessageCount(server.getPostOffice(), QUEUE.toString()));
+
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageCounterTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageHandlerTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientMessageHandlerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageHandlerTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageHandlerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,412 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class MessageHandlerTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(MessageHandlerTest.class);
+
+ private MessagingServer server;
+
+ private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ server = null;
+
+ super.tearDown();
+ }
+
+ public void testSetMessageHandlerWithMessagesPending() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
+
+ session.start();
+
+ Thread.sleep(100);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ public void onMessage(final ClientMessage message)
+ {
+ try
+ {
+ Thread.sleep(10);
+
+ message.acknowledge();
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ consumer.setMessageHandler(new MyHandler());
+
+ // Let a few messages get processed
+ Thread.sleep(100);
+
+ // Now set null
+
+ consumer.setMessageHandler(null);
+
+ // Give a bit of time for some queued executors to run
+
+ Thread.sleep(500);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+
+ session.close();
+ }
+
+
+ public void testSetResetMessageHandler() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+
+ session.start();
+
+ CountDownLatch latch = new CountDownLatch(50);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ int messageReceived = 0;
+
+ boolean failed;
+
+ boolean started = true;
+
+ private final CountDownLatch latch;
+
+ public MyHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+ messageReceived++;
+ latch.countDown();
+
+ if (latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ started = false;
+ consumer.setMessageHandler(null);
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler(latch);
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ latch = new CountDownLatch(50);
+ handler = new MyHandler(latch);
+ consumer.setMessageHandler(handler);
+ session.start();
+ assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+ assertNull(consumer.getLastException());
+ session.close();
+ }
+
+ public void testSetUnsetMessageHandler() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+
+ session.start();
+
+ CountDownLatch latch = new CountDownLatch(50);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ int messageReceived = 0;
+
+ boolean failed;
+
+ boolean started = true;
+
+ private final CountDownLatch latch;
+
+ public MyHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+ messageReceived++;
+ latch.countDown();
+
+ if (latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ started = false;
+ consumer.setMessageHandler(null);
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler(latch);
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ consumer.setMessageHandler(null);
+ ClientMessage cm = consumer.receiveImmediate();
+ assertNotNull(cm);
+
+ session.close();
+ }
+
+ public void testSetUnsetResetMessageHandler() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+
+ session.start();
+
+ CountDownLatch latch = new CountDownLatch(50);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ int messageReceived = 0;
+
+ boolean failed;
+
+ boolean started = true;
+
+ private final CountDownLatch latch;
+
+ public MyHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+ messageReceived++;
+ latch.countDown();
+
+ if (latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ started = false;
+ consumer.setMessageHandler(null);
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler(latch);
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ consumer.setMessageHandler(null);
+ ClientMessage cm = consumer.receiveImmediate();
+ assertNotNull(cm);
+ latch = new CountDownLatch(49);
+ handler = new MyHandler(latch);
+ consumer.setMessageHandler(handler);
+ session.start();
+ assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+ assertNull(consumer.getLastException());
+ session.close();
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/MessageHandlerTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/ProducerCloseTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientProducerCloseTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ProducerCloseTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ProducerCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+
+/**
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ */
+public class ProducerCloseTest extends ServiceTestBase
+{
+
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private MessagingServer server;
+
+ private ClientSession session;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testCanNotUseAClosedProducer() throws Exception
+ {
+ final ClientProducer producer = session.createProducer(randomSimpleString());
+
+ assertFalse(producer.isClosed());
+
+ producer.close();
+
+ assertTrue(producer.isClosed());
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ producer.send(session.createClientMessage(false));
+ }
+ });
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ Configuration config = new ConfigurationImpl();
+ config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
+ config.setSecurityEnabled(false);
+ server = Messaging.newMessagingServer(config, false);
+ server.start();
+
+ sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ session = sf.createSession(false, true, true);
+ }
+
+ private ClientSessionFactory sf;
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ session.close();
+
+ sf.close();
+
+ server.stop();
+
+ super.tearDown();
+ }
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/ProducerCloseTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/QueueBrowserTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientQueueBrowserTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/QueueBrowserTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/QueueBrowserTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,358 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ */
+public class QueueBrowserTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(QueueBrowserTest.class);
+
+ private MessagingServer server;
+
+ private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ server = null;
+
+ super.tearDown();
+ }
+
+ private ClientSessionFactory sf;
+
+ public void testSimpleConsumerBrowser() throws Exception
+ {
+ sf = new ClientSessionFactoryImpl(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory"));
+
+ sf.setBlockOnNonPersistentSend(true);
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ consumer.close();
+
+ consumer = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ consumer.close();
+
+ session.close();
+
+ }
+
+ public void testConsumerBrowserWithSelector() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("x"), i);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("x >= 50"), true);
+
+ for (int i = 50; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ consumer.close();
+
+ consumer = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ consumer.close();
+
+ session.close();
+
+ }
+
+ public void testConsumerBrowserWithStringSelector() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ if (i % 2 == 0)
+ {
+ message.putStringProperty(new SimpleString("color"), new SimpleString("RED"));
+ }
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("color = 'RED'"), true);
+
+ for (int i = 0; i < numMessages; i += 2)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ session.close();
+
+ }
+
+ public void testConsumerMultipleBrowser() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
+ ClientConsumer consumer2 = session.createConsumer(QUEUE, null, true);
+ ClientConsumer consumer3 = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ message2 = consumer2.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ message2 = consumer3.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ session.close();
+
+ }
+
+ public void testConsumerMultipleBrowserWithSelector() throws Exception
+ {
+
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("x"), i);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, new SimpleString("x < 50"), true);
+ ClientConsumer consumer2 = session.createConsumer(QUEUE, new SimpleString("x >= 50"), true);
+ ClientConsumer consumer3 = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < 50; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ for (int i = 50; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer2.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer3.receive(1000);
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+
+ session.close();
+
+ }
+
+ public void testConsumerBrowserMessages() throws Exception
+ {
+ testConsumerBrowserMessagesArentAcked(false);
+ }
+
+ public void testConsumerBrowserMessagesPreACK() throws Exception
+ {
+ testConsumerBrowserMessagesArentAcked(false);
+ }
+
+ private void testConsumerBrowserMessagesArentAcked(boolean preACK) throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(null, null, false, true, true, preACK, 0);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(100, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+ }
+
+ public void testConsumerBrowserMessageAckDoesNothing() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE, null, true);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(1000);
+
+ message2.acknowledge();
+
+ assertEquals("m" + i, message2.getBody().readString());
+ }
+ // assert that all the messages are there and none have been acked
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(100, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+
+ session.close();
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/QueueBrowserTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/ReceiveTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientReceiveTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ReceiveTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ReceiveTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,205 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class ReceiveTest extends ServiceTestBase
+{
+ SimpleString addressA = new SimpleString("addressA");
+
+ SimpleString queueA = new SimpleString("queueA");
+
+ public void testBasicReceive() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientConsumer cc = session.createConsumer(queueA);
+ session.start();
+ cp.send(sendSession.createClientMessage(false));
+ assertNotNull(cc.receive());
+ session.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveTimesoutCorrectly() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientConsumer cc = session.createConsumer(queueA);
+ session.start();
+ long time = System.currentTimeMillis();
+ cc.receive(1000);
+ assertTrue(System.currentTimeMillis() - time >= 1000);
+ session.close();
+
+
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveOnClosedException() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientConsumer cc = session.createConsumer(queueA);
+ session.start();
+ session.close();
+ try
+ {
+ cc.receive();
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(MessagingException.OBJECT_CLOSED, e.getCode());
+ }
+ session.close();
+
+
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveThrowsExceptionWhenHandlerSet() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientConsumer cc = session.createConsumer(queueA);
+ session.start();
+ cc.setMessageHandler(new MessageHandler()
+ {
+ public void onMessage(ClientMessage message)
+ {
+ }
+ });
+ try
+ {
+ cc.receive();
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(MessagingException.ILLEGAL_STATE, e.getCode());
+ }
+ session.close();
+
+
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testReceiveImmediate() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ //forces perfect round robin
+ cf.setConsumerWindowSize(1);
+ ClientSession sendSession = cf.createSession(false, true, true);
+ ClientProducer cp = sendSession.createProducer(addressA);
+ ClientSession session = cf.createSession(false, true, true);
+ session.createQueue(addressA, queueA, false);
+ ClientConsumer cc = session.createConsumer(queueA);
+ ClientConsumer cc2 = session.createConsumer(queueA);
+ session.start();
+ cp.send(sendSession.createClientMessage(false));
+ cp.send(sendSession.createClientMessage(false));
+ cp.send(sendSession.createClientMessage(false));
+ //at this point we know that the first consumer has a messge in ites buffer
+ assertNotNull(cc2.receive(5000));
+ assertNotNull(cc2.receive(5000));
+ assertNotNull(cc.receiveImmediate());
+ session.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/ReceiveTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/RequestorTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRequestorTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/RequestorTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/RequestorTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,275 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientRequestor;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.client.impl.ClientMessageImpl;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * A ClientRequestorTest
+ *
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
+ */
+public class RequestorTest extends UnitTestCase
+{
+
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private MessagingServer service;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testRequest() throws Exception
+ {
+ final SimpleString key = randomSimpleString();
+ long value = randomLong();
+ SimpleString requestAddress = randomSimpleString();
+ SimpleString requestQueue = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.start();
+
+ session.createTemporaryQueue(requestAddress, requestQueue);
+
+ ClientConsumer requestConsumer = session.createConsumer(requestQueue);
+ requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
+
+ ClientRequestor requestor = new ClientRequestor(session, requestAddress);
+ ClientMessage request = session.createClientMessage(false);
+ request.putLongProperty(key, value);
+
+ ClientMessage reply = requestor.request(request, 500);
+ assertNotNull("reply was not received", reply);
+ assertEquals(value, reply.getProperty(key));
+
+ session.close();
+ }
+
+ public void testTwoRequests() throws Exception
+ {
+ final SimpleString key = randomSimpleString();
+ long value = randomLong();
+ SimpleString requestAddress = randomSimpleString();
+ SimpleString requestQueue = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.start();
+
+ session.createTemporaryQueue(requestAddress, requestQueue);
+
+ ClientConsumer requestConsumer = session.createConsumer(requestQueue);
+ requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
+
+ ClientRequestor requestor = new ClientRequestor(session, requestAddress);
+ ClientMessage request = session.createClientMessage(false);
+ request.putLongProperty(key, value);
+
+ ClientMessage reply = requestor.request(request, 500);
+ assertNotNull("reply was not received", reply);
+ assertEquals(value, reply.getProperty(key));
+
+ request = session.createClientMessage(false);
+ request.putLongProperty(key, value + 1);
+
+ reply = requestor.request(request, 500);
+ assertNotNull("reply was not received", reply);
+ assertEquals(value + 1, reply.getProperty(key));
+
+ session.close();
+ }
+
+ public void testRequestWithRequestConsumerWhichDoesNotReply() throws Exception
+ {
+ SimpleString requestAddress = randomSimpleString();
+ SimpleString requestQueue = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.start();
+
+ session.createTemporaryQueue(requestAddress, requestQueue);
+
+ ClientConsumer requestConsumer = session.createConsumer(requestQueue);
+ requestConsumer.setMessageHandler(new MessageHandler()
+ {
+ // return a message with the negative request's value
+ public void onMessage(ClientMessage request)
+ {
+ // do nothing -> no reply
+ }
+ });
+
+ ClientRequestor requestor = new ClientRequestor(session, requestAddress);
+ ClientMessage request = session.createClientMessage(false);
+
+ ClientMessage reply = requestor.request(request, 500);
+ assertNull(reply);
+
+ session.close();
+ }
+
+ public void testClientRequestorConstructorWithClosedSession() throws Exception
+ {
+ final SimpleString requestAddress = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.close();
+
+ expectMessagingException("ClientRequestor's session must not be closed", MessagingException.OBJECT_CLOSED, new MessagingAction(){
+ public void run() throws Exception
+ {
+ new ClientRequestor(session, requestAddress);
+ }
+ });
+ }
+
+ public void testClose() throws Exception
+ {
+ final SimpleString key = randomSimpleString();
+ long value = randomLong();
+ SimpleString requestAddress = randomSimpleString();
+ SimpleString requestQueue = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.start();
+
+ session.createTemporaryQueue(requestAddress, requestQueue);
+
+ ClientConsumer requestConsumer = session.createConsumer(requestQueue);
+ requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
+
+ final ClientRequestor requestor = new ClientRequestor(session, requestAddress);
+ ClientMessage request = session.createClientMessage(false);
+ request.putLongProperty(key, value);
+
+ ClientMessage reply = requestor.request(request, 500);
+ assertNotNull("reply was not received", reply);
+ assertEquals(value, reply.getProperty(key));
+
+ request = session.createClientMessage(false);
+ request.putLongProperty(key, value + 1);
+
+ requestor.close();
+
+ expectMessagingException("can not send a request on a closed ClientRequestor", MessagingException.OBJECT_CLOSED, new MessagingAction(){
+
+ public void run() throws Exception
+ {
+ requestor.request(session.createClientMessage(false), 500);
+ }
+ });
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ Configuration conf = new ConfigurationImpl();
+ conf.setSecurityEnabled(false);
+ conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
+ service = Messaging.newMessagingServer(conf, false);
+ service.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ service.stop();
+
+ super.tearDown();
+ }
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+ private final class SimpleMessageHandler implements MessageHandler
+ {
+ private final SimpleString key;
+
+ private final ClientSession session;
+
+ private SimpleMessageHandler(SimpleString key, ClientSession session)
+ {
+ this.key = key;
+ this.session = session;
+ }
+
+ public void onMessage(ClientMessage request)
+ {
+ try
+ {
+ ClientMessage reply = session.createClientMessage(false);
+ SimpleString replyTo = (SimpleString)request.getProperty(ClientMessageImpl.REPLYTO_HEADER_NAME);
+ long value = (Long)request.getProperty(key);
+ reply.putLongProperty(key, value);
+ ClientProducer replyProducer = session.createProducer(replyTo);
+ replyProducer.send(reply);
+ request.acknowledge();
+ }
+ catch (MessagingException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/RequestorTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/RoutingTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientRoutingTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/RoutingTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/RoutingTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,314 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class RoutingTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+
+ public void testRouteToMultipleQueues() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ sendSession.createQueue(addressA, queueB, false);
+ sendSession.createQueue(addressA, queueC, false);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ p.send(sendSession.createClientMessage(false));
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ ClientConsumer c2 = session.createConsumer(queueB);
+ ClientConsumer c3 = session.createConsumer(queueC);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ c2.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ c3.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ assertNull(c2.receiveImmediate());
+ assertNull(c3.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRouteToSingleNonDurableQueue() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, false);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ p.send(sendSession.createClientMessage(false));
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRouteToSingleDurableQueue() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, true);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ p.send(sendSession.createClientMessage(false));
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRouteToSingleQueueWithFilter() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage clientMessage = sendSession.createClientMessage(false);
+ clientMessage.putStringProperty(new SimpleString("foo"), new SimpleString("bar"));
+ p.send(clientMessage);
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRouteToMultipleQueueWithFilters() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
+ sendSession.createQueue(addressA, queueB, new SimpleString("x = 1"), false);
+ sendSession.createQueue(addressA, queueC, new SimpleString("b = false"), false);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage clientMessage = sendSession.createClientMessage(false);
+ if (i % 3 == 0)
+ {
+ clientMessage.putStringProperty(new SimpleString("foo"), new SimpleString("bar"));
+ }
+ else if (i % 3 == 1)
+ {
+ clientMessage.putIntProperty(new SimpleString("x"), 1);
+ }
+ else
+ {
+ clientMessage.putBooleanProperty(new SimpleString("b"), false);
+ }
+ p.send(clientMessage);
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ ClientConsumer c2 = session.createConsumer(queueB);
+ ClientConsumer c3 = session.createConsumer(queueC);
+ session.start();
+ for (int i = 0; i < numMessages / 3; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = c2.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = c3.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ assertNull(c2.receiveImmediate());
+ assertNull(c3.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRouteToSingleTemporaryQueue() throws Exception
+ {
+ MessagingServer server = createServer(false);
+
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession sendSession = cf.createSession(false, true, true);
+ sendSession.createTemporaryQueue(addressA, queueA);
+ int numMessages = 300;
+ ClientProducer p = sendSession.createProducer(addressA);
+ for (int i = 0; i < numMessages; i++)
+ {
+ p.send(sendSession.createClientMessage(false));
+ }
+ ClientSession session = cf.createSession(false, true, true);
+ ClientConsumer c1 = session.createConsumer(queueA);
+ session.start();
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage m = c1.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ }
+ assertNull(c1.receiveImmediate());
+ sendSession.close();
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/RoutingTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SendTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSendTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SendTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SendTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,122 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SendTest extends ServiceTestBase
+{
+ public final SimpleString addressA = new SimpleString("addressA");
+
+ public final SimpleString queueA = new SimpleString("queueA");
+
+ public final SimpleString queueB = new SimpleString("queueB");
+
+ public final SimpleString queueC = new SimpleString("queueC");
+
+
+ public void testSendWithCommit() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, false, false);
+ session.createQueue(addressA, queueA, false);
+ ClientProducer cp = session.createProducer(addressA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(session.createClientMessage(false));
+ }
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(q.getMessageCount(), 0);
+ session.commit();
+ assertEquals(q.getMessageCount(), numMessages);
+ // now send some more
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(session.createClientMessage(false));
+ }
+ assertEquals(q.getMessageCount(), numMessages);
+ session.commit();
+ assertEquals(q.getMessageCount(), numMessages * 2);
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testSendWithRollback() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, false, false);
+ session.createQueue(addressA, queueA, false);
+ ClientProducer cp = session.createProducer(addressA);
+ int numMessages = 100;
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(session.createClientMessage(false));
+ }
+ Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
+ assertEquals(q.getMessageCount(), 0);
+ session.rollback();
+ assertEquals(q.getMessageCount(), 0);
+ // now send some more
+ for (int i = 0; i < numMessages; i++)
+ {
+ cp.send(session.createClientMessage(false));
+ }
+ assertEquals(q.getMessageCount(), 0);
+ session.commit();
+ assertEquals(q.getMessageCount(), numMessages);
+ session.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SendTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCloseTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCloseTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCloseTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCloseTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,281 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
+
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * A SessionCloseTest
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public class SessionCloseTest extends UnitTestCase
+{
+
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private MessagingServer server;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testCanNotUseAClosedSession() throws Exception
+ {
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.close();
+
+ assertTrue(session.isClosed());
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.createProducer();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.createConsumer(randomSimpleString());
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.createQueue(randomSimpleString(), randomSimpleString(), randomBoolean());
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.createTemporaryQueue(randomSimpleString(), randomSimpleString());
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.start();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.stop();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.commit();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.rollback();
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.queueQuery(randomSimpleString());
+ }
+ });
+
+ expectMessagingException(MessagingException.OBJECT_CLOSED, new MessagingAction()
+ {
+ public void run() throws MessagingException
+ {
+ session.bindingQuery(randomSimpleString());
+ }
+ });
+
+ }
+
+ public void testCanNotUseXAWithClosedSession() throws Exception
+ {
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ final ClientSession session = sf.createSession(true, false, false);
+
+ session.close();
+
+ assertTrue(session.isXA());
+ assertTrue(session.isClosed());
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.commit(randomXid(), randomBoolean());
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.end(randomXid(), XAResource.TMSUCCESS);
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.forget(randomXid());
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.prepare(randomXid());
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.recover(XAResource.TMSTARTRSCAN);
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.rollback(randomXid());
+ }
+ });
+
+ expectXAException(XAException.XAER_RMERR, new MessagingAction()
+ {
+ public void run() throws XAException
+ {
+ session.start(randomXid(), XAResource.TMNOFLAGS);
+ }
+ });
+
+ }
+
+ public void testCloseHierarchy() throws Exception
+ {
+ SimpleString address = randomSimpleString();
+ SimpleString queue = randomSimpleString();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(address, queue, false);
+
+ ClientProducer producer = session.createProducer(address);
+ ClientConsumer consumer = session.createConsumer(queue);
+
+ session.close();
+
+ assertTrue(session.isClosed());
+ assertTrue(producer.isClosed());
+ assertTrue(consumer.isClosed());
+
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ Configuration config = new ConfigurationImpl();
+ config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
+ config.setSecurityEnabled(false);
+ server = Messaging.newMessagingServer(config, false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ super.tearDown();
+ }
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCloseTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateAndDeleteQueueTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateAndDeleteQueueTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateAndDeleteQueueTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateAndDeleteQueueTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,163 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.postoffice.Binding;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.impl.LastValueQueue;
+import org.jboss.messaging.core.settings.impl.AddressSettings;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SessionCreateAndDeleteQueueTest extends ServiceTestBase
+{
+ private MessagingServer server;
+
+ private SimpleString address = new SimpleString("address");
+
+ private SimpleString queueName = new SimpleString("queue");
+
+
+ public void testDurableFalse() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ session.createQueue(address, queueName, false);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ Queue q = (Queue) binding.getBindable();
+ assertFalse(q.isDurable());
+
+ session.close();
+ }
+
+ public void testDurableTrue() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ session.createQueue(address, queueName, true);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ Queue q = (Queue) binding.getBindable();
+ assertTrue(q.isDurable());
+
+ session.close();
+ }
+
+ public void testTemporaryFalse() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ session.createQueue(address, queueName, false);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ Queue q = (Queue) binding.getBindable();
+ assertFalse(q.isTemporary());
+
+ session.close();
+ }
+
+ public void testTemporaryTrue() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ session.createTemporaryQueue(address, queueName);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ Queue q = (Queue) binding.getBindable();
+ assertTrue(q.isTemporary());
+
+ session.close();
+ }
+
+ public void testcreateWithFilter() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ SimpleString filterString = new SimpleString("x=y");
+ session.createQueue(address, queueName, filterString, false);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ Queue q = (Queue) binding.getBindable();
+ assertEquals(q.getFilter().getFilterString(), filterString);
+
+ session.close();
+ }
+
+ public void testAddressSettingUSed() throws Exception
+ {
+ AddressSettings addressSettings = new AddressSettings();
+ addressSettings.setLastValueQueue(true);
+ server.getAddressSettingsRepository().addMatch(address.toString(), addressSettings);
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ SimpleString filterString = new SimpleString("x=y");
+ session.createQueue(address, queueName, filterString, false);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ assertTrue(binding.getBindable() instanceof LastValueQueue);
+
+ session.close();
+ }
+
+ public void testDeleteQueue() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ session.createQueue(address, queueName, false);
+ Binding binding = server.getPostOffice().getBinding(queueName);
+ assertNotNull(binding);
+ session.deleteQueue(queueName);
+ binding = server.getPostOffice().getBinding(queueName);
+ assertNull(binding);
+ session.close();
+ }
+
+ public void testDeleteQueueNotExist() throws Exception
+ {
+ ClientSession session = createInVMFactory().createSession(false, true, true);
+ try
+ {
+ session.deleteQueue(queueName);
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(MessagingException.QUEUE_DOES_NOT_EXIST, e.getCode());
+ }
+ session.close();
+ }
+
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ server = createServer(false);
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ if(server != null && server.isStarted())
+ {
+ server.stop();
+ }
+
+ super.tearDown();
+
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateAndDeleteQueueTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateConsumerTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateConsumerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateConsumerTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateConsumerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,183 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionInternal;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SessionCreateConsumerTest extends ServiceTestBase
+{
+ private String queueName = "ClientSessionCreateConsumerTestQ";
+
+ public void testCreateConsumer() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientConsumer consumer = clientSession.createConsumer(queueName);
+ assertNotNull(consumer);
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateConsumerNoQ() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ try
+ {
+ clientSession.createConsumer(queueName);
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(e.getCode(), MessagingException.QUEUE_DOES_NOT_EXIST);
+ }
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateConsumerWithFilter() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientConsumer consumer = clientSession.createConsumer(queueName, "foo=bar");
+ assertNotNull(consumer);
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateConsumerWithInvalidFilter() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ try
+ {
+ clientSession.createConsumer(queueName, "foobar");
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(e.getCode(), MessagingException.INVALID_FILTER_EXPRESSION);
+ }
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateConsumerWithBrowseOnly() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientConsumer consumer = clientSession.createConsumer(queueName, null, true);
+ assertNotNull(consumer);
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateConsumerWithOverrides() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal)cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientConsumer consumer = clientSession.createConsumer(queueName, null, 100, 100, false);
+ assertNotNull(consumer);
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateConsumerTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateProducerTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionCreateProducerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateProducerTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateProducerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,168 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionInternal;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SessionCreateProducerTest extends ServiceTestBase
+{
+ public void testCreateAnonProducer() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
+ ClientProducer producer = clientSession.createProducer();
+ assertNull(producer.getAddress());
+ assertEquals(cf.getProducerMaxRate(), producer.getMaxRate());
+ assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
+ assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
+ assertFalse(producer.isClosed());
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateProducer1() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
+ ClientProducer producer = clientSession.createProducer("testAddress");
+ assertNotNull(producer.getAddress());
+ assertEquals(cf.getProducerMaxRate(), producer.getMaxRate());
+ assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
+ assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
+ assertFalse(producer.isClosed());
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateProducer2() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
+ int rate = 9876;
+ ClientProducer producer = clientSession.createProducer("testAddress", rate);
+ assertNotNull(producer.getAddress());
+ assertEquals(rate, producer.getMaxRate());
+ assertEquals(cf.isBlockOnNonPersistentSend(),producer.isBlockOnNonPersistentSend());
+ assertEquals(cf.isBlockOnPersistentSend(),producer.isBlockOnPersistentSend());
+ assertFalse(producer.isClosed());
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testCreateProducer3() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
+ int rate = 9876;
+ boolean blockOnSend = false;
+ boolean blockOnNonSend = false;
+ ClientProducer producer = clientSession.createProducer("testAddress", 9876, blockOnSend, blockOnNonSend);
+ assertNotNull(producer.getAddress());
+ assertEquals(rate, producer.getMaxRate());
+ assertEquals(blockOnSend, producer.isBlockOnNonPersistentSend());
+ assertEquals(blockOnNonSend, producer.isBlockOnPersistentSend());
+ assertFalse(producer.isClosed());
+ clientSession.close();
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+ public void testProducerOnClosedSession() throws Exception
+ {
+ MessagingServer service = createServer(false);
+ try
+ {
+ service.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setProducerMaxRate(99);
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnNonPersistentSend(true);
+ ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
+ clientSession.close();
+ try
+ {
+ clientSession.createProducer();
+ fail("should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(e.getCode(), MessagingException.OBJECT_CLOSED);
+ }
+ }
+ finally
+ {
+ service.stop();
+ }
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionCreateProducerTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionFactoryTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionFactoryTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionFactoryTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,881 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.client.impl.ClientSessionImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.RandomUtil;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.Pair;
+
+/**
+ *
+ * A ClientSessionFactoryTest
+ *
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ *
+ */
+public class SessionFactoryTest extends ServiceTestBase
+{
+ private final String groupAddress = "230.1.2.3";
+
+ private final int groupPort = 8765;
+
+ private MessagingServer liveService;
+
+ private MessagingServer backupService;
+
+ private TransportConfiguration liveTC;
+
+ private TransportConfiguration backupTC;
+
+ public void testDefaultConstructor() throws Exception
+ {
+ try
+ {
+ startLiveAndBackup();
+ ClientSessionFactory cf = new ClientSessionFactoryImpl();
+ assertFactoryParams(cf,
+ null,
+ null,
+ 0,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
+ ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
+ ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
+ ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
+ ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
+ ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+ ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
+ ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+ try
+ {
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ fail("Should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ // Ok
+ }
+ final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ this.backupTC);
+ staticConnectors.add(pair0);
+ cf.setStaticConnectors(staticConnectors);
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ assertNotNull(session);
+ session.close();
+ testSettersThrowException(cf);
+ }
+ finally
+ {
+ stopLiveAndBackup();
+ }
+ }
+
+ public void testDiscoveryConstructor() throws Exception
+ {
+ try
+ {
+ startLiveAndBackup();
+ ClientSessionFactory cf = new ClientSessionFactoryImpl(groupAddress, groupPort);
+ assertFactoryParams(cf,
+ null,
+ groupAddress,
+ groupPort,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
+ ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
+ ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
+ ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
+ ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
+ ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+ ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
+ ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ assertNotNull(session);
+ session.close();
+ testSettersThrowException(cf);
+ }
+ finally
+ {
+ stopLiveAndBackup();
+ }
+ }
+
+ public void testStaticConnectorListConstructor() throws Exception
+ {
+ try
+ {
+ startLiveAndBackup();
+ final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ this.backupTC);
+ staticConnectors.add(pair0);
+
+ ClientSessionFactory cf = new ClientSessionFactoryImpl(staticConnectors);
+ assertFactoryParams(cf,
+ staticConnectors,
+ null,
+ 0,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
+ ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
+ ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
+ ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
+ ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
+ ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+ ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
+ ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ assertNotNull(session);
+ session.close();
+ testSettersThrowException(cf);
+ }
+ finally
+ {
+ stopLiveAndBackup();
+ }
+ }
+
+ public void testStaticConnectorLiveAndBackupConstructor() throws Exception
+ {
+ try
+ {
+ startLiveAndBackup();
+ final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ this.backupTC);
+ staticConnectors.add(pair0);
+
+ ClientSessionFactory cf = new ClientSessionFactoryImpl(this.liveTC, this.backupTC);
+ assertFactoryParams(cf,
+ staticConnectors,
+ null,
+ 0,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
+ ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
+ ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
+ ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
+ ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
+ ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+ ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
+ ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ assertNotNull(session);
+ session.close();
+ testSettersThrowException(cf);
+ }
+ finally
+ {
+ stopLiveAndBackup();
+ }
+ }
+
+ public void testStaticConnectorLiveConstructor() throws Exception
+ {
+ try
+ {
+ startLiveAndBackup();
+ final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ null);
+ staticConnectors.add(pair0);
+
+ ClientSessionFactory cf = new ClientSessionFactoryImpl(this.liveTC);
+ assertFactoryParams(cf,
+ staticConnectors,
+ null,
+ 0,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL,
+ ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS,
+ ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND,
+ ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP,
+ ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE,
+ ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME,
+ ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT,
+ ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS,
+ ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+ ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+ ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS,
+ ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+ ClientSessionImpl session = (ClientSessionImpl)cf.createSession(false, true, true);
+ assertNotNull(session);
+ session.close();
+ testSettersThrowException(cf);
+ }
+ finally
+ {
+ stopLiveAndBackup();
+ }
+ }
+
+ public void testGettersAndSetters()
+ {
+ ClientSessionFactory cf = new ClientSessionFactoryImpl();
+
+ List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ this.backupTC);
+ staticConnectors.add(pair0);
+
+ String discoveryAddress = randomString();
+ int discoveryPort = RandomUtil.randomPositiveInt();
+ long discoveryRefreshTimeout = RandomUtil.randomPositiveLong();
+ long clientFailureCheckPeriod = RandomUtil.randomPositiveLong();
+ long connectionTTL = RandomUtil.randomPositiveLong();
+ long callTimeout = RandomUtil.randomPositiveLong();
+ int maxConnections = RandomUtil.randomPositiveInt();
+ int minLargeMessageSize = RandomUtil.randomPositiveInt();
+ int consumerWindowSize = RandomUtil.randomPositiveInt();
+ int consumerMaxRate = RandomUtil.randomPositiveInt();
+ int producerWindowSize = RandomUtil.randomPositiveInt();
+ int producerMaxRate = RandomUtil.randomPositiveInt();
+ boolean blockOnAcknowledge = RandomUtil.randomBoolean();
+ boolean blockOnPersistentSend = RandomUtil.randomBoolean();
+ boolean blockOnNonPersistentSend = RandomUtil.randomBoolean();
+ boolean autoGroup = RandomUtil.randomBoolean();
+ boolean preAcknowledge = RandomUtil.randomBoolean();
+ String loadBalancingPolicyClassName = RandomUtil.randomString();
+ int ackBatchSize = RandomUtil.randomPositiveInt();
+ long initialWaitTimeout = RandomUtil.randomPositiveLong();
+ boolean useGlobalPools = RandomUtil.randomBoolean();
+ int scheduledThreadPoolMaxSize = RandomUtil.randomPositiveInt();
+ int threadPoolMaxSize = RandomUtil.randomPositiveInt();
+ long retryInterval = RandomUtil.randomPositiveLong();
+ double retryIntervalMultiplier = RandomUtil.randomDouble();
+ int reconnectAttempts = RandomUtil.randomPositiveInt();
+ boolean failoverOnServerShutdown = RandomUtil.randomBoolean();
+
+ cf.setStaticConnectors(staticConnectors);
+ cf.setDiscoveryAddress(discoveryAddress);
+ cf.setDiscoveryPort(discoveryPort);
+ cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
+ cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
+ cf.setConnectionTTL(connectionTTL);
+ cf.setCallTimeout(callTimeout);
+ cf.setMaxConnections(maxConnections);
+ cf.setMinLargeMessageSize(minLargeMessageSize);
+ cf.setConsumerWindowSize(consumerWindowSize);
+ cf.setConsumerMaxRate(consumerMaxRate);
+ cf.setProducerWindowSize(producerWindowSize);
+ cf.setProducerMaxRate(producerMaxRate);
+ cf.setBlockOnAcknowledge(blockOnAcknowledge);
+ cf.setBlockOnPersistentSend(blockOnPersistentSend);
+ cf.setBlockOnNonPersistentSend(blockOnNonPersistentSend);
+ cf.setAutoGroup(autoGroup);
+ cf.setPreAcknowledge(preAcknowledge);
+ cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
+ cf.setAckBatchSize(ackBatchSize);
+ cf.setDiscoveryInitialWaitTimeout(initialWaitTimeout);
+ cf.setUseGlobalPools(useGlobalPools);
+ cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
+ cf.setThreadPoolMaxSize(threadPoolMaxSize);
+ cf.setRetryInterval(retryInterval);
+ cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
+ cf.setReconnectAttempts(reconnectAttempts);
+ cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
+
+ assertEquals(staticConnectors, cf.getStaticConnectors());
+ assertEquals(discoveryAddress, cf.getDiscoveryAddress());
+ assertEquals(discoveryPort, cf.getDiscoveryPort());
+ assertEquals(discoveryRefreshTimeout, cf.getDiscoveryRefreshTimeout());
+ assertEquals(clientFailureCheckPeriod, cf.getClientFailureCheckPeriod());
+ assertEquals(connectionTTL, cf.getConnectionTTL());
+ assertEquals(callTimeout, cf.getCallTimeout());
+ assertEquals(maxConnections, cf.getMaxConnections());
+ assertEquals(minLargeMessageSize, cf.getMinLargeMessageSize());
+ assertEquals(consumerWindowSize, cf.getConsumerWindowSize());
+ assertEquals(consumerMaxRate, cf.getConsumerMaxRate());
+ assertEquals(producerWindowSize, cf.getProducerWindowSize());
+ assertEquals(producerMaxRate, cf.getProducerMaxRate());
+ assertEquals(blockOnAcknowledge, cf.isBlockOnAcknowledge());
+ assertEquals(blockOnPersistentSend, cf.isBlockOnPersistentSend());
+ assertEquals(blockOnNonPersistentSend, cf.isBlockOnNonPersistentSend());
+ assertEquals(autoGroup, cf.isAutoGroup());
+ assertEquals(preAcknowledge, cf.isPreAcknowledge());
+ assertEquals(loadBalancingPolicyClassName, cf.getConnectionLoadBalancingPolicyClassName());
+ assertEquals(ackBatchSize, cf.getAckBatchSize());
+ assertEquals(initialWaitTimeout, cf.getDiscoveryInitialWaitTimeout());
+ assertEquals(useGlobalPools, cf.isUseGlobalPools());
+ assertEquals(scheduledThreadPoolMaxSize, cf.getScheduledThreadPoolMaxSize());
+ assertEquals(threadPoolMaxSize, cf.getThreadPoolMaxSize());
+ assertEquals(retryInterval, cf.getRetryInterval());
+ assertEquals(retryIntervalMultiplier, cf.getRetryIntervalMultiplier());
+ assertEquals(reconnectAttempts, cf.getReconnectAttempts());
+ assertEquals(failoverOnServerShutdown, cf.isFailoverOnServerShutdown());
+
+ }
+
+ private void testSettersThrowException(ClientSessionFactory cf)
+ {
+ List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+ Pair<TransportConfiguration, TransportConfiguration> pair0 = new Pair<TransportConfiguration, TransportConfiguration>(this.liveTC,
+ this.backupTC);
+ staticConnectors.add(pair0);
+
+ String discoveryAddress = randomString();
+ int discoveryPort = RandomUtil.randomPositiveInt();
+ long discoveryRefreshTimeout = RandomUtil.randomPositiveLong();
+ long clientFailureCheckPeriod = RandomUtil.randomPositiveLong();
+ long connectionTTL = RandomUtil.randomPositiveLong();
+ long callTimeout = RandomUtil.randomPositiveLong();
+ int maxConnections = RandomUtil.randomPositiveInt();
+ int minLargeMessageSize = RandomUtil.randomPositiveInt();
+ int consumerWindowSize = RandomUtil.randomPositiveInt();
+ int consumerMaxRate = RandomUtil.randomPositiveInt();
+ int producerWindowSize = RandomUtil.randomPositiveInt();
+ int producerMaxRate = RandomUtil.randomPositiveInt();
+ boolean blockOnAcknowledge = RandomUtil.randomBoolean();
+ boolean blockOnPersistentSend = RandomUtil.randomBoolean();
+ boolean blockOnNonPersistentSend = RandomUtil.randomBoolean();
+ boolean autoGroup = RandomUtil.randomBoolean();
+ boolean preAcknowledge = RandomUtil.randomBoolean();
+ String loadBalancingPolicyClassName = RandomUtil.randomString();
+ int ackBatchSize = RandomUtil.randomPositiveInt();
+ long initialWaitTimeout = RandomUtil.randomPositiveLong();
+ boolean useGlobalPools = RandomUtil.randomBoolean();
+ int scheduledThreadPoolMaxSize = RandomUtil.randomPositiveInt();
+ int threadPoolMaxSize = RandomUtil.randomPositiveInt();
+ long retryInterval = RandomUtil.randomPositiveLong();
+ double retryIntervalMultiplier = RandomUtil.randomDouble();
+ int reconnectAttempts = RandomUtil.randomPositiveInt();
+ boolean failoverOnServerShutdown = RandomUtil.randomBoolean();
+
+ try
+ {
+ cf.setStaticConnectors(staticConnectors);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setDiscoveryAddress(discoveryAddress);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setDiscoveryPort(discoveryPort);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setConnectionTTL(connectionTTL);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setCallTimeout(callTimeout);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setMaxConnections(maxConnections);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setMinLargeMessageSize(minLargeMessageSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setConsumerWindowSize(consumerWindowSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setConsumerMaxRate(consumerMaxRate);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setProducerWindowSize(producerWindowSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setProducerMaxRate(producerMaxRate);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setBlockOnAcknowledge(blockOnAcknowledge);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setBlockOnPersistentSend(blockOnPersistentSend);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setBlockOnNonPersistentSend(blockOnNonPersistentSend);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setAutoGroup(autoGroup);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setPreAcknowledge(preAcknowledge);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setAckBatchSize(ackBatchSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setDiscoveryInitialWaitTimeout(initialWaitTimeout);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setUseGlobalPools(useGlobalPools);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setThreadPoolMaxSize(threadPoolMaxSize);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setRetryInterval(retryInterval);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setReconnectAttempts(reconnectAttempts);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+ try
+ {
+ cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ // OK
+ }
+
+ cf.getStaticConnectors();
+ cf.getDiscoveryAddress();
+ cf.getDiscoveryPort();
+ cf.getDiscoveryRefreshTimeout();
+ cf.getClientFailureCheckPeriod();
+ cf.getConnectionTTL();
+ cf.getCallTimeout();
+ cf.getMaxConnections();
+ cf.getMinLargeMessageSize();
+ cf.getConsumerWindowSize();
+ cf.getConsumerMaxRate();
+ cf.getProducerWindowSize();
+ cf.getProducerMaxRate();
+ cf.isBlockOnAcknowledge();
+ cf.isBlockOnPersistentSend();
+ cf.isBlockOnNonPersistentSend();
+ cf.isAutoGroup();
+ cf.isPreAcknowledge();
+ cf.getConnectionLoadBalancingPolicyClassName();
+ cf.getAckBatchSize();
+ cf.getDiscoveryInitialWaitTimeout();
+ cf.isUseGlobalPools();
+ cf.getScheduledThreadPoolMaxSize();
+ cf.getThreadPoolMaxSize();
+ cf.getRetryInterval();
+ cf.getRetryIntervalMultiplier();
+ cf.getReconnectAttempts();
+ cf.isFailoverOnServerShutdown();
+
+ }
+
+ private void assertFactoryParams(ClientSessionFactory cf,
+ List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors,
+ String discoveryAddress,
+ int discoveryPort,
+ long discoveryRefreshTimeout,
+ long clientFailureCheckPeriod,
+ long connectionTTL,
+ long callTimeout,
+ int maxConnections,
+ int minLargeMessageSize,
+ int consumerWindowSize,
+ int consumerMaxRate,
+ int producerWindowSize,
+ int producerMaxRate,
+ boolean blockOnAcknowledge,
+ boolean blockOnPersistentSend,
+ boolean blockOnNonPersistentSend,
+ boolean autoGroup,
+ boolean preAcknowledge,
+ String loadBalancingPolicyClassName,
+ int ackBatchSize,
+ long initialWaitTimeout,
+ boolean useGlobalPools,
+ int scheduledThreadPoolMaxSize,
+ int threadPoolMaxSize,
+ long retryInterval,
+ double retryIntervalMultiplier,
+ int reconnectAttempts,
+ boolean failoverOnServerShutdown)
+ {
+ List<Pair<TransportConfiguration, TransportConfiguration>> cfStaticConnectors = cf.getStaticConnectors();
+ if (staticConnectors == null)
+ {
+ assertNull(cfStaticConnectors);
+ }
+ else
+ {
+ assertEquals(staticConnectors.size(), cfStaticConnectors.size());
+
+ for (int i = 0; i < staticConnectors.size(); i++)
+ {
+ assertEquals(staticConnectors.get(i), cfStaticConnectors.get(i));
+ }
+ }
+ assertEquals(cf.getDiscoveryAddress(), discoveryAddress);
+ assertEquals(cf.getDiscoveryPort(), discoveryPort);
+ assertEquals(cf.getDiscoveryRefreshTimeout(), discoveryRefreshTimeout);
+ assertEquals(cf.getClientFailureCheckPeriod(), clientFailureCheckPeriod);
+ assertEquals(cf.getConnectionTTL(), connectionTTL);
+ assertEquals(cf.getCallTimeout(), callTimeout);
+ assertEquals(cf.getMaxConnections(), maxConnections);
+ assertEquals(cf.getMinLargeMessageSize(), minLargeMessageSize);
+ assertEquals(cf.getConsumerWindowSize(), consumerWindowSize);
+ assertEquals(cf.getConsumerMaxRate(), consumerMaxRate);
+ assertEquals(cf.getProducerWindowSize(), producerWindowSize);
+ assertEquals(cf.getProducerMaxRate(), producerMaxRate);
+ assertEquals(cf.isBlockOnAcknowledge(), blockOnAcknowledge);
+ assertEquals(cf.isBlockOnPersistentSend(), blockOnPersistentSend);
+ assertEquals(cf.isBlockOnNonPersistentSend(), blockOnNonPersistentSend);
+ assertEquals(cf.isAutoGroup(), autoGroup);
+ assertEquals(cf.isPreAcknowledge(), preAcknowledge);
+ assertEquals(cf.getConnectionLoadBalancingPolicyClassName(), loadBalancingPolicyClassName);
+ assertEquals(cf.getAckBatchSize(), ackBatchSize);
+ assertEquals(cf.getDiscoveryInitialWaitTimeout(), initialWaitTimeout);
+ assertEquals(cf.isUseGlobalPools(), useGlobalPools);
+ assertEquals(cf.getScheduledThreadPoolMaxSize(), scheduledThreadPoolMaxSize);
+ assertEquals(cf.getThreadPoolMaxSize(), threadPoolMaxSize);
+ assertEquals(cf.getRetryInterval(), retryInterval);
+ assertEquals(cf.getRetryIntervalMultiplier(), retryIntervalMultiplier);
+ assertEquals(cf.getReconnectAttempts(), reconnectAttempts);
+ assertEquals(cf.isFailoverOnServerShutdown(), failoverOnServerShutdown);
+ }
+
+ private void stopLiveAndBackup() throws Exception
+ {
+ if (liveService.isStarted())
+ {
+ liveService.stop();
+ }
+ if (backupService.isStarted())
+ {
+ backupService.stop();
+ }
+ }
+
+ private void startLiveAndBackup() throws Exception
+ {
+ Map<String, Object> backupParams = new HashMap<String, Object>();
+ Configuration backupConf = new ConfigurationImpl();
+ backupConf.setSecurityEnabled(false);
+ backupConf.setClustered(true);
+ backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
+ backupConf.getAcceptorConfigurations()
+ .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
+ backupParams));
+ backupConf.setBackup(true);
+ backupService = Messaging.newMessagingServer(backupConf, false);
+ backupService.start();
+
+ Configuration liveConf = new ConfigurationImpl();
+ liveConf.setSecurityEnabled(false);
+ liveTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory");
+ liveConf.getAcceptorConfigurations()
+ .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory"));
+ Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+ backupTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+ backupParams);
+ connectors.put(backupTC.getName(), backupTC);
+ connectors.put(liveTC.getName(), liveTC);
+ liveConf.setConnectorConfigurations(connectors);
+ liveConf.setBackupConnectorName(backupTC.getName());
+ liveConf.setClustered(true);
+
+ List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
+ connectorNames.add(new Pair<String, String>(liveTC.getName(), backupTC.getName()));
+
+ final long broadcastPeriod = 250;
+
+ final String bcGroupName = "bc1";
+
+ final int localBindPort = 5432;
+
+ BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
+ null,
+ localBindPort,
+ groupAddress,
+ groupPort,
+ broadcastPeriod,
+ connectorNames);
+
+ List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<BroadcastGroupConfiguration>();
+ bcConfigs1.add(bcConfig1);
+ liveConf.setBroadcastGroupConfigurations(bcConfigs1);
+
+ liveService = Messaging.newMessagingServer(liveConf, false);
+ liveService.start();
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionFactoryTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionSendAcknowledgementHandlerTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionSendAcknowledgementHandlerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionSendAcknowledgementHandlerTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionSendAcknowledgementHandlerTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.SendAcknowledgementHandler;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.message.Message;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * A SendAcknowledgementsTest
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ * Created 9 Feb 2009 13:29:19
+ *
+ *
+ */
+public class SessionSendAcknowledgementHandlerTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(SessionSendAcknowledgementHandlerTest.class);
+
+ private MessagingServer server;
+
+ private SimpleString address = new SimpleString("address");
+
+ private SimpleString queueName = new SimpleString("queue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ if (server != null && server.isStarted())
+ {
+ server.stop();
+ }
+
+ super.tearDown();
+ }
+
+ public void testSendAcknowledgements() throws Exception
+ {
+ ClientSessionFactory csf = createInVMFactory();
+
+ csf.setProducerWindowSize(1024);
+
+ ClientSession session = csf.createSession(null, null, false, true, true, false, 1);
+
+ session.createQueue(address, queueName, false);
+
+ ClientProducer prod = session.createProducer(address);
+
+ final int numMessages = 1000;
+
+ final CountDownLatch latch = new CountDownLatch(numMessages);
+
+ session.setSendAcknowledgementHandler(new SendAcknowledgementHandler()
+ {
+ public void sendAcknowledged(final Message message)
+ {
+ latch.countDown();
+ }
+ });
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage msg = session.createClientMessage(false);
+
+ prod.send(msg);
+ }
+
+ session.close();
+
+ boolean ok = latch.await(5000, TimeUnit.MILLISECONDS);
+
+ assertTrue(ok);
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionSendAcknowledgementHandlerTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionStopStartTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionStopStartTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionStopStartTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionStopStartTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,712 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SessionStopStartTest extends ServiceTestBase
+{
+ private static final Logger log = Logger.getLogger(SessionStopStartTest.class);
+
+ private MessagingServer server;
+
+ private final SimpleString QUEUE = new SimpleString("ConsumerTestQueue");
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ server = createServer(false);
+
+ server.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ server.stop();
+
+ server = null;
+
+ super.tearDown();
+ }
+
+ public void testStopStartConsumerSyncReceiveImmediate() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ session.stop();
+ ClientMessage cm = consumer.receiveImmediate();
+ assertNull(cm);
+
+ session.start();
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+
+ session.close();
+ }
+
+ public void testStopStartConsumerSyncReceive() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ session.stop();
+ long time = System.currentTimeMillis();
+ ClientMessage cm = consumer.receive(1000);
+ long taken = System.currentTimeMillis() - time;
+ assertTrue(taken >= 1000);
+ assertNull(cm);
+
+ session.start();
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+
+ session.close();
+ }
+
+ public void testStopStartConsumerAsyncSyncStoppedByHandler() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+ final CountDownLatch latch = new CountDownLatch(10);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ boolean failed;
+
+ boolean started = true;
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+
+ latch.countDown();
+
+ if (latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ session.stop();
+ started = false;
+ }
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler();
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ consumer.setMessageHandler(null);
+ session.start();
+ for (int i = 0; i < 90; i++)
+ {
+ ClientMessage msg = consumer.receive(1000);
+ if (msg == null)
+ {
+ System.out.println("ClientConsumerTest.testStopConsumer");
+ }
+ assertNotNull("message " + i, msg);
+ msg.acknowledge();
+ }
+
+ assertNull(consumer.receiveImmediate());
+
+ session.close();
+ }
+
+ public void testStopStartConsumerAsyncSync() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+ final CountDownLatch latch = new CountDownLatch(10);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ boolean failed;
+
+ boolean started = true;
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+
+ latch.countDown();
+
+ if (latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ started = false;
+ consumer.setMessageHandler(null);
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler();
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ try
+ {
+ session.stop();
+ }
+ catch (Exception e)
+ {
+ log.warn(e.getMessage(), e);
+ throw e;
+ }
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ consumer.setMessageHandler(null);
+ session.start();
+ for (int i = 0; i < 90; i++)
+ {
+ ClientMessage msg = consumer.receive(1000);
+ if (msg == null)
+ {
+ System.out.println("ClientConsumerTest.testStopConsumer");
+ }
+ assertNotNull("message " + i, msg);
+ msg.acknowledge();
+ }
+
+ assertNull(consumer.receiveImmediate());
+
+ session.close();
+ }
+
+ public void testStopStartConsumerAsyncASyncStoppeeByHandler() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+ CountDownLatch latch = new CountDownLatch(10);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ int messageReceived = 0;
+
+ boolean failed;
+
+ boolean started = true;
+
+ private final CountDownLatch latch;
+
+ private boolean stop = true;
+
+ public MyHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public MyHandler(CountDownLatch latch, boolean stop)
+ {
+ this(latch);
+ this.stop = stop;
+ }
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+ messageReceived++;
+ latch.countDown();
+
+ if (stop && latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ session.stop();
+ started = false;
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler(latch);
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ latch = new CountDownLatch(90);
+ handler = new MyHandler(latch, false);
+ consumer.setMessageHandler(handler);
+ session.start();
+ assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+ assertNull(consumer.getLastException());
+ session.close();
+ }
+
+ public void testStopStartConsumerAsyncASync() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+ CountDownLatch latch = new CountDownLatch(10);
+
+ // Message should be in consumer
+
+ class MyHandler implements MessageHandler
+ {
+ int messageReceived = 0;
+
+ boolean failed;
+
+ boolean started = true;
+
+ private final CountDownLatch latch;
+
+ private boolean stop = true;
+
+ public MyHandler(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public MyHandler(CountDownLatch latch, boolean stop)
+ {
+ this(latch);
+ this.stop = stop;
+ }
+
+ public void onMessage(final ClientMessage message)
+ {
+
+ try
+ {
+ if (!started)
+ {
+ failed = true;
+ }
+ messageReceived++;
+ latch.countDown();
+
+ if (stop && latch.getCount() == 0)
+ {
+
+ message.acknowledge();
+ consumer.setMessageHandler(null);
+ started = false;
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ MyHandler handler = new MyHandler(latch);
+
+ consumer.setMessageHandler(handler);
+
+ latch.await();
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+
+ // Make sure no exceptions were thrown from onMessage
+ assertNull(consumer.getLastException());
+ latch = new CountDownLatch(90);
+ handler = new MyHandler(latch, false);
+ consumer.setMessageHandler(handler);
+ session.start();
+ assertTrue("message received " + handler.messageReceived, latch.await(5, TimeUnit.SECONDS));
+
+ Thread.sleep(100);
+
+ assertFalse(handler.failed);
+ assertNull(consumer.getLastException());
+ session.close();
+ }
+
+ private int getMessageEncodeSize(final SimpleString address) throws Exception
+ {
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession session = cf.createSession(false, true, true);
+ ClientMessage message = session.createClientMessage(false);
+ // we need to set the destination so we can calculate the encodesize correctly
+ message.setDestination(address);
+ int encodeSize = message.getEncodeSize();
+ session.close();
+ cf.close();
+ return encodeSize;
+ }
+
+ public void testStopStartMultipleConsumers() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+ sf.setConsumerWindowSize(this.getMessageEncodeSize(QUEUE) * 33);
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ ClientConsumer consumer2 = session.createConsumer(QUEUE);
+ ClientConsumer consumer3 = session.createConsumer(QUEUE);
+
+ session.start();
+
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ cm = consumer2.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ cm = consumer3.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+
+ session.stop();
+ cm = consumer.receiveImmediate();
+ assertNull(cm);
+ cm = consumer2.receiveImmediate();
+ assertNull(cm);
+ cm = consumer3.receiveImmediate();
+ assertNull(cm);
+
+ session.start();
+ cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm = consumer2.receive(5000);
+ assertNotNull(cm);
+ cm = consumer3.receive(5000);
+ assertNotNull(cm);
+ session.close();
+ }
+
+
+ public void testStopStartAlreadyStartedSession() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+
+ session.start();
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+
+ session.close();
+ }
+
+ public void testStopAlreadyStoppedSession() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ final ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ message.putIntProperty(new SimpleString("i"), i);
+ producer.send(message);
+ }
+
+ final ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ session.start();
+
+
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ ClientMessage cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+ session.stop();
+ ClientMessage cm = consumer.receiveImmediate();
+ assertNull(cm);
+
+ session.stop();
+ cm = consumer.receiveImmediate();
+ assertNull(cm);
+
+ session.start();
+ for (int i = 0; i < numMessages / 2; i++)
+ {
+ cm = consumer.receive(5000);
+ assertNotNull(cm);
+ cm.acknowledge();
+ }
+
+ session.close();
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionStopStartTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionTest.java (from rev 7373, trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionTest.java 2009-06-17 03:53:02 UTC (rev 7374)
@@ -0,0 +1,627 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.jboss.messaging.tests.integration.client;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.FailureListener;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.SimpleString;
+
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * This test covers the API for ClientSession altho XA tests are tested seperately.
+ *
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class SessionTest extends ServiceTestBase
+{
+ private String queueName = "ClientSessionTestQ";
+
+ public void testFailureListener() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ final CountDownLatch latch = new CountDownLatch(1);
+ clientSession.addFailureListener(new FailureListener()
+ {
+ public boolean connectionFailed(MessagingException me)
+ {
+ latch.countDown();
+ return false;
+ }
+ });
+
+ server.stop();
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testFailureListenerRemoved() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ class MyFailureListener implements FailureListener
+ {
+ boolean called = false;
+
+ public boolean connectionFailed(MessagingException me)
+ {
+ called = true;
+ return false;
+ }
+ }
+
+ MyFailureListener listener = new MyFailureListener();
+ clientSession.addFailureListener(listener);
+
+ assertTrue(clientSession.removeFailureListener(listener));
+ server.stop();
+ assertFalse(listener.called);
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testBindingQuery() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ clientSession.createQueue("a1", "q1", false);
+ clientSession.createQueue("a1", "q2", false);
+ clientSession.createQueue("a2", "q3", false);
+ clientSession.createQueue("a2", "q4", false);
+ clientSession.createQueue("a2", "q5", false);
+ SessionBindingQueryResponseMessage resp = clientSession.bindingQuery(new SimpleString("a"));
+ List<SimpleString> queues = resp.getQueueNames();
+ assertTrue(queues.isEmpty());
+ resp = clientSession.bindingQuery(new SimpleString("a1"));
+ queues = resp.getQueueNames();
+ assertEquals(queues.size(), 2);
+ assertTrue(queues.contains(new SimpleString("q1")));
+ assertTrue(queues.contains(new SimpleString("q2")));
+ resp = clientSession.bindingQuery(new SimpleString("a2"));
+ queues = resp.getQueueNames();
+ assertEquals(queues.size(), 3);
+ assertTrue(queues.contains(new SimpleString("q3")));
+ assertTrue(queues.contains(new SimpleString("q4")));
+ assertTrue(queues.contains(new SimpleString("q5")));
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testQueueQuery() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ clientSession.createQueue("a1", queueName, false);
+ clientSession.createConsumer(queueName);
+ clientSession.createConsumer(queueName);
+ ClientProducer cp = clientSession.createProducer("a1");
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
+ assertEquals(new SimpleString("a1"), resp.getAddress());
+ assertEquals(2, resp.getConsumerCount());
+ assertEquals(2, resp.getMessageCount());
+ assertEquals(null, resp.getFilterString());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testQueueQueryWithFilter() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ clientSession.createQueue("a1", queueName, "foo=bar", false);
+ clientSession.createConsumer(queueName);
+ clientSession.createConsumer(queueName);
+ SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
+ assertEquals(new SimpleString("a1"), resp.getAddress());
+ assertEquals(2, resp.getConsumerCount());
+ assertEquals(0, resp.getMessageCount());
+ assertEquals(new SimpleString("foo=bar"), resp.getFilterString());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testQueueQueryNoQ() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ SessionQueueQueryResponseMessage resp = clientSession.queueQuery(new SimpleString(queueName));
+ assertFalse(resp.isExists());
+ assertEquals(null, resp.getAddress());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testClose() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientProducer p = clientSession.createProducer();
+ ClientProducer p1 = clientSession.createProducer(queueName);
+ ClientConsumer c = clientSession.createConsumer(queueName);
+ ClientConsumer c1 = clientSession.createConsumer(queueName);
+ clientSession.close();
+ assertTrue(clientSession.isClosed());
+ assertTrue(p.isClosed());
+ assertTrue(p1.isClosed());
+ assertTrue(c.isClosed());
+ assertTrue(c1.isClosed());
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCreateClientMessageNonDurable() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ ClientMessage clientMessage = clientSession.createClientMessage(false);
+ assertFalse(clientMessage.isDurable());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCreateClientMessageDurable() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ ClientMessage clientMessage = clientSession.createClientMessage(true);
+ assertTrue(clientMessage.isDurable());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCreateClientMessageType() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ ClientMessage clientMessage = clientSession.createClientMessage((byte) 99, false);
+ assertEquals((byte) 99, clientMessage.getType());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCreateClientMessageOverrides() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ ClientMessage clientMessage = clientSession.createClientMessage((byte) 88, false, 100l, 300l, (byte) 33);
+ assertEquals((byte) 88, clientMessage.getType());
+ assertEquals(100l, clientMessage.getExpiration());
+ assertEquals(300l, clientMessage.getTimestamp());
+ assertEquals((byte) 33, clientMessage.getPriority());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testGetVersion() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSession clientSession = cf.createSession(false, true, true);
+ assertEquals(server.getVersion().getIncrementingVersion(), clientSession.getVersion());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testStart() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ clientSession.start();
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testStop() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, true);
+ clientSession.createQueue(queueName, queueName, false);
+ clientSession.start();
+ clientSession.stop();
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCommitWithSend() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, false, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientProducer cp = clientSession.createProducer(queueName);
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
+ assertEquals(0, q.getMessageCount());
+ clientSession.commit();
+ assertEquals(10, q.getMessageCount());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRollbackWithSend() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, false, true);
+ clientSession.createQueue(queueName, queueName, false);
+ ClientProducer cp = clientSession.createProducer(queueName);
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
+ assertEquals(0, q.getMessageCount());
+ clientSession.rollback();
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ clientSession.commit();
+ assertEquals(2, q.getMessageCount());
+ clientSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testCommitWithReceive() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnPersistentSend(true);
+ ClientSessionImpl sendSession = (ClientSessionImpl) cf.createSession(false, true, true);
+ ClientProducer cp = sendSession.createProducer(queueName);
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, false);
+ clientSession.createQueue(queueName, queueName, false);
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
+ assertEquals(10, q.getMessageCount());
+ ClientConsumer cc = clientSession.createConsumer(queueName);
+ clientSession.start();
+ ClientMessage m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ clientSession.commit();
+ assertEquals(0, q.getMessageCount());
+ clientSession.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testRollbackWithReceive() throws Exception
+ {
+ MessagingServer server = createServer(false);
+ try
+ {
+ server.start();
+ ClientSessionFactory cf = createInVMFactory();
+ cf.setBlockOnNonPersistentSend(true);
+ cf.setBlockOnPersistentSend(true);
+ ClientSessionImpl sendSession = (ClientSessionImpl) cf.createSession(false, true, true);
+ ClientProducer cp = sendSession.createProducer(queueName);
+ ClientSessionImpl clientSession = (ClientSessionImpl) cf.createSession(false, true, false);
+ clientSession.createQueue(queueName, queueName, false);
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ cp.send(clientSession.createClientMessage(false));
+ Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(queueName)).getBindable();
+ assertEquals(10, q.getMessageCount());
+ ClientConsumer cc = clientSession.createConsumer(queueName);
+ clientSession.start();
+ ClientMessage m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ m = cc.receive(5000);
+ assertNotNull(m);
+ m.acknowledge();
+ clientSession.rollback();
+ assertEquals(10, q.getMessageCount());
+ clientSession.close();
+ sendSession.close();
+ }
+ finally
+ {
+ if (server.isStarted())
+ {
+ server.stop();
+ }
+ }
+ }
+}
Property changes on: trunk/tests/src/org/jboss/messaging/tests/integration/client/SessionTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
More information about the jboss-cvs-commits
mailing list