You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2014/10/07 14:38:05 UTC

[1/4] git commit: update JMSXGroupSeq interceptor propertyExists handling

Repository: qpid-jms
Updated Branches:
  refs/heads/master 4723c5a1f -> 5c99fafaf


update JMSXGroupSeq interceptor propertyExists handling


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/cbf24641
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/cbf24641
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/cbf24641

Branch: refs/heads/master
Commit: cbf246415cae13176aad9ac565e462ce95eaf784
Parents: 4723c5a
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Oct 7 12:22:41 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Oct 7 12:22:41 2014 +0100

----------------------------------------------------------------------
 .../org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java | 2 +-
 .../apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cbf24641/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java
index 9f703a0..299bfb4 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepter.java
@@ -386,7 +386,7 @@ public class JmsMessagePropertyIntercepter {
 
             @Override
             public boolean propertyExists(JmsMessageFacade message) {
-                return message.getGroupId() != null;
+                return message.getGroupSequence() != 0;
             }
         });
         PROPERTY_INTERCEPTERS.put(JMSX_USERID, new PropertyIntercepter() {

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cbf24641/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
index e9ad243..96ade98 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
@@ -572,7 +572,7 @@ public class JmsMessagePropertyIntercepterTest {
     @Test
     public void testJMSXGroupSeqInGetPropertyNamesWhenSet() throws JMSException {
         JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
-        Mockito.when(message.getGroupId()).thenReturn("GROUP_ID");
+        Mockito.when(message.getGroupSequence()).thenReturn(1);
         assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_GROUPSEQ));
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[3/4] git commit: ensure that clearing properties clears the property-defined group sequence value of the facade

Posted by ro...@apache.org.
ensure that clearing properties clears the property-defined group sequence value of the facade


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/1803e02b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/1803e02b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/1803e02b

Branch: refs/heads/master
Commit: 1803e02b5089496957431c9bca0be9c735eb260d
Parents: 9a5bee3
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Oct 7 13:23:26 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Oct 7 13:24:36 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/qpid/jms/message/JmsMessage.java  |  3 +++
 .../org/apache/qpid/jms/message/JmsMessageTest.java   | 14 ++++++++++++++
 .../facade/defaults/JmsDefaultMessageFactory.java     |  9 ++-------
 3 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1803e02b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
index 54ff011..89f2604 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
@@ -241,6 +241,9 @@ public class JmsMessage implements javax.jms.Message {
     @Override
     public void clearProperties() throws JMSException {
         facade.clearProperties();
+
+        //Clear property-defined values that are treated as facade-managed, such as GroupSequence.
+        facade.clearGroupSequence();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1803e02b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
index 144cee8..9f46bc6 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
@@ -33,9 +33,11 @@ import javax.jms.MessageNotWriteableException;
 
 import org.apache.qpid.jms.JmsDestination;
 import org.apache.qpid.jms.JmsTopic;
+import org.apache.qpid.jms.message.facade.JmsMessageFacade;
 import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -272,6 +274,18 @@ public class JmsMessageTest {
     }
 
     @Test
+    public void testClearPropertiesClearsFacadeGroupSequence() throws JMSException {
+        JmsMessageFacade facade = Mockito.mock(JmsMessageFacade.class);
+        JmsMessage msg = new JmsMessage(facade);
+
+        Mockito.verify(facade, Mockito.never()).clearGroupSequence();
+
+        msg.clearProperties();
+
+        Mockito.verify(facade).clearGroupSequence();
+    }
+
+    @Test
     public void testPropertyExists() throws JMSException {
         JmsMessage msg = factory.createMessage();
         msg.setStringProperty("test", "test");

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1803e02b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
index 2e8aa0b..2c91bad 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
@@ -29,13 +29,8 @@ import org.apache.qpid.jms.message.JmsStreamMessage;
 import org.apache.qpid.jms.message.JmsTextMessage;
 
 /**
- * Default implementation of the ProviderMessageFactory that create simple
- * generic javax.jms.Message types that can be sent to any Provider instance.
- *
- * TODO: Once the AMQP Message Facade stuff is done we should move this factory
- *       and the default JmsMessageFacade implementations into the test package
- *       since their primary use will be to test the JMS spec compliance of the
- *       JmsMessage classes.
+ * Implementation of the JmsMessageFactory that create simple
+ * javax.jms.Message instances with test facades.
  */
 public class JmsDefaultMessageFactory implements JmsMessageFactory {
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/4] git commit: update group sequence handling to match mapping doc, add separate method to clear group-sequence field without setting it to 0

Posted by ro...@apache.org.
update group sequence handling to match mapping doc, add separate method to clear group-sequence field without setting it to 0


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/9a5bee31
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/9a5bee31
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/9a5bee31

Branch: refs/heads/master
Commit: 9a5bee310fd0f411ead4a4fc5090c542d855d5d0
Parents: cbf2464
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Oct 7 12:54:52 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Oct 7 12:54:52 2014 +0100

----------------------------------------------------------------------
 .../jms/message/facade/JmsMessageFacade.java    |   5 +
 .../amqp/message/AmqpJmsMessageFacade.java      |  17 ++-
 .../defaults/JmsDefaultMessageFacade.java       |   5 +
 .../amqp/message/AmqpJmsMessageFacadeTest.java  | 115 +++++++++++++++----
 4 files changed, 114 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9a5bee31/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
index 01be4d6..e442c62 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
@@ -416,4 +416,9 @@ public interface JmsMessageFacade {
      *        the group sequence value to assign this message.
      */
     void setGroupSequence(int groupSequence);
+
+    /**
+     * Clears the group sequence value for this message.
+     */
+    void clearGroupSequence();
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9a5bee31/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
index c05f159..be350c0 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
@@ -713,9 +713,10 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade {
     @Override
     public int getGroupSequence() {
         if (message.getProperties() != null) {
-            UnsignedInteger sequence = message.getProperties().getGroupSequence();
-            if (sequence != null) {
-                return sequence.intValue();
+            UnsignedInteger groupSeqUint = message.getProperties().getGroupSequence();
+            if (groupSeqUint != null) {
+                // This wraps it into the negative int range if uint is over 2^31-1
+                return groupSeqUint.intValue();
             }
         }
 
@@ -724,10 +725,14 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade {
 
     @Override
     public void setGroupSequence(int groupSequence) {
-        if (groupSequence < 0 && message.getProperties() != null) {
+        // This wraps it into the upper uint range if a negative was provided
+        message.setGroupSequence(groupSequence);
+    }
+
+    @Override
+    public void clearGroupSequence() {
+        if (message.getProperties() != null) {
             message.getProperties().setGroupSequence(null);
-        } else if (groupSequence > 0) {
-            message.setGroupSequence(groupSequence);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9a5bee31/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
index 2b03987..547a6bc 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
@@ -337,6 +337,11 @@ public class JmsDefaultMessageFacade implements JmsMessageFacade {
         this.groupSequence = groupSequence;
     }
 
+    @Override
+    public void clearGroupSequence() {
+        this.groupSequence = 0;
+    }
+
     private void lazyCreateProperties() {
         if (properties == null) {
             properties = new HashMap<String, Object>();

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9a5bee31/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
index fe3ab20..0dfbc25 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
@@ -60,6 +60,7 @@ import org.mockito.Mockito;
 
 public class AmqpJmsMessageFacadeTest {
 
+    private static final long MAX_UINT = 0xFFFFFFFFL;
     private final JmsDestination consumerDestination = new JmsTopic("TestTopic");
 
     private AmqpJmsMessageFacade createNewMessageFacade() {
@@ -407,8 +408,7 @@ public class AmqpJmsMessageFacadeTest {
     // --- group-id field ---
 
     @Test
-    public void testGetGroupIdIsNullForNewMessage()
-    {
+    public void testGetGroupIdIsNullForNewMessage() {
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
         assertNull("expected GroupId to be null on new message", amqpMessageFacade.getGroupId());
@@ -420,8 +420,7 @@ public class AmqpJmsMessageFacadeTest {
      * as tested by {@link #testNewMessageHasNoUnderlyingPropertiesSection()}.
      */
     @Test
-    public void testSetGroupIdNullOnNewMessageDoesNotCreatePropertiesSection() throws Exception
-    {
+    public void testSetGroupIdNullOnNewMessageDoesNotCreatePropertiesSection() throws Exception {
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
         amqpMessageFacade.setGroupId(null);
@@ -435,8 +434,7 @@ public class AmqpJmsMessageFacadeTest {
      * as tested by {@link #testNewMessageHasNoUnderlyingPropertiesSection()}.
      */
     @Test
-    public void testSetGroupIdOnNewMessage() throws Exception
-    {
+    public void testSetGroupIdOnNewMessage() throws Exception {
         String groupId = "testValue";
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
@@ -452,8 +450,7 @@ public class AmqpJmsMessageFacadeTest {
      * Check that setting UserId null on the message causes any existing value to be cleared
      */
     @Test
-    public void testSetGroupIdNullOnMessageWithExistingGroupId() throws Exception
-    {
+    public void testSetGroupIdNullOnMessageWithExistingGroupId() throws Exception {
         String groupId = "testValue";
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
@@ -472,8 +469,7 @@ public class AmqpJmsMessageFacadeTest {
      * as tested by {@link #testNewMessageHasNoUnderlyingPropertiesSection()}.
      */
     @Test
-    public void testGetReplyToGroupIdIsNullForNewMessage()
-    {
+    public void testGetReplyToGroupIdIsNullForNewMessage() {
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
         assertNull("expected ReplyToGroupId to be null on new message", amqpMessageFacade.getReplyToGroupId());
@@ -483,8 +479,7 @@ public class AmqpJmsMessageFacadeTest {
      * Check that getting the ReplyToGroupId works on received messages without a properties section
      */
     @Test
-    public void testGetReplyToGroupIdWithReceivedMessageWithNoProperties()
-    {
+    public void testGetReplyToGroupIdWithReceivedMessageWithNoProperties() {
         Message message = Proton.message();
         AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message);
 
@@ -498,8 +493,7 @@ public class AmqpJmsMessageFacadeTest {
      * as tested by {@link #testNewMessageHasNoUnderlyingPropertiesSection()}.
      */
     @Test
-    public void testSetReplyToGroupIdNullOnNewMessageDoesNotCreatePropertiesSection() throws Exception
-    {
+    public void testSetReplyToGroupIdNullOnNewMessageDoesNotCreatePropertiesSection() throws Exception {
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
 
         amqpMessageFacade.setReplyToGroupId(null);
@@ -512,8 +506,7 @@ public class AmqpJmsMessageFacadeTest {
      * properties section, but no reply-to-group-id
      */
     @Test
-    public void testGetReplyToGroupIdWithReceivedMessageWithPropertiesButNoReplyToGroupId()
-    {
+    public void testGetReplyToGroupIdWithReceivedMessageWithPropertiesButNoReplyToGroupId() {
         Message message = Proton.message();
 
         Properties props = new Properties();
@@ -531,8 +524,7 @@ public class AmqpJmsMessageFacadeTest {
      * received messages with a reply-to-group-id.
      */
     @Test
-    public void testGetReplyToGroupIdWithReceivedMessage()
-    {
+    public void testGetReplyToGroupIdWithReceivedMessage() {
         String replyToGroupId = "myReplyGroup";
 
         Message message = Proton.message();
@@ -553,8 +545,7 @@ public class AmqpJmsMessageFacadeTest {
      * reply-to-group-id of the underlying proton message.
      */
     @Test
-    public void testSetReplyToGroupId()
-    {
+    public void testSetReplyToGroupId() {
         String replyToGroupId = "myReplyGroup";
 
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
@@ -571,8 +562,7 @@ public class AmqpJmsMessageFacadeTest {
      * Test that setting and getting the ReplyToGroupId yields the expected result
      */
     @Test
-    public void testSetGetReplyToGroupId()
-    {
+    public void testSetGetReplyToGroupId() {
         String replyToGroupId = "myReplyGroup";
 
         AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
@@ -585,6 +575,87 @@ public class AmqpJmsMessageFacadeTest {
         assertEquals("expected ReplyToGroupId on message was not found", replyToGroupId, amqpMessageFacade.getReplyToGroupId());
     }
 
+    //TODO: marker
+    // --- group-sequence field ---
+
+    @Test
+    public void testSetGetGroupSequenceOnNewMessage() {
+        AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
+
+        int groupSequence = 5;
+        amqpMessageFacade.setGroupSequence(groupSequence);
+
+        assertEquals("underlying message should have groupSequence field value", groupSequence, amqpMessageFacade.getAmqpMessage().getProperties().getGroupSequence().longValue());
+        assertEquals("GroupSequence not as expected", groupSequence, amqpMessageFacade.getGroupSequence());
+    }
+
+    /**
+     * Tests handling of negative values set for group sequence. Negative values are used to map
+     * a value into the upper half of the unsigned int range supported by AMQP group-sequence
+     * field by utilising all of the bits of the signed int value. That is, Integer.MIN_VALUE maps
+     * to the uint value 2^31 and -1 maps to the maximum uint value 2^32-1.
+     */
+    @Test
+    public void testSetGroupSequenceNegativeMapsToUnsignedIntValueOnUnderlyingMessage() {
+        AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
+
+        int delta = 9;
+        UnsignedInteger mapped = UnsignedInteger.valueOf(MAX_UINT - delta);
+        amqpMessageFacade.setGroupSequence(-1 - delta);
+
+        assertEquals("underlying message should have no groupSequence field value",mapped, amqpMessageFacade.getAmqpMessage().getProperties().getGroupSequence());
+        assertEquals("GroupSequence not as expected", -1 - delta, amqpMessageFacade.getGroupSequence());
+    }
+
+    @Test
+    public void testGetGroupSequenceOnReceivedMessageWithGroupSequenceJustAboveSignedIntRange() {
+        Message message = Proton.message();
+
+        Properties props = new Properties();
+        props.setGroupSequence(UnsignedInteger.valueOf(1L + Integer.MAX_VALUE));
+        message.setProperties(props);
+
+        AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message);
+
+        // The unsigned int value >= 2^31 will be represented as a negative, and so should begin from minimum signed int value
+        assertEquals("GroupSequence not as expected", Integer.MIN_VALUE, amqpMessageFacade.getGroupSequence());
+    }
+
+    @Test
+    public void testGetGroupSequenceOnReceivedMessageWithGroupSequenceMaxUnsignedIntValue() {
+        Message message = Proton.message();
+
+        Properties props = new Properties();
+        props.setGroupSequence(UnsignedInteger.valueOf(MAX_UINT));
+        message.setProperties(props);
+
+        AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message);
+
+        // The unsigned int value 2^32-1 will be represented as a negative, and should be the largest such value, -1
+        assertEquals("GroupSequence not as expected", -1, amqpMessageFacade.getGroupSequence());
+    }
+
+    @Test
+    public void testClearGroupSequenceOnMessageWithExistingGroupSequence() {
+        AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
+
+        amqpMessageFacade.setGroupSequence(5);
+
+        amqpMessageFacade.clearGroupSequence();
+
+        assertNull("underlying message should have no groupSequence field value", amqpMessageFacade.getAmqpMessage().getProperties().getGroupSequence());
+        assertEquals("GroupSequence should be 0", 0, amqpMessageFacade.getGroupSequence());
+    }
+
+    @Test
+    public void testClearGroupSequenceOnMessageWithoutExistingGroupSequence() {
+        AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
+        amqpMessageFacade.clearGroupSequence();
+
+        assertNull("underlying message should still have no properties setion", amqpMessageFacade.getAmqpMessage().getProperties());
+        assertEquals("GroupSequence should be 0", 0, amqpMessageFacade.getGroupSequence());
+    }
+
     // --- message-id and correlation-id ---
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[4/4] git commit: add TODO notes for later

Posted by ro...@apache.org.
add TODO notes for later


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/5c99fafa
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/5c99fafa
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/5c99fafa

Branch: refs/heads/master
Commit: 5c99fafafb6020a891027201961c9b924b282ff0
Parents: 1803e02
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Oct 7 13:24:09 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Oct 7 13:24:36 2014 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/qpid/jms/message/JmsMessage.java      | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5c99fafa/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
index 89f2604..ac2df52 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
@@ -242,6 +242,8 @@ public class JmsMessage implements javax.jms.Message {
     public void clearProperties() throws JMSException {
         facade.clearProperties();
 
+        //TODO: Handle any other relevant JMSX properties.
+        //TODO: Possibly push this to the facade or interceptors?
         //Clear property-defined values that are treated as facade-managed, such as GroupSequence.
         facade.clearGroupSequence();
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org