[hornetq-commits] JBoss hornetq SVN: r8911 - trunk/src/main/org/hornetq/ra/inflow.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Mar 4 06:20:13 EST 2010


Author: clebert.suconic at jboss.com
Date: 2010-03-04 06:20:12 -0500 (Thu, 04 Mar 2010)
New Revision: 8911

Modified:
   trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java
   trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java
Log:
Making multiple sessions on the resource adapter to share a same core-queue on topic subscriptions

Modified: trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java	2010-03-04 11:10:29 UTC (rev 8910)
+++ trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java	2010-03-04 11:20:12 UTC (rev 8911)
@@ -94,6 +94,9 @@
    private boolean isDeliveryTransacted;
 
    private HornetQDestination destination;
+   
+   /** The name of the temporary subscription name that all the sessions will share */
+   private SimpleString topicTemporaryQueue;
 
    private final List<HornetQMessageHandler> handlers = new ArrayList<HornetQMessageHandler>();
 
@@ -216,6 +219,8 @@
       return isTopic;
    }
 
+   
+   
    /**
     * Start the activation
     *
@@ -230,8 +235,24 @@
       deliveryActive.set(true);
       ra.getWorkManager().scheduleWork(new SetupActivation());
    }
+   
+   /**
+    * @return the topicTemporaryQueue
+    */
+   public SimpleString getTopicTemporaryQueue()
+   {
+      return topicTemporaryQueue;
+   }
 
    /**
+    * @param topicTemporaryQueue the topicTemporaryQueue to set
+    */
+   public void setTopicTemporaryQueue(SimpleString topicTemporaryQueue)
+   {
+      this.topicTemporaryQueue = topicTemporaryQueue;
+   }
+
+   /**
     * Stop the activation
     */
    public void stop()

Modified: trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java	2010-03-04 11:10:29 UTC (rev 8910)
+++ trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java	2010-03-04 11:20:12 UTC (rev 8911)
@@ -146,8 +146,16 @@
          SimpleString queueName;
          if (activation.isTopic())
          {
-            queueName = new SimpleString(UUID.randomUUID().toString());
-            session.createQueue(activation.getAddress(), queueName, selectorString, false);
+            if (activation.getTopicTemporaryQueue() == null)
+            {
+               queueName = new SimpleString(UUID.randomUUID().toString());
+               session.createQueue(activation.getAddress(), queueName, selectorString, false);
+               activation.setTopicTemporaryQueue(queueName);
+            }
+            else
+            {
+               queueName = activation.getTopicTemporaryQueue(); 
+            }
          }
          else
          {



More information about the hornetq-commits mailing list