Package org.jboss.messaging.core.impl

Examples of org.jboss.messaging.core.impl.RoundRobinDistributor


          
   }
  
   public void testNoReceivers()
   {
      Distributor distributor = new RoundRobinDistributor();

      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
     
      Delivery del = distributor.handle(null, ref, null);
      assertNull(del);
     
      del = distributor.handle(null, ref, null);
      assertNull(del);
     
      del = distributor.handle(null, ref, null);
      assertNull(del);   
   }
View Full Code Here


   /**
    * http://jira.jboss.org/jira/browse/JBMESSAGING-491
    */
   public void testDeadlock() throws Exception
   {
      final Distributor distributor = new RoundRobinDistributor();

      LockingReceiver receiver = new LockingReceiver();
      distributor.add(receiver);

      final Thread t = new Thread(new Runnable()
      {
         public void run()
         {
            // sends the message to the router on a separate thread
           
            Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
           
            MessageReference ref = ms.reference(msg);
           
            distributor.handle(null, ref, null);
         }
      }, "Message sending thread");

      // start the sending tread, which will immediately grab the router's "receivers" lock, and it
      // will sleep for 3 seconds before attempting to grab LockingReceiver's lock.
      t.start();


      // in the mean time, the main thread immediately grabs receiver's lock ...

      synchronized(receiver.getLock())
      {
         // ... sleeps for 500 ms to allow sender thread time to grab router's "receivers" lock
         Thread.sleep(500);

         // ... and try to remove the receiver form router
         distributor.remove(receiver);
      }

      // normally, receiver removal should be immediate, as the router releases receiver's lock
      // immediately, so test should complete. Pre-JBMESSAGING-491, the test deadlocks.
   }
View Full Code Here

   // Public --------------------------------------------------------
  
   public void testAllAccepting()
   {
      Distributor distributor = new RoundRobinDistributor();
     
      final int numReceivers = 10;
     
      SimpleReceiver[] receivers = new SimpleReceiver[numReceivers];
     
      for (int i = 0; i < numReceivers; i++)
      {
         receivers[i] = new SimpleReceiver();
        
         distributor.add(receivers[i]);
      }
     
      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
           
      Delivery del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 2);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 3);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 4);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 5);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 6);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 7);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 8);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 9);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 2);
      resetReceivers(receivers);
     
   }
View Full Code Here

     
   }
  
   public void testSomeClosed()
   {
      Distributor distributor = new RoundRobinDistributor();
     
      final int numReceivers = 10;
     
      SimpleReceiver[] receivers = new SimpleReceiver[numReceivers];
     
      for (int i = 0; i < numReceivers; i++)
      {
         receivers[i] = new SimpleReceiver();
        
         distributor.add(receivers[i]);
      }
     
      receivers[2].closed = true;
     
      receivers[5].closed = true;
      receivers[6].closed = true;
     
      receivers[9].closed = true;
     
      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
     
      Delivery del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 3);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 4);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 7);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 8);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 3);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 4);
      resetReceivers(receivers);
     
     
View Full Code Here

     
   }
  
   public void testAllClosed()
   {
      Distributor distributor = new RoundRobinDistributor();
     
      final int numReceivers = 10;
     
      SimpleReceiver[] receivers = new SimpleReceiver[numReceivers];
     
      for (int i = 0; i < numReceivers; i++)
      {
         receivers[i] = new SimpleReceiver();
        
         receivers[i].closed = true;
        
         distributor.add(receivers[i]);
      }
     
     
      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
     
      Delivery del = distributor.handle(null, ref, null);
      assertNull(del);

      del = distributor.handle(null, ref, null);
      assertNull(del);
     
      del = distributor.handle(null, ref, null);
      assertNull(del);

     
     
   }
View Full Code Here

     
   }
  
   public void testSomeNoSelectorMatch()
   {
      Distributor distributor = new RoundRobinDistributor();
     
      final int numReceivers = 10;
     
      SimpleReceiver[] receivers = new SimpleReceiver[numReceivers];
     
      for (int i = 0; i < numReceivers; i++)
      {
         receivers[i] = new SimpleReceiver();
        
         distributor.add(receivers[i]);
      }
     
      receivers[2].selectorMatches = false;
     
      receivers[5].selectorMatches = false;
      receivers[6].selectorMatches = false;
     
      receivers[9].selectorMatches = false;
     
      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
     
      Delivery del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 3);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 4);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 7);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 8);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 0);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 1);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 3);
      resetReceivers(receivers);
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      checkReceiverGotRef(receivers, 4);
      resetReceivers(receivers);
     
   }
View Full Code Here

     
   }
  
   public void testAllNoSelectorMatch()
   {
      Distributor distributor = new RoundRobinDistributor();
     
      final int numReceivers = 10;
     
      SimpleReceiver[] receivers = new SimpleReceiver[numReceivers];
     
      for (int i = 0; i < numReceivers; i++)
      {
         receivers[i] = new SimpleReceiver();
        
         receivers[i].selectorMatches = false;
        
         distributor.add(receivers[i]);
      }
     
     
      Message msg = CoreMessageFactory.createCoreMessage(123, true, null);
     
      MessageReference ref = ms.reference(msg);
     
      Delivery del = distributor.handle(null, ref, null);
      assertNotNull(del);
      assertFalse(del.isSelectorAccepted());
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      assertFalse(del.isSelectorAccepted());
     
      del = distributor.handle(null, ref, null);
      assertNotNull(del);
      assertFalse(del.isSelectorAccepted());
          
   }
View Full Code Here

TOP

Related Classes of org.jboss.messaging.core.impl.RoundRobinDistributor

Copyright © 2018 www.massapicom. 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.