[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