[jboss-cvs] JBoss Messaging SVN: r5794 - in branches/Branch_1416_merge/src/main/org/jboss: jms/client/state and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 3 06:01:20 EST 2009


Author: gaohoward
Date: 2009-02-03 06:01:20 -0500 (Tue, 03 Feb 2009)
New Revision: 5794

Modified:
   branches/Branch_1416_merge/src/main/org/jboss/jms/client/container/ProducerAspect.java
   branches/Branch_1416_merge/src/main/org/jboss/jms/client/state/SessionState.java
   branches/Branch_1416_merge/src/main/org/jboss/jms/message/JBossMessage.java
   branches/Branch_1416_merge/src/main/org/jboss/messaging/core/impl/OrderingGroup.java
Log:
remove unnecessary sequence number stuff


Modified: branches/Branch_1416_merge/src/main/org/jboss/jms/client/container/ProducerAspect.java
===================================================================
--- branches/Branch_1416_merge/src/main/org/jboss/jms/client/container/ProducerAspect.java	2009-02-03 09:44:23 UTC (rev 5793)
+++ branches/Branch_1416_merge/src/main/org/jboss/jms/client/container/ProducerAspect.java	2009-02-03 11:01:20 UTC (rev 5794)
@@ -269,7 +269,6 @@
       {
          String grpName = producerState.getOrderingGroupName();
          messageToSend.setJBMOrderingGroupName(grpName);
-         messageToSend.setJBMOrderingGroupSeq(sessionState.getGroupSequenceNum(grpName));
       }
 
       // we now invoke the send(Message) method on the session, which will eventually be fielded

Modified: branches/Branch_1416_merge/src/main/org/jboss/jms/client/state/SessionState.java
===================================================================
--- branches/Branch_1416_merge/src/main/org/jboss/jms/client/state/SessionState.java	2009-02-03 09:44:23 UTC (rev 5793)
+++ branches/Branch_1416_merge/src/main/org/jboss/jms/client/state/SessionState.java	2009-02-03 11:01:20 UTC (rev 5794)
@@ -495,19 +495,6 @@
    {
       return "SessionState[" + sessionID + "]";
    }
-
-   /**
-    * Generate the sequential number for the ordering group
-    */
-   public long getGroupSequenceNum(String grpName)
-   {
-      OrderingGroupSeq seq = orderingGrpSeqMap.get(grpName);
-      if (seq == null) {
-         seq = new OrderingGroupSeq();
-         orderingGrpSeqMap.put(grpName, seq);
-      }
-      return seq.getNext();
-   }
    
    //remove the ordering group from map.
    public void removeOrderingGroup(String orderingGroupName)

Modified: branches/Branch_1416_merge/src/main/org/jboss/jms/message/JBossMessage.java
===================================================================
--- branches/Branch_1416_merge/src/main/org/jboss/jms/message/JBossMessage.java	2009-02-03 09:44:23 UTC (rev 5793)
+++ branches/Branch_1416_merge/src/main/org/jboss/jms/message/JBossMessage.java	2009-02-03 11:01:20 UTC (rev 5794)
@@ -116,9 +116,6 @@
    //Used in ordering group
    public static final String JBOSS_MESSAGING_ORDERING_GROUP_ID = "JBM_ORDERING_GROUP_ID";
    
-   //Used in ordering group
-   public static final String JBOSS_MESSAGING_ORDERING_GROUP_SEQ = "JBM_ORDERING_GROUP_SEQ";
-
    private static final Logger log = Logger.getLogger(JBossMessage.class);   
       
    // Static --------------------------------------------------------
@@ -471,12 +468,6 @@
       setStringProperty(JBOSS_MESSAGING_ORDERING_GROUP_ID, grpName);
    }
 
-   //Set the sequence number for this message.
-   public void setJBMOrderingGroupSeq(long groupSequenceNum) throws JMSException
-   {
-      setLongProperty(JBOSS_MESSAGING_ORDERING_GROUP_SEQ, groupSequenceNum);
-   }
-
    //We need to override getHeaders - so the JMSDestination header gets persisted to the db
    //This is called by the persistence manager
    public Map getHeaders()

Modified: branches/Branch_1416_merge/src/main/org/jboss/messaging/core/impl/OrderingGroup.java
===================================================================
--- branches/Branch_1416_merge/src/main/org/jboss/messaging/core/impl/OrderingGroup.java	2009-02-03 09:44:23 UTC (rev 5793)
+++ branches/Branch_1416_merge/src/main/org/jboss/messaging/core/impl/OrderingGroup.java	2009-02-03 11:01:20 UTC (rev 5794)
@@ -25,6 +25,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
 import javax.jms.JMSException;
 
@@ -45,7 +46,7 @@
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
-   private OrderingList<ReferenceHolder> sortedList = new OrderingList<ReferenceHolder>();
+   private List<ReferenceHolder> sortedList = new LinkedList<ReferenceHolder>();
 
    private HashMap<Long, ReferenceHolder> refMap = new HashMap<Long, ReferenceHolder>();
 
@@ -66,7 +67,9 @@
 
    // Public --------------------------------------------------------
    /**
-    * Adding a message to a sorted list
+    * Adding a message to a list. As messages are coming in order, we can just put
+    * the message to the end of the list.
+    * 
     * @param ref The message reference to be added
     * 
     * @throws JMSException 
@@ -77,9 +80,6 @@
       ReferenceHolder holder = refMap.get(mid);
       if (holder != null)
       {
-         // is there a case where the ref can be registered more than once?
-         // if not, we simply remove the addRef().
-         holder.addRef();
          return true;
       }
       try
@@ -105,12 +105,11 @@
     */
    public int isAvailable(MessageReference ref)
    {
-      ReferenceHolder holder = sortedList.getFirst();
-      if (holder == null)
-      {
+      if (sortedList.size() == 0) {
          return OrderingGroupMonitor.OK;
       }
-
+      
+      ReferenceHolder holder = sortedList.get(0);
       return holder.isAvailable(ref);
    }
 
@@ -121,17 +120,20 @@
     */
    public void unregister(MessageReference ref)
    {
-      ReferenceHolder holder = sortedList.getFirst();
+      if (sortedList.size() == 0) {
+         return;
+      }
+      ReferenceHolder holder = sortedList.get(0);
       if (holder == null)
       {
          return;
       }
       if (holder.matchMessage(ref))
       {
-         long count = holder.releaseSendnRef();
+         long count = holder.releaseRef();
          if (count == 0)
          {
-            sortedList.removeFirst();
+            sortedList.remove(0);
             refMap.remove(ref.getMessage().getMessageID());
          }
       }
@@ -143,47 +145,27 @@
    public boolean hasPendingMessage()
    {
       boolean result = false;
-      ReferenceHolder holder = sortedList.getFirst();
-      if (holder != null)
+      if (sortedList.size() == 0)
       {
-         if (holder.isPending())
-         {
-            // true if the sortedList has more to offer.
-            result = sortedList.size() > 1;
-         }
-         else
-         {
-            // means we still have the first un-sent.
-            result = true;
-         }
+         return result;
       }
+      ReferenceHolder holder = sortedList.get(0);
+      // true if the sortedList has more to offer.
+      result = sortedList.size() > 1;
       return result;
    }
 
-   public void unmarkSending(MessageReference ref)
-   {
-      ReferenceHolder holder = sortedList.getFirst();
-      if (holder == null)
-      {
-         return;
-      }
-      if (holder.matchMessage(ref))
-      {
-         holder.unmarkSending();
-      }
-   }
-
    /**
     * Set the flag that the Message is being delivered.
     * @param ref
     */
    public void markSending(MessageReference ref)
    {
-      ReferenceHolder holder = sortedList.getFirst();
-      if (holder == null)
+      if (sortedList.size() == 0)
       {
          return;
       }
+      ReferenceHolder holder = sortedList.get(0);
       if (holder.matchMessage(ref))
       {
          holder.markSending();
@@ -205,81 +187,9 @@
 
 }
 
-/*
- * An implementation of a sorted list.
- * For convenience, it stores the elements in descending order.
- */
-class OrderingList<T extends Comparable<T>>
+class ReferenceHolder
 {
-   private LinkedList<T> list = new LinkedList<T>();
 
-   /**
-    * this is a simple stupid implementation. It assumes that messages with
-    * higher sequence numbers come later than those with lower sequence.
-    * It starts with the top of the list and move downwards the end of the list 
-    * when finding a right place for an entry.
-    */
-   public void add(T ref)
-   {
-      Iterator<T> iter = list.iterator();
-      int index = 0;
-      T elem = null;
-      while (iter.hasNext())
-      {
-         elem = iter.next();
-         if (elem.compareTo(ref) <= 0)
-         {
-            // should be before this elem
-            break;
-         }
-         index++;
-      }
-      if (index >= list.size())
-      {
-         list.add(ref);
-      }
-      else
-      {
-         list.add(index, ref);
-      }
-   }
-
-   /**
-    * @return
-    */
-   public int size()
-   {
-      return list.size();
-   }
-
-   /**
-    * Note: we are in descending order!
-    */
-   public void removeFirst()
-   {
-      if (!list.isEmpty())
-      {
-         list.removeLast();
-      }
-   }
-
-   /**
-    * Note we are in descending order!
-    */
-   public T getFirst()
-   {
-      if (list.isEmpty())
-      {
-         return null;
-      }
-      return list.getLast();
-   }
-
-}
-
-class ReferenceHolder implements Comparable<ReferenceHolder>
-{
-
    private Long seq;
 
    private MessageReference ref;
@@ -291,7 +201,6 @@
    public ReferenceHolder(MessageReference r) throws JMSException
    {
       ref = r;
-      seq = getSeq(this);
       refCount = 1;
       pendingSentCount = 0;
    }
@@ -371,25 +280,4 @@
       return ref;
    }
 
-   public int compareTo(ReferenceHolder o)
-   {
-      Long inSeq = 0L;
-      try
-      {
-         inSeq = getSeq(o);
-      }
-      catch (JMSException e)
-      {
-         // the exception is not likely to happen here.
-      }
-      return seq.compareTo(inSeq);
-   }
-
-   private static Long getSeq(ReferenceHolder o) throws JMSException
-   {
-      JBossMessage msg = (JBossMessage)o.ref.getMessage();
-      Long seq = msg.getLongProperty(JBossMessage.JBOSS_MESSAGING_ORDERING_GROUP_SEQ);
-      return seq;
-   }
-
 }




More information about the jboss-cvs-commits mailing list