Package org.jboss.test.messaging.core.postoffice

Source Code of org.jboss.test.messaging.core.postoffice.PostOfficeTest

/*
  * JBoss, Home of Professional Open Source
  * Copyright 2005, JBoss Inc., and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
package org.jboss.test.messaging.core.postoffice;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import javax.jms.JMSException;

import org.jboss.messaging.core.contract.Binding;
import org.jboss.messaging.core.contract.Condition;
import org.jboss.messaging.core.contract.Delivery;
import org.jboss.messaging.core.contract.DeliveryObserver;
import org.jboss.messaging.core.contract.Distributor;
import org.jboss.messaging.core.contract.Filter;
import org.jboss.messaging.core.contract.Message;
import org.jboss.messaging.core.contract.MessageReference;
import org.jboss.messaging.core.contract.PostOffice;
import org.jboss.messaging.core.contract.Queue;
import org.jboss.messaging.core.impl.MessagingQueue;
import org.jboss.messaging.core.impl.SimpleDelivery;
import org.jboss.messaging.core.impl.clusterconnection.MessageSucker;
import org.jboss.messaging.core.impl.postoffice.RouteResult;
import org.jboss.messaging.core.impl.tx.Transaction;
import org.jboss.test.messaging.core.PostOfficeTestBase;
import org.jboss.test.messaging.core.SimpleCondition;
import org.jboss.test.messaging.core.SimpleFilter;
import org.jboss.test.messaging.core.SimpleReceiver;
import org.jboss.test.messaging.util.CoreMessageFactory;

/**
*
* A PostOfficeTest
*
* @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
* @version <tt>$Revision: 2386 $</tt>
*
* $Id: DefaultPostOfficeTest.java 2386 2007-02-21 18:07:44Z timfox $
*
*/
public class PostOfficeTest extends PostOfficeTestBase
{
   // Constants -----------------------------------------------------

   // Static --------------------------------------------------------
  
   // Attributes ----------------------------------------------------

   // Constructors --------------------------------------------------

   public PostOfficeTest(String name)
   {
      super(name);
   }

   // Public --------------------------------------------------------
  
   public final void testBindUnbind() throws Throwable
   {
      PostOffice office1 = null;
     
      PostOffice office2 = null;
     
      PostOffice office3 = null;
     
      try
      {            
         office1 = createNonClusteredPostOffice();
        
         //Bind one durable
            
         MessagingQueue queue1 =
            new MessagingQueue(1, "durableQueue", channelIDManager.getID(), ms, pm, true, -1, null, false);
         queue1.activate();
        
         Condition condition1 = new SimpleCondition("condition1");
                 
         boolean added = office1.addBinding(new Binding(condition1, queue1, false), false);
         assertTrue(added);
        
         //Binding twice with the same name should fail     
         added = office1.addBinding(new Binding(condition1, queue1, false), false);
         assertFalse(added);
        
         //Can't bind a queue from another node
        
         try
         {
        
           MessagingQueue queuexx =
              new MessagingQueue(777, "durableQueue", channelIDManager.getID(), ms, pm, true, -1, null, false);
           queuexx.activate();
           office1.addBinding(new Binding(condition1, queuexx, false), false);
            fail();
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
              
         //Bind one non durable
         MessagingQueue queue2 =
            new MessagingQueue(1, "nonDurableQueue", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         Condition condition2 = new SimpleCondition("condition2");        
        
         added = office1.addBinding(new Binding(condition2, queue2, false), false);
         assertTrue(added);
        
         //Check they're there
        
         Collection queues = office1.getQueuesForCondition(condition1, true);
         assertNotNull(queues);
         assertEquals(1, queues.size());
         Queue rqueue1 = (Queue)queues.iterator().next();
         assertEquals(queue1, rqueue1);
        
         queues = office1.getQueuesForCondition(condition2, true);
         assertNotNull(queues);
         assertEquals(1, queues.size());
         Queue rqueue2 = (Queue)queues.iterator().next();
         assertEquals(queue2, rqueue2);
                         
         office1.stop();
        
         //Throw away the office and create another
         office2 = createNonClusteredPostOffice();
        
         //Only one binding should be there
         queues = office2.getQueuesForCondition(condition1, true);
         assertNotNull(queues);
         assertEquals(1, queues.size());
         rqueue1 = (Queue)queues.iterator().next();
         assertEquals(queue1, rqueue1);
        
         queues = office2.getQueuesForCondition(condition2, true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         //Unbind the binding
         office2.removeBinding(queue1.getName(), false);        
        
         //Make sure no longer there
         queues = office2.getQueuesForCondition(condition1, true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         queues = office2.getQueuesForCondition(condition2, true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         office2.stop();
        
         //Throw away office and start another
         office3 = createNonClusteredPostOffice();
        
         //Make sure not there
         queues = office3.getQueuesForCondition(condition1, true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         queues = office3.getQueuesForCondition(condition2, true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
                
      }
      finally
      {
         if (office1 != null)
         {
            office1.stop();
         }
        
         if (office2 != null)
         {
            office2.stop();
         }
        
         if (office3 != null)
         {
            office2.stop();
         }        
      }
           
   }
  
   public final void testGetQueuesForCondition() throws Throwable
   {
      PostOffice office = null;
     
      try
      {     
         office = createNonClusteredPostOffice();
        
         Condition condition1 = new SimpleCondition("condition1");
        
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();
        
         office.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         office.addBinding(new Binding(condition1, queue2, false), false);
        
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue3.activate();
        
         office.addBinding(new Binding(condition1, queue3, false), false);
        
         MessagingQueue queue4 = new MessagingQueue(1, "queue4", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue4.activate();
        
         office.addBinding(new Binding(condition1, queue4, false), false);
        
         MessagingQueue queue5 = new MessagingQueue(1, "queue5", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue5.activate();
        
         Condition condition2 = new SimpleCondition("condition2");        
        
         office.addBinding(new Binding(condition2, queue5, false), false);
        
         MessagingQueue queue6 = new MessagingQueue(1, "queue6", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue6.activate();
        
         office.addBinding(new Binding(condition2, queue6, false), false);
        
         MessagingQueue queue7 = new MessagingQueue(1, "queue7", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue7.activate();
        
         office.addBinding(new Binding(condition2, queue7, false), false);
        
         MessagingQueue queue8 = new MessagingQueue(1, "queue8", channelIDManager.getID(), ms, pm,  false, -1, null, false);
         queue8.activate();
        
         office.addBinding(new Binding(condition2, queue8, false), false);
                 
         Collection queues = office.getQueuesForCondition(new SimpleCondition("dummy"), true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
                          
         //We don't match on substrings
         queues = office.getQueuesForCondition(new SimpleCondition("condition123"), true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         //We don't currently support hierarchies
         queues = office.getQueuesForCondition(new SimpleCondition("condition1.subcondition"), true);
         assertNotNull(queues);
         assertTrue(queues.isEmpty());
        
         //Lookup the queues
        
         queues = office.getQueuesForCondition(condition1, true);
         assertNotNull(queues);
         assertEquals(4, queues.size());
        
         assertTrue(queues.contains(queue1));
         assertTrue(queues.contains(queue2));
         assertTrue(queues.contains(queue3));
         assertTrue(queues.contains(queue4));
        
         queues = office.getQueuesForCondition(condition2, true);
         assertNotNull(queues);
         assertEquals(4, queues.size());
        
         assertTrue(queues.contains(queue5));
         assertTrue(queues.contains(queue6));
         assertTrue(queues.contains(queue7));
         assertTrue(queues.contains(queue8));
        
         //Lookup should work on new instance too
        
         queues = office.getQueuesForCondition(new SimpleCondition("condition1"), true);
         assertNotNull(queues);
         assertEquals(4, queues.size());
        
         assertTrue(queues.contains(queue1));
         assertTrue(queues.contains(queue2));
         assertTrue(queues.contains(queue3));
         assertTrue(queues.contains(queue4));
        
         queues = office.getQueuesForCondition(new SimpleCondition("condition2"), true);
         assertNotNull(queues);
         assertEquals(4, queues.size());
        
         assertTrue(queues.contains(queue5));
         assertTrue(queues.contains(queue6));
         assertTrue(queues.contains(queue7));
         assertTrue(queues.contains(queue8));
        
      }
      finally
      {
         if (office != null)
         {
            office.stop();
         }
       
      }
        
   }
  
   public void testGetBindingForQueueName() throws Throwable
   {    
      PostOffice office = null;
     
      try
      {     
         office = createNonClusteredPostOffice();
                 
         Condition condition1 = new SimpleCondition("condition1")
        
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition1, queue1, false), false);
                        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition1, queue2, false), false);
        
         Condition condition2 = new SimpleCondition("condition2")
                 
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition2, queue3, false), false);
        
         Binding b1 = office.getBindingForQueueName("queue1");
         assertNotNull(b1);
         assertEquals(queue1, b1.queue);
         assertEquals(condition1, b1.condition);
        
         Binding b2 = office.getBindingForQueueName("queue2");
         assertNotNull(b2);
         assertEquals(queue2, b2.queue);
         assertEquals(condition1, b2.condition);
        
         Binding b3 = office.getBindingForQueueName("queue3");
         assertNotNull(b3);
         assertEquals(queue3, b3.queue);
         assertEquals(condition2, b3.condition);
        
         office.removeBinding("queue1", false);
        
         b1 = office.getBindingForQueueName("queue1");
         assertNull(b1);

         b2 = office.getBindingForQueueName("queue2");
         assertNotNull(b2);
         assertEquals(queue2, b2.queue);
         assertEquals(condition1, b2.condition);
        
         b3 = office.getBindingForQueueName("queue3");
         assertNotNull(b3);
         assertEquals(queue3, b3.queue);
         assertEquals(condition2, b3.condition);
        
         office.removeBinding("queue2", false);
         office.removeBinding("queue3", false);
        
         b1 = office.getBindingForQueueName("queue1");
         assertNull(b1);

         b2 = office.getBindingForQueueName("queue2");
         assertNull(b2);
         b3 = office.getBindingForQueueName("queue3");
         assertNull(b3);                    
                 
      }
      finally
      {
         if (office != null)
         {
            office.stop();
         }
      }        
   }
  
   public void testGetBindingForChannelID() throws Throwable
   {    
      PostOffice office = null;
     
      try
      {     
         office = createNonClusteredPostOffice();
                 
         Condition condition1 = new SimpleCondition("condition1")
        
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition1, queue1, false), false);
                        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition1, queue2, false), false);
        
         Condition condition2 = new SimpleCondition("condition2")
                 
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         office.addBinding(new Binding(condition2, queue3, false), false);
        
         Binding b1 = office.getBindingForChannelID(queue1.getChannelID());
         assertNotNull(b1);
         assertEquals(queue1, b1.queue);
         assertEquals(condition1, b1.condition);
        
         Binding b2 = office.getBindingForChannelID(queue2.getChannelID());
         assertNotNull(b2);
         assertEquals(queue2, b2.queue);
         assertEquals(condition1, b2.condition);
        
         Binding b3 = office.getBindingForChannelID(queue3.getChannelID());
         assertNotNull(b3);
         assertEquals(queue3, b3.queue);
         assertEquals(condition2, b3.condition);
        
         office.removeBinding("queue1", false);
        
         b1 = office.getBindingForChannelID(queue1.getChannelID());
         assertNull(b1);

         b2 =office.getBindingForChannelID(queue2.getChannelID());
         assertNotNull(b2);
         assertEquals(queue2, b2.queue);
         assertEquals(condition1, b2.condition);
        
         b3 = office.getBindingForChannelID(queue3.getChannelID());
         assertNotNull(b3);
         assertEquals(queue3, b3.queue);
         assertEquals(condition2, b3.condition);
        
         office.removeBinding("queue2", false);
         office.removeBinding("queue3", false);
        
         b1 = office.getBindingForChannelID(queue1.getChannelID());
         assertNull(b1);

         b2 = office.getBindingForChannelID(queue2.getChannelID());
         assertNull(b2);
         b3 = office.getBindingForChannelID(queue3.getChannelID());
         assertNull(b3);                    

      }
      finally
      {
         if (office != null)
         {
            office.stop();
         }
       
      }
        
   }

   public void testRouteNonPersistentWithFilter() throws Throwable
   {
      routeWithFilter(false);
   }
  
   public void testRoutePersistentWithFilter() throws Throwable
   {
      routeWithFilter(true);
   }
  
   public final void testRoutePersistent() throws Throwable
   {
      route(true);
   }
  
   public final void testRouteNonPersistent() throws Throwable
   {
      route(false);
   }
  
   public final void testRouteTransactionalPersistent() throws Throwable
   {
      routeTransactional(true);
   }
  
   public final void testRouteTransactionalNonPersistent() throws Throwable
   {
      routeTransactional(false);
   }
        
   public final void testRouteInactive() throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         Condition condition1 = new SimpleCondition("topic1");
        
         MessagingQueue queue1 =  new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();
        
         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 =  new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
        
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue3.activate();
        
         postOffice.addBinding(new Binding(condition1, queue3, false), false);
        
         MessagingQueue queue4 = new MessagingQueue(1, "queue4", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue4.activate();
        
         Condition condition2 = new SimpleCondition("topic2");
        
        
         postOffice.addBinding(new Binding(condition2, queue4, false), false);
        
         MessagingQueue queue5 = new MessagingQueue(1, "queue5", channelIDManager.getID(), ms, pm, false,-1, null, false);
         queue5.activate();
        
         postOffice.addBinding(new Binding(condition2, queue5, false), false);
        
         MessagingQueue queue6 = new MessagingQueue(1, "queue6", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue6.activate();
        
         postOffice.addBinding(new Binding(condition2, queue6, false), false);
     
         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue1.getLocalDistributor().add(receiver1);
         SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue2.getLocalDistributor().add(receiver2);
         SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue3.getLocalDistributor().add(receiver3);
         SimpleReceiver receiver4 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue4.getLocalDistributor().add(receiver4);
         SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue5.getLocalDistributor().add(receiver5);
         SimpleReceiver receiver6 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue6.getLocalDistributor().add(receiver6);
        
         queue1.deactivate();
         queue2.deactivate();
         queue5.deactivate();
         queue6.deactivate();
        
         assertFalse(queue1.isActive());     
         assertFalse(queue2.isActive());
         assertFalse(queue5.isActive());
         assertFalse(queue6.isActive());
         assertTrue(queue3.isActive());
         assertTrue(queue4.isActive());     
        
         Message msg1 = CoreMessageFactory.createCoreMessage(1);     
         MessageReference ref1 = ms.reference(msg1);
        
         RouteResult routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.getResult());
        
         List msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         Message msgRec = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec);
         receiver3.acknowledge(msgRec, null);
         msgs = queue3.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty())
        
         msgs = receiver4.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver5.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver6.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver3.clear();
                    
         Message msg2 = CoreMessageFactory.createCoreMessage(2);     
         MessageReference ref2 = ms.reference(msg2);
        
         routed = postOffice.route(ref2, condition2, null);     
         assertTrue(routed.getResult());
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());     
        
         msgs = receiver4.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg2 == msgRec);
         receiver4.acknowledge(msgRec, null);
         msgs = queue4.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty())
        
         msgs = receiver5.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver6.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }
        
      }
  
   }

   public final void testRouteNoQueue() throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();
        
         postOffice.addBinding(new Binding(new SimpleCondition("condition1"), queue1, false), false);
             
         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
        
         queue1.getLocalDistributor().add(receiver1);
  
         assertTrue(queue1.isActive());
  
         Message msg1 = CoreMessageFactory.createCoreMessage(1);     
        
         MessageReference ref1 = ms.reference(msg1);
        
         RouteResult routed = postOffice.route(ref1, new SimpleCondition("this won't match anything"), null);
        
         assertFalse(routed.getResult());
              
         List msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty())
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }
        
      }
   }

   public final void testRouteInactive2() throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         Condition condition1 = new SimpleCondition("topic1");
        
         MessagingQueue queue1 =  new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();

         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 =  new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
        
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue3.activate();
        
         postOffice.addBinding(new Binding(condition1, queue3, false), false);

         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue1.getLocalDistributor().add(receiver1);
         SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue2.getLocalDistributor().add(receiver2);
         SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue3.getLocalDistributor().add(receiver3);
        
         Message msg1 = CoreMessageFactory.createCoreMessage(1);     
         MessageReference ref1 = ms.reference(msg1);
        
         RouteResult routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.getResult());
        
         List msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         receiver1.clear();
         receiver2.clear();
         receiver3.clear();
        
         postOffice.addInactiveCondition(condition1);
        
         msg1 = CoreMessageFactory.createCoreMessage(1);     
         ref1 = ms.reference(msg1);
        
         try
         {
            postOffice.route(ref1, condition1, null);     
            fail("Didn't get expected exception");
         }
         catch (IllegalStateException e)
         {
            //ignore
         }
        
         //none received
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());

         postOffice.removeInactiveCondition(condition1);
        
         msg1 = CoreMessageFactory.createCoreMessage(1);     
         ref1 = ms.reference(msg1);

         //all received
         routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.getResult());
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
        
         receiver1.clear();
         receiver2.clear();
         receiver3.clear();
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }
        
      }
  
   }  
  

   public final void testRouteTopicPersistenceFailure() throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         Condition condition1 = new SimpleCondition("topic1");
        
         FakeCoreQueue queue1 =  new FakeCoreQueue("queue1", 1);
         queue1.activate();

         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         FakeCoreQueue queue2 =  new FakeCoreQueue("queue2", 2);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
        
         FakeCoreQueue queue3 = new FakeCoreQueue("queue3", 3);
         queue3.activate();
        
         postOffice.addBinding(new Binding(condition1, queue3, false), false);
        
         queue2.setFailure(true);
        
         Message msg1 = CoreMessageFactory.createCoreMessage(1);
         MessageReference ref1 = ms.reference(msg1);
        
         RouteResult routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.isFailue());
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }
        
      }
  
   }  
  
   // Package protected ---------------------------------------------

   // Protected -----------------------------------------------------
  
     
   protected void setUp() throws Exception
   {
      super.setUp();

   }

   protected void tearDown() throws Exception
   {
      super.tearDown();
   }

   // Private -------------------------------------------------------
  
   private void route(boolean persistentMessage) throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
     
         Condition condition1 = new SimpleCondition("topic1");
        
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();
        
         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
        
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue3.activate();
        
         postOffice.addBinding(new Binding(condition1, queue3, false), false);
        
         MessagingQueue queue4 = new MessagingQueue(1, "queue4", channelIDManager.getID(), ms, pm, true, -1, null, false);
         queue4.activate();
        
         Condition condition2 = new SimpleCondition("topic2");
        
         postOffice.addBinding(new Binding(condition2, queue4, false), false);
        
         MessagingQueue queue5 = new MessagingQueue(1, "queue5", channelIDManager.getID(), ms, pm, true, -1, null, false);
         queue5.activate();
        
         postOffice.addBinding(new Binding(condition2, queue5, false), false);
        
         MessagingQueue queue6 = new MessagingQueue(1, "queue6", channelIDManager.getID(), ms, pm, true, -1, null, false);
         queue6.activate();
        
         postOffice.addBinding(new Binding(condition2, queue6, false), false);
     
         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue1.getLocalDistributor().add(receiver1);
         SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue2.getLocalDistributor().add(receiver2);
         SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue3.getLocalDistributor().add(receiver3);
         SimpleReceiver receiver4 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue4.getLocalDistributor().add(receiver4);
         SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue5.getLocalDistributor().add(receiver5);
         SimpleReceiver receiver6 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue6.getLocalDistributor().add(receiver6);
        
         assertTrue(queue1.isActive());     
         assertTrue(queue2.isActive());
         assertTrue(queue3.isActive());     
         assertTrue(queue4.isActive());
         assertTrue(queue5.isActive());     
         assertTrue(queue6.isActive());
        
         Message msg1 = CoreMessageFactory.createCoreMessage(1, persistentMessage, null);     
         MessageReference ref1 = ms.reference(msg1);
        
         RouteResult routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.getResult());
        
         List msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         Message msgRec = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec);
         receiver1.acknowledge(msgRec, null);
         msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec);
         receiver2.acknowledge(msgRec, null);
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec);
         receiver3.acknowledge(msgRec, null);
         msgs = queue3.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver4.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver5.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver6.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver1.clear();
         receiver2.clear();
         receiver3.clear();
        
        
         Message msg2 = CoreMessageFactory.createCoreMessage(2, persistentMessage, null);     
         MessageReference ref2 = ms.reference(msg2);
        
         routed = postOffice.route(ref2, condition2, null);     
         assertTrue(routed.getResult());
        
         msgs = receiver4.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg2 == msgRec);
         receiver4.acknowledge(msgRec, null);
         msgs = queue4.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver5.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg2 == msgRec);
         receiver5.acknowledge(msgRec, null);
         msgs = queue5.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver6.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());
         msgRec = (Message)msgs.get(0);
         assertTrue(msg2 == msgRec);
         receiver6.acknowledge(msgRec, null);
         msgs = queue6.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());   
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         postOffice.removeBinding("queue1", false);
         postOffice.removeBinding("queue2", false);
         postOffice.removeBinding("queue3", false);
         postOffice.removeBinding("queue4", false);
         postOffice.removeBinding("queue5", false);
         postOffice.removeBinding("queue6", false);        
        
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }        
      }
   }
  
   private void routeTransactional(boolean persistentMessage) throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         Condition condition1 = new SimpleCondition("topic1");
     
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue1.activate();
        
         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, true,-1, null, false);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
         
         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue1.getLocalDistributor().add(receiver1);

         SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);;
         queue2.getLocalDistributor().add(receiver2);
  
         assertTrue(queue1.isActive());
         assertTrue(queue2.isActive());
  
         Message msg1 = CoreMessageFactory.createCoreMessage(1, persistentMessage, null);     
         MessageReference ref1 = ms.reference(msg1);
        
         Message msg2 = CoreMessageFactory.createCoreMessage(2, persistentMessage, null);     
         MessageReference ref2 = ms.reference(msg2);
        
         Transaction tx = tr.createTransaction();
        
         RouteResult routed = postOffice.route(ref1, condition1, tx);           
         assertTrue(routed.getResult());
         routed = postOffice.route(ref2, condition1, tx);           
         assertTrue(routed.getResult());
              
         List msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         tx.commit();
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         Message msgRec1 = (Message)msgs.get(0);
         Message msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg1);
         assertTrue(msgRec2 == msg2);
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg1);
         assertTrue(msgRec2 == msg2);
        
         //Acknowledge
         receiver1.acknowledge(msgRec1, null);
         receiver1.acknowledge(msgRec2, null);
        
         receiver2.acknowledge(msgRec1, null);
         receiver2.acknowledge(msgRec2, null);
  
         msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver1.clear();
        
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver2.clear();
             
         Message msg3 = CoreMessageFactory.createCoreMessage(3, persistentMessage, null);     
         MessageReference ref3 = ms.reference(msg3);
        
         Message msg4 = CoreMessageFactory.createCoreMessage(4, persistentMessage, null);     
         MessageReference ref4 = ms.reference(msg4);
        
         tx = tr.createTransaction();
        
         routed = postOffice.route(ref3, condition1, tx);           
         assertTrue(routed.getResult());
         routed = postOffice.route(ref4, condition1, tx);           
         assertTrue(routed.getResult());
              
         msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         tx.rollback();
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver1.clear();
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
        
         receiver2.clear();
        
        
         Message msg5 = CoreMessageFactory.createCoreMessage(5, persistentMessage, null);     
         MessageReference ref5 = ms.reference(msg5);
        
         Message msg6 = CoreMessageFactory.createCoreMessage(6, persistentMessage, null);     
         MessageReference ref6 = ms.reference(msg6);
              
         routed = postOffice.route(ref5, new SimpleCondition("topic1"), null);           
         assertTrue(routed.getResult());
         routed = postOffice.route(ref6, new SimpleCondition("topic1"), null);           
         assertTrue(routed.getResult());
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg5);
         assertTrue(msgRec2 == msg6);
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg5);
         assertTrue(msgRec2 == msg6);
        
         //Acknowledge transactionally
        
         tx = tr.createTransaction();
        
         receiver1.acknowledge(msgRec1, tx);
         receiver1.acknowledge(msgRec2, tx);
        
         receiver2.acknowledge(msgRec1, tx);
         receiver2.acknowledge(msgRec2, tx);
        
         int deliveringCount = queue1.getDeliveringCount();
         assertEquals(2, deliveringCount);
        
         deliveringCount = queue2.getDeliveringCount();
         assertEquals(2, deliveringCount);
        
         tx.commit();
        
         msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
              
         receiver1.clear();
        
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());
              
         receiver2.clear();
        
         Message msg7 = CoreMessageFactory.createCoreMessage(7, persistentMessage, null);     
         MessageReference ref7 = ms.reference(msg7);
        
         Message msg8 = CoreMessageFactory.createCoreMessage(8, persistentMessage, null);     
         MessageReference ref8 = ms.reference(msg8);
              
         routed = postOffice.route(ref7, new SimpleCondition("topic1"), null);           
         assertTrue(routed.getResult());
         routed = postOffice.route(ref8, new SimpleCondition("topic1"), null);           
         assertTrue(routed.getResult());
        
         msgs = receiver1.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg7);
         assertTrue(msgRec2 == msg8);
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(2, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msgRec1 == msg7);
         assertTrue(msgRec2 == msg8);
        
         //Acknowledge transactionally
        
         tx = tr.createTransaction();
        
         receiver1.acknowledge(msgRec1, tx);
         receiver1.acknowledge(msgRec2, tx);
        
         receiver2.acknowledge(msgRec1, tx);
         receiver2.acknowledge(msgRec2, tx);
        
         deliveringCount = queue1.getDeliveringCount();
         assertEquals(2, deliveringCount);
        
         deliveringCount = queue2.getDeliveringCount();
         assertEquals(2, deliveringCount);
        
         tx.rollback();
        
         deliveringCount = queue1.getDeliveringCount();
         assertEquals(2, deliveringCount);                 
        
         receiver1.acknowledge(msgRec1, null);
         receiver1.acknowledge(msgRec2, null);
        
         deliveringCount = queue2.getDeliveringCount();
         assertEquals(2, deliveringCount);    
        
        
         receiver2.acknowledge(msgRec1, null);
         receiver2.acknowledge(msgRec2, null);        
        
         postOffice.removeBinding("queue1", false);
         postOffice.removeBinding("queue2", false);
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }        
      }
   }
  
   private void routeWithFilter(boolean persistentMessage) throws Throwable
   {
      PostOffice postOffice = null;
     
      try
      {     
         postOffice = createNonClusteredPostOffice();
        
         SimpleFilter filter = new SimpleFilter(2);
        
         Condition condition1 = new SimpleCondition("topic1");
     
         MessagingQueue queue1 = new MessagingQueue(1, "queue1", channelIDManager.getID(), ms, pm, false, -1, filter, false);
         queue1.activate();
        
         postOffice.addBinding(new Binding(condition1, queue1, false), false);
        
         MessagingQueue queue2 = new MessagingQueue(1, "queue2", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue2.activate();
        
         postOffice.addBinding(new Binding(condition1, queue2, false), false);
        
         MessagingQueue queue3 = new MessagingQueue(1, "queue3", channelIDManager.getID(), ms, pm, false, -1, null, false);
         queue3.activate();
        
         postOffice.addBinding(new Binding(condition1, queue3, false), false);
        
         SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue1.getLocalDistributor().add(receiver1);
         SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue2.getLocalDistributor().add(receiver2);
         SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
         queue3.getLocalDistributor().add(receiver3);
        
         Message msg1 = CoreMessageFactory.createCoreMessage(1);     
         MessageReference ref1 = ms.reference(msg1);        
         RouteResult routed = postOffice.route(ref1, condition1, null);     
         assertTrue(routed.getResult());
         Message msg2 = CoreMessageFactory.createCoreMessage(2);     
         MessageReference ref2 = ms.reference(msg2);        
         routed = postOffice.route(ref2, condition1, null);     
         assertTrue(routed.getResult());
         Message msg3 = CoreMessageFactory.createCoreMessage(3);     
         MessageReference ref3 = ms.reference(msg3);        
         routed = postOffice.route(ref3, condition1, null);     
         assertTrue(routed.getResult());
        
         List msgs = receiver1.getMessages();
         assertNotNull(msgs);          
         assertEquals(1, msgs.size());                 
         Message msgRec = (Message)msgs.get(0);
         assertTrue(msg2 == msgRec);
         receiver1.acknowledge(msgRec, null);
         msgs = queue1.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty())
        
         msgs = receiver2.getMessages();
         assertNotNull(msgs);
         assertEquals(3, msgs.size());
         Message msgRec1 = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec1);
         Message msgRec2 = (Message)msgs.get(1);
         assertTrue(msg2 == msgRec2);
         Message msgRec3 = (Message)msgs.get(2);
         assertTrue(msg3 == msgRec3);
         
         receiver2.acknowledge(msgRec1, null);
         receiver2.acknowledge(msgRec2, null);
         receiver2.acknowledge(msgRec3, null);
         msgs = queue2.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty())
        
         msgs = receiver3.getMessages();
         assertNotNull(msgs);
         assertEquals(3, msgs.size());
         msgRec1 = (Message)msgs.get(0);
         assertTrue(msg1 == msgRec1);
         msgRec2 = (Message)msgs.get(1);
         assertTrue(msg2 == msgRec2);
         msgRec3 = (Message)msgs.get(2);
         assertTrue(msg3 == msgRec3);
         
         receiver3.acknowledge(msgRec1, null);
         receiver3.acknowledge(msgRec2, null);
         receiver3.acknowledge(msgRec3, null);
         msgs = queue3.browse(null);
         assertNotNull(msgs);
         assertTrue(msgs.isEmpty());         
      }
      finally
      {
         if (postOffice != null)
         {
            postOffice.stop();
         }
       
      }
   }

   // Inner classes -------------------------------------------------
   class FakeCoreQueue implements org.jboss.messaging.core.contract.Queue
   {
      private String queueName;
     
      private boolean failure = false;
     
      private long chid;

      public FakeCoreQueue(String name, long chid) throws JMSException
      {
         queueName = name;
         this.chid = chid;
      }

      /**
       * @param b
       */
      public void setFailure(boolean b)
      {
         failure = b;
      }

      public String getName()
      {
         return queueName;
      }

      public void addAllToRecoveryArea(int nodeID, Map ids)
      {
      }

      public void addToRecoveryArea(int nodeID, long messageID, String sessionID)
      {
      }

      public int getDownCacheSize()
      {
         return 0;
      }

      public Filter getFilter()
      {
         return null;
      }

      public int getFullSize()
      {
         return 0;
      }

      public Distributor getLocalDistributor()
      {
         return null;
      }

      public int getNodeID()
      {
         return 1;
      }

      public int getPageSize()
      {
         return 0;
      }

      public long getRecoverDeliveriesTimeout()
      {
         return 0;
      }

      public Map getRecoveryArea()
      {
         return null;
      }

      public int getRecoveryMapSize()
      {
         return 0;
      }

      public Distributor getRemoteDistributor()
      {
         return null;
      }

      public Delivery handleMove(MessageReference ref, long sourceChannelID)
      {
         return null;
      }

      public boolean isClustered()
      {
         return false;
      }

      public void mergeIn(long channelID, int nodeID) throws Exception
      {
      }

      public List recoverDeliveries(List messageIds)
      {
         return null;
      }

      public void registerSucker(MessageSucker sucker)
      {
      }

      public void removeAllFromRecoveryArea(int nodeID)
      {
      }

      public void removeFromRecoveryArea(int nodeID, long messageID)
      {
      }

      public void removeStrandedReferences(String sessionID)
      {
      }

      public void setPagingParams(int fullSize, int pageSize, int downCacheSize)
      {
      }

      public boolean unregisterSucker(MessageSucker sucker)
      {
         return false;
      }

      public void activate()
      {
      }

      public List browse(Filter filter)
      {
         return null;
      }

      public void close()
      {
      }

      public void deactivate()
      {
      }

      public void deliver()
      {
      }

      public long getChannelID()
      {
         return chid;
      }

      public int getDeliveringCount()
      {
         return 0;
      }

      public int getMaxSize()
      {
         return 0;
      }

      public int getMessageCount()
      {
         return 0;
      }

      public int getMessagesAdded()
      {
         return 0;
      }

      public int getScheduledCount()
      {
         return 0;
      }

      public boolean isActive()
      {
         return false;
      }

      public boolean isRecoverable()
      {
         return false;
      }

      public void load() throws Exception
      {
      }

      public void removeAllReferences() throws Throwable
      {
      }

      public void setMaxSize(int newSize)
      {
      }

      public void unload() throws Exception
      {
      }

      public void acknowledge(Delivery d, Transaction tx) throws Throwable
      {
      }

      public void acknowledgeNoPersist(Delivery d) throws Throwable
      {
      }

      public void cancel(Delivery d) throws Throwable
      {
      }

      public Delivery handle(DeliveryObserver observer, MessageReference reference, Transaction tx)
      {
         if (failure)
         {
            return null;
         }
         return new SimpleDelivery();
      }

      public void setClustered(boolean isClustered)
      {
      }

      public void staticMerge(org.jboss.messaging.core.contract.Queue queue) throws Exception
      {
      }

      public List listInProcessMessages()
      {
         return null;
      }

      public void setDeliveringCounterLevel(int delCounterLevel)
      {
      }
   }

}

TOP

Related Classes of org.jboss.test.messaging.core.postoffice.PostOfficeTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.