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:28 UTC
[2/2] git commit: update getPropertyName handling to include [some]
intercepted properties, fixup/enable tests accordingly
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