You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2007/09/18 03:33:05 UTC
svn commit: r576645 - in
/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message:
Message.java MessageSupport.java
Author: jdillon
Date: Mon Sep 17 18:33:04 2007
New Revision: 576645
URL: http://svn.apache.org/viewvc?rev=576645&view=rev
Log:
Add a sequence number to the message, mostly for debugging to make sure that ordering is correct(ish)
Modified:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/Message.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/Message.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/Message.java?rev=576645&r1=576644&r2=576645&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/Message.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/Message.java Mon Sep 17 18:33:04 2007
@@ -42,6 +42,8 @@
long getTimestamp();
+ long getSequence();
+
void setSession(IoSession session);
IoSession getSession();
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java?rev=576645&r1=576644&r2=576645&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java Mon Sep 17 18:33:04 2007
@@ -23,6 +23,7 @@
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
import org.apache.geronimo.gshell.common.tostring.ReflectionToStringBuilder;
import org.apache.mina.common.ByteBuffer;
@@ -37,12 +38,16 @@
public abstract class MessageSupport
implements Message
{
- private MessageType type;
+ private static final AtomicLong SEQUENCE_COUNTER = new AtomicLong(0);
+
+ private transient MessageType type;
private UUID id;
private UUID correlationId;
+ private long sequence;
+
private long timestamp;
private transient IoSession session;
@@ -57,6 +62,12 @@
this.id = UUID.randomUUID();
this.timestamp = System.currentTimeMillis();
+
+ //
+ // FIXME: This might end up skipping numbers, which while is okay, isn't really very nice
+ //
+
+ this.sequence = SEQUENCE_COUNTER.getAndIncrement();
}
public String toString() {
@@ -76,6 +87,8 @@
}
public void setCorrelationId(final UUID id) {
+ assert id != null;
+
ensureWritable();
this.correlationId = id;
@@ -85,6 +98,10 @@
return timestamp;
}
+ public long getSequence() {
+ return sequence;
+ }
+
public void setSession(final IoSession session) {
ensureWritable();
@@ -124,25 +141,25 @@
public void readExternal(final ByteBuffer buff) throws Exception {
assert buff != null;
- type = buff.getEnum(MessageType.class);
-
id = readUuid(buff);
correlationId = readUuid(buff);
timestamp = buff.getLong();
+
+ sequence = buff.getLong();
}
public void writeExternal(final ByteBuffer buff) throws Exception {
assert buff != null;
- buff.putEnum(type);
-
writeUuid(buff, id);
writeUuid(buff, correlationId);
buff.putLong(timestamp);
+
+ buff.putLong(sequence);
}
//