You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ha...@apache.org on 2014/12/18 03:41:39 UTC
[09/17] activemq git commit:
https://issues.apache.org/jira/browse/AMQ-5323
https://issues.apache.org/jira/browse/AMQ-5323
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/3f67862a
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/3f67862a
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/3f67862a
Branch: refs/heads/activemq-5.10.x
Commit: 3f67862ac882c333b0e46e8386f27097c02c468a
Parents: 4275157
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Aug 15 14:23:14 2014 -0400
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Wed Dec 17 19:39:00 2014 -0500
----------------------------------------------------------------------
.../activemq/command/ActiveMQMessage.java | 18 ++++++++--
.../activemq/command/ActiveMQMessageTest.java | 36 ++++++++++++++++++++
2 files changed, 51 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/3f67862a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
index eef6c11..7995993 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
@@ -396,13 +396,25 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
JMS_PROPERTY_SETERS.put("JMSDeliveryMode", new PropertySetter() {
@Override
public void set(Message message, Object value) throws MessageFormatException {
- Integer rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
+ Integer rc = null;
+ try {
+ rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
+ } catch (NumberFormatException nfe) {
+ if (value instanceof String) {
+ if (((String) value).equalsIgnoreCase("PERSISTENT")) {
+ rc = DeliveryMode.PERSISTENT;
+ } else if (((String) value).equalsIgnoreCase("NON_PERSISTENT")) {
+ rc = DeliveryMode.NON_PERSISTENT;
+ } else {
+ throw nfe;
+ }
+ }
+ }
if (rc == null) {
Boolean bool = (Boolean) TypeConversionSupport.convert(value, Boolean.class);
if (bool == null) {
throw new MessageFormatException("Property JMSDeliveryMode cannot be set from a " + value.getClass().getName() + ".");
- }
- else {
+ } else {
rc = bool.booleanValue() ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT;
}
}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3f67862a/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQMessageTest.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQMessageTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQMessageTest.java
index 0287f4b..e1079a1 100755
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQMessageTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQMessageTest.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
+import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageFormatException;
@@ -353,6 +354,41 @@ public class ActiveMQMessageTest extends TestCase {
assertTrue(((Float) msg.getObjectProperty(name)).floatValue() == 1.3f);
}
+ public void testSetJMSDeliveryModeProperty() throws JMSException {
+ ActiveMQMessage message = new ActiveMQMessage();
+ String propertyName = "JMSDeliveryMode";
+
+ // Set as Boolean
+ message.setObjectProperty(propertyName, Boolean.TRUE);
+ assertTrue(message.isPersistent());
+ message.setObjectProperty(propertyName, Boolean.FALSE);
+ assertFalse(message.isPersistent());
+ message.setBooleanProperty(propertyName, true);
+ assertTrue(message.isPersistent());
+ message.setBooleanProperty(propertyName, false);
+ assertFalse(message.isPersistent());
+
+ // Set as Integer
+ message.setObjectProperty(propertyName, DeliveryMode.PERSISTENT);
+ assertTrue(message.isPersistent());
+ message.setObjectProperty(propertyName, DeliveryMode.NON_PERSISTENT);
+ assertFalse(message.isPersistent());
+ message.setIntProperty(propertyName, DeliveryMode.PERSISTENT);
+ assertTrue(message.isPersistent());
+ message.setIntProperty(propertyName, DeliveryMode.NON_PERSISTENT);
+ assertFalse(message.isPersistent());
+
+ // Set as String
+ message.setObjectProperty(propertyName, "PERSISTENT");
+ assertTrue(message.isPersistent());
+ message.setObjectProperty(propertyName, "NON_PERSISTENT");
+ assertFalse(message.isPersistent());
+ message.setStringProperty(propertyName, "PERSISTENT");
+ assertTrue(message.isPersistent());
+ message.setStringProperty(propertyName, "NON_PERSISTENT");
+ assertFalse(message.isPersistent());
+ }
+
@SuppressWarnings("rawtypes")
public void testGetPropertyNames() throws JMSException {
ActiveMQMessage msg = new ActiveMQMessage();