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/08 17:51:27 UTC
[1/2] git commit: allow retrieving the intercepted property names
without inclusing the standard JMS header names
Repository: qpid-jms
Updated Branches:
refs/heads/master e6fe539fb -> 756f120b9
allow retrieving the intercepted property names without inclusing the standard JMS header names
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/4d3e9345
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/4d3e9345
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/4d3e9345
Branch: refs/heads/master
Commit: 4d3e934586055b21fa82e783f3cfbb825771727c
Parents: e6fe539
Author: Robert Gemmell <ro...@apache.org>
Authored: Wed Oct 8 15:01:18 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Wed Oct 8 16:50:38 2014 +0100
----------------------------------------------------------------------
.../message/JmsMessagePropertyIntercepter.java | 23 ++-
.../JmsMessagePropertyIntercepterTest.java | 184 ++++++++++++++++---
2 files changed, 177 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4d3e9345/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 ec52f1f..b650204 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
@@ -53,6 +53,7 @@ public class JmsMessagePropertyIntercepter {
private static final Map<String, PropertyIntercepter> PROPERTY_INTERCEPTERS =
new HashMap<String, PropertyIntercepter>();
+ private static final Set<String> STANDARD_HEADERS = new HashSet<String>();
/**
* Interface for a Property intercepter object used to write JMS style
@@ -100,6 +101,17 @@ public class JmsMessagePropertyIntercepter {
}
static {
+ STANDARD_HEADERS.add(JMS_MESSAGEID);
+ STANDARD_HEADERS.add(JMS_TIMESTAMP);
+ STANDARD_HEADERS.add(JMS_CORRELATIONID);
+ STANDARD_HEADERS.add(JMS_REPLYTO);
+ STANDARD_HEADERS.add(JMS_DESTINATION);
+ STANDARD_HEADERS.add(JMS_DELIVERY_MODE);
+ STANDARD_HEADERS.add(JMS_REDELIVERED);
+ STANDARD_HEADERS.add(JMS_TYPE);
+ STANDARD_HEADERS.add(JMS_EXPIRATION);
+ STANDARD_HEADERS.add(JMS_PRIORITY);
+
PROPERTY_INTERCEPTERS.put(JMSX_DELIVERY_COUNT, new PropertyIntercepter() {
@Override
public void setProperty(JmsMessageFacade message, Object value) throws JMSException {
@@ -506,11 +518,20 @@ public class JmsMessagePropertyIntercepter {
* string key value is inserted into an Set and returned if the property has a
* value and is available for a read operation.
*
+ * @param message
+ * the JmsMessageFacade instance to read from
+ * @param excludeStandardJMSHeaders
+ * whether the standard JMS header names should be excluded from the returned set
+ *
* @return a Set<String> containing the names of all intercepted properties with a value.
*/
- public static Set<String> getPropertyNames(JmsMessageFacade message) {
+ public static Set<String> getPropertyNames(JmsMessageFacade message, boolean excludeStandardJMSHeaders) {
Set<String> names = new HashSet<String>();
for (Entry<String, PropertyIntercepter> entry : PROPERTY_INTERCEPTERS.entrySet()) {
+ if (excludeStandardJMSHeaders && STANDARD_HEADERS.contains(entry.getKey())) {
+ continue;
+ }
+
if (entry.getValue().propertyExists(message)) {
names.add(entry.getKey());
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4d3e9345/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 96ade98..e67f42d 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
@@ -46,7 +46,7 @@ import org.mockito.Mockito;
public class JmsMessagePropertyIntercepterTest {
- //---------- JMSReplyTo --------------------------------------------------//
+ //---------- JMSDestination --------------------------------------------------//
@Test
public void testJMSDestinationInGetAllPropertyNames() throws JMSException {
@@ -78,16 +78,29 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSDestinationInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSDestinationInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSDestinationInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSDestinationInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSDestinationInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
JmsDestination queue = new JmsQueue("TestDestination");
Mockito.when(message.getDestination()).thenReturn(queue);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_DESTINATION));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_DESTINATION));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_DESTINATION));
+ }
}
@Test
public void testJMSDestinationNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_DESTINATION));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_DESTINATION));
}
//---------- JMSReplyTo --------------------------------------------------//
@@ -122,16 +135,29 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSReplyToInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSReplyToInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSReplyToNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSReplyToInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSReplyToInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
JmsDestination queue = new JmsQueue("TestDestination");
Mockito.when(message.getReplyTo()).thenReturn(queue);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_REPLYTO));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_REPLYTO));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_REPLYTO));
+ }
}
@Test
public void testJMSReplyToNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_REPLYTO));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_REPLYTO));
}
//---------- JMSType -----------------------------------------------------//
@@ -164,15 +190,28 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSTypeInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSTypeInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSTypeNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSTypeInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSTypeInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getType()).thenReturn("SomeType");
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_TYPE));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_TYPE));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_TYPE));
+ }
}
@Test
public void testJMSTypeNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_TYPE));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_TYPE));
}
//---------- JMSDeliveryMode ---------------------------------------------//
@@ -230,14 +269,21 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSDeliveryModeInGetPropertyNamesWhenPersistent() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.isPersistent()).thenReturn(true);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_DELIVERY_MODE));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_DELIVERY_MODE));
}
@Test
public void testJMSDeliveryModeInGetPropertyNamesWhenNotPersistent() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.isPersistent()).thenReturn(false);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_DELIVERY_MODE));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_DELIVERY_MODE));
+ }
+
+ @Test
+ public void testJMSDeliveryModeNotInGetPropertyNamesWhenExcludingStandardJMSHeaders() throws JMSException {
+ JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+ Mockito.when(message.isPersistent()).thenReturn(true);
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_DELIVERY_MODE));
}
//---------- JMSPriority ---------------------------------------------//
@@ -273,14 +319,21 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSPriorityInGetPropertyNamesWhenDefault() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getPriority()).thenReturn(Message.DEFAULT_PRIORITY);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_PRIORITY));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_PRIORITY));
}
@Test
public void testJMSPriorityInGetPropertyNamesWhenNotDefault() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getPriority()).thenReturn(1);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_PRIORITY));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_PRIORITY));
+ }
+
+ @Test
+ public void testJMSPriorityNotInGetPropertyNamesWhenExcludingStandardJMSHeaders() throws JMSException {
+ JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+ Mockito.when(message.getPriority()).thenReturn(1);
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_PRIORITY));
}
//---------- JMSMessageID ---------------------------------------------//
@@ -313,15 +366,28 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSMessageIDInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSMessageIDInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSMessageIDNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSMessageIDInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSMessageIDInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getMessageId()).thenReturn("MESSAGE_ID");
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_MESSAGEID));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_MESSAGEID));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_MESSAGEID));
+ }
}
@Test
public void testJMSMessageIDNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_MESSAGEID));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_MESSAGEID));
}
//---------- JMSTimestamp ---------------------------------------------//
@@ -355,15 +421,28 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSTimeStampInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSTimeStampInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSTimeStampNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSTimeStampInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSTimeStampInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getTimestamp()).thenReturn(900L);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_TIMESTAMP));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_TIMESTAMP));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_TIMESTAMP));
+ }
}
@Test
public void testJMSTimeStampNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_TIMESTAMP));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_TIMESTAMP));
}
//---------- JMSCorrelationID ---------------------------------------------//
@@ -396,15 +475,28 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSCorrelationIDInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSCorrelationIDInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSCorrelationIDNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSCorrelationIDInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSCorrelationIDInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getCorrelationId()).thenReturn("MESSAGE_ID");
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_CORRELATIONID));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_CORRELATIONID));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_CORRELATIONID));
+ }
}
@Test
public void testJMSCorrelationIDNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_CORRELATIONID));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_CORRELATIONID));
}
//---------- JMSExpiration ---------------------------------------------//
@@ -438,15 +530,28 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSExpirationInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSExpirationInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSExpirationNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSExpirationInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSExpirationInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getExpiration()).thenReturn(900L);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_EXPIRATION));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_EXPIRATION));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_EXPIRATION));
+ }
}
@Test
public void testJMSExpirationNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_EXPIRATION));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_EXPIRATION));
}
//---------- JMSRedelivered ---------------------------------------------//
@@ -488,16 +593,29 @@ public class JmsMessagePropertyIntercepterTest {
@Test
public void testJMSRedeliveredInGetPropertyNamesWhenSet() throws JMSException {
+ doJMSRedeliveredInGetPropertyNamesWhenSetTestImpl(false);
+ }
+
+ @Test
+ public void testJMSRedeliveredNotInGetPropertyNamesWhenSetAndExcludingStandardJMSHeaders() throws JMSException {
+ doJMSRedeliveredInGetPropertyNamesWhenSetTestImpl(true);
+ }
+
+ private void doJMSRedeliveredInGetPropertyNamesWhenSetTestImpl(boolean excludeStandardJmsHeaders) {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.isRedelivered()).thenReturn(true);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_REDELIVERED));
+ if (excludeStandardJmsHeaders) {
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMS_REDELIVERED));
+ } else {
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_REDELIVERED));
+ }
}
@Test
public void testJMSRedeliveredNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.isRedelivered()).thenReturn(false);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_REDELIVERED));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMS_REDELIVERED));
}
//---------- JMSXGroupID ---------------------------------------------//
@@ -532,13 +650,15 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSXGroupIDInGetPropertyNamesWhenSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getGroupId()).thenReturn("GROUP_ID");
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_GROUPID));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_GROUPID));
+ assertTrue(JMSX_GROUPID + " is not a header and should be included",
+ JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMSX_GROUPID));
}
@Test
public void testJMSXGroupIDNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_GROUPID));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_GROUPID));
}
//---------- JMSXGroupSeq ---------------------------------------------//
@@ -573,13 +693,15 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSXGroupSeqInGetPropertyNamesWhenSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getGroupSequence()).thenReturn(1);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_GROUPSEQ));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_GROUPSEQ));
+ assertTrue(JMSX_GROUPSEQ + " is not a header and should be included",
+ JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMSX_GROUPSEQ));
}
@Test
public void testJMSXGroupSeqNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_GROUPSEQ));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_GROUPSEQ));
}
//---------- JMSXDeliveryCount ---------------------------------------------//
@@ -614,13 +736,15 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSXDeliveryCountInGetPropertyNamesWhenSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getDeliveryCount()).thenReturn(2);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_DELIVERY_COUNT));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_DELIVERY_COUNT));
+ assertTrue(JMSX_DELIVERY_COUNT + " is not a header and should be included",
+ JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMSX_DELIVERY_COUNT));
}
@Test
public void testJMSXDeliveryCountInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_DELIVERY_COUNT));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_DELIVERY_COUNT));
}
//---------- JMSXUserID ---------------------------------------------//
@@ -655,12 +779,14 @@ public class JmsMessagePropertyIntercepterTest {
public void testJMSXUserIdCountInGetPropertyNamesWhenSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
Mockito.when(message.getUserId()).thenReturn("Administrator");
- assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_USERID));
+ assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_USERID));
+ assertTrue(JMSX_USERID + " is not a header and should be included",
+ JmsMessagePropertyIntercepter.getPropertyNames(message, true).contains(JMSX_USERID));
}
@Test
public void testJMSXUserIdNotInGetPropertyNamesWhenNotSet() throws JMSException {
JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
- assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMSX_USERID));
+ assertFalse(JmsMessagePropertyIntercepter.getPropertyNames(message, false).contains(JMSX_USERID));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] git commit: update getPropertyName handling to include [some]
intercepted properties, fixup/enable tests accordingly
Posted by ro...@apache.org.
update getPropertyName handling to include [some] intercepted properties, fixup/enable tests accordingly
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/756f120b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/756f120b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/756f120b
Branch: refs/heads/master
Commit: 756f120b93fd21fff8aa76040e47b73cd7a79219
Parents: 4d3e934
Author: Robert Gemmell <ro...@apache.org>
Authored: Wed Oct 8 16:17:07 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Wed Oct 8 16:50:39 2014 +0100
----------------------------------------------------------------------
.../org/apache/qpid/jms/message/JmsMessage.java | 7 ++--
.../message/JmsMessagePropertyIntercepter.java | 4 ++-
.../jms/message/facade/JmsMessageFacade.java | 5 +--
.../amqp/message/AmqpJmsMessageFacade.java | 3 ++
.../AmqpJmsMessagePropertyIntercepter.java | 4 ++-
.../jms/integration/MessageIntegrationTest.java | 1 -
.../apache/qpid/jms/message/JmsMessageTest.java | 34 ++++++++++----------
7 files changed, 34 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/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 ce82520..1a2450e 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
@@ -286,7 +286,10 @@ public class JmsMessage implements javax.jms.Message {
@Override
public Enumeration<?> getPropertyNames() throws JMSException {
- return Collections.enumeration(facade.getPropertyNames());
+ Set<String> result = facade.getPropertyNames();
+ result.addAll(JmsMessagePropertyIntercepter.getPropertyNames(facade, true));
+
+ return Collections.enumeration(result);
}
/**
@@ -297,7 +300,7 @@ public class JmsMessage implements javax.jms.Message {
* @throws JMSException
*/
public Enumeration<?> getAllPropertyNames() throws JMSException {
- Set<String> result = new HashSet<String>(facade.getProperties().keySet());
+ Set<String> result = new HashSet<String>(facade.getPropertyNames());
result.addAll(JmsMessagePropertyIntercepter.getAllPropertyNames());
return Collections.enumeration(result);
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/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 b650204..617e47a 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
@@ -516,7 +516,9 @@ public class JmsMessagePropertyIntercepter {
/**
* For each of the currently configured message property intercepter instance a
* string key value is inserted into an Set and returned if the property has a
- * value and is available for a read operation.
+ * value and is available for a read operation. The Set returned may be
+ * manipulated by the receiver without impacting the facade, and an empty set
+ * will be returned if there are no matching properties.
*
* @param message
* the JmsMessageFacade instance to read from
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/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 c879d5d..db64900 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
@@ -48,8 +48,9 @@ public interface JmsMessageFacade {
public Map<String, Object> getProperties() throws JMSException;
/**
- * Returns the property names for this Message instance, including any relevant to
- * values managed through the facade such as group sequence.
+ * Returns the property names for this Message instance. The Set returned may be
+ * manipulated by the receiver without impacting the facade, and an empty set
+ * will be returned if there are no matching properties.
*
* @return a set containing the property names of this Message
*
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/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 ffaa165..21067b3 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
@@ -169,6 +169,8 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade {
/**
* Returns a set of all the property names that have been set in this message.
+ * The Set returned may be manipulated by the receiver without impacting the facade,
+ * and an empty set will be returned if there are no matching properties.
*
* @return a set of property names in the message or an empty set if none are set.
*/
@@ -253,6 +255,7 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade {
@Override
public void clearProperties() {
clearAllApplicationProperties();
+ //TODO: should we clear some/all of those intercepted by AmqpJmsMessagePropertyIntercepter?
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
index 530904f..0fd2d39 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
@@ -248,7 +248,9 @@ public class AmqpJmsMessagePropertyIntercepter {
/**
* For each of the currently configured message property intercepter instance a
* string key value is inserted into an Set and returned if the property has a
- * value and is available for a read operation.
+ * value and is available for a read operation. The Set returned may be
+ * manipulated by the receiver without impacting the facade, and an empty set
+ * will be returned if there are no matching properties.
*
* @return a Set<String> containing the names of all intercepted properties with a value.
*/
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
index bc12995..f46a6d0 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
@@ -865,7 +865,6 @@ public class MessageIntegrationTest extends QpidJmsTestCase
* fields of the AMQP properties section set, that the expected JMSX or JMS_AMQP properties
* are present, and the expected values are returned when retrieved from the JMS message.
*/
- @Ignore //TODO: currently failing on propertyNames handling
@Test(timeout = 2000)
public void testReceivedMessageWithGroupRelatedPropertiesSet() throws Exception {
try (TestAmqpPeer testPeer = new TestAmqpPeer(IntegrationTestFixture.PORT);) {
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/756f120b/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 a049148..3b68fb8 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
@@ -372,25 +372,25 @@ public class JmsMessageTest {
@SuppressWarnings("rawtypes")
public void testGetPropertyNames() throws JMSException {
JmsMessage msg = factory.createMessage();
- String name1 = "floatProperty";
- msg.setFloatProperty(name1, 1.3f);
- String name2 = "JMSXDeliveryCount";
- msg.setIntProperty(name2, 1);
- String name3 = "JMSRedelivered";
- msg.setBooleanProperty(name3, false);
- boolean found1 = false;
- boolean found2 = false;
- boolean found3 = false;
+ String propName = "floatProperty";
+ msg.setFloatProperty(propName, 1.3f);
+ String jmsxName = "JMSXDeliveryCount";
+ msg.setIntProperty(jmsxName, 1);
+ String headerName = "JMSRedelivered";
+ msg.setBooleanProperty(headerName, false);
+ boolean propNameFound = false;
+ boolean jmsxNameFound = false;
+ boolean headerNameFound1 = false;
for (Enumeration iter = msg.getPropertyNames(); iter.hasMoreElements();) {
Object element = iter.nextElement();
- found1 |= element.equals(name1);
- found2 |= element.equals(name2);
- found3 |= element.equals(name3);
- }
- assertTrue("prop name1 found", found1);
- // spec compliance, only non JMS (and JMSX) props returned
- assertFalse("prop name2 not found", found2);
- assertFalse("prop name4 not found", found3);
+ propNameFound |= element.equals(propName);
+ jmsxNameFound |= element.equals(jmsxName);
+ headerNameFound1 |= element.equals(headerName);
+ }
+ assertTrue("prop name not found", propNameFound);
+ assertTrue("jmsx prop name not found", jmsxNameFound);
+ // spec compliance, only non-'JMS header' props returned
+ assertFalse("header name should not have been found", headerNameFound1);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org