[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