You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2016/11/30 22:54:55 UTC
activemq-artemis git commit: Don't set routingType header on JMS
producer as this breaks backwards compatibility
Repository: activemq-artemis
Updated Branches:
refs/heads/ARTEMIS-780 73691a503 -> 8338080a9
Don't set routingType header on JMS producer as this breaks backwards compatibility
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/8338080a
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/8338080a
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/8338080a
Branch: refs/heads/ARTEMIS-780
Commit: 8338080a9be1b3ee317a766423468b39bf6bf64b
Parents: 73691a5
Author: jbertram <jb...@apache.com>
Authored: Wed Nov 30 16:45:00 2016 -0600
Committer: jbertram <jb...@apache.com>
Committed: Wed Nov 30 16:54:08 2016 -0600
----------------------------------------------------------------------
.../activemq/artemis/reader/MessageUtil.java | 14 +++----------
.../artemis/jms/client/ActiveMQMessage.java | 21 +++++++++-----------
.../jms/client/ActiveMQMessageConsumer.java | 7 +++++++
.../jms/client/ActiveMQMessageProducer.java | 3 ---
4 files changed, 19 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8338080a/artemis-core-client/src/main/java/org/apache/activemq/artemis/reader/MessageUtil.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/reader/MessageUtil.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/reader/MessageUtil.java
index 9d37cd3..507a454 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/reader/MessageUtil.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/reader/MessageUtil.java
@@ -120,19 +120,11 @@ public class MessageUtil {
}
public static void clearProperties(Message message) {
- /**
- * JavaDoc for this method states:
- * Clears a message's properties.
- * The message's header fields and body are not cleared.
- *
- * Since the {@code Message.HDR_ROUTING_TYPE} is used for the JMSDestination header it isn't cleared
- */
-
List<SimpleString> toRemove = new ArrayList<>();
for (SimpleString propName : message.getPropertyNames()) {
- if ((!propName.startsWith(JMS) || propName.startsWith(JMSX) ||
- propName.startsWith(JMS_)) && !propName.equals(Message.HDR_ROUTING_TYPE)) {
+ if (!propName.startsWith(JMS) || propName.startsWith(JMSX) ||
+ propName.startsWith(JMS_)) {
toRemove.add(propName);
}
}
@@ -147,7 +139,7 @@ public class MessageUtil {
for (SimpleString propName : message.getPropertyNames()) {
if ((!propName.startsWith(JMS) || propName.startsWith(JMSX) ||
- propName.startsWith(JMS_)) && !propName.startsWith(CONNECTION_ID_PROPERTY_NAME) && !propName.equals(Message.HDR_ROUTING_TYPE)) {
+ propName.startsWith(JMS_)) && !propName.startsWith(CONNECTION_ID_PROPERTY_NAME)) {
set.add(propName.toString());
}
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8338080a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
index 4f0be81..ff583aa 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
@@ -202,9 +202,11 @@ public class ActiveMQMessage implements javax.jms.Message {
private long jmsDeliveryTime;
+ private boolean fromQueue;
+
// Constructors --------------------------------------------------
- /*
+ /*g
* Create a new message prior to sending
*/
protected ActiveMQMessage(final byte type, final ClientSession session) {
@@ -398,17 +400,8 @@ public class ActiveMQMessage implements javax.jms.Message {
public Destination getJMSDestination() throws JMSException {
if (dest == null) {
SimpleString address = message.getAddress();
- String prefix = "";
- if (message.containsProperty(org.apache.activemq.artemis.api.core.Message.HDR_ROUTING_TYPE)) {
- RoutingType routingType = RoutingType.getType(message.getByteProperty(org.apache.activemq.artemis.api.core.Message.HDR_ROUTING_TYPE));
- if (routingType.equals(RoutingType.ANYCAST)) {
- prefix = QUEUE_QUALIFIED_PREFIX;
- } else if (routingType.equals(RoutingType.MULTICAST)) {
- prefix = TOPIC_QUALIFIED_PREFIX;
- }
- }
- dest = address == null ? null : ActiveMQDestination.fromPrefixedName(prefix + address.toString());
+ dest = address == null ? null : ActiveMQDestination.fromPrefixedName((fromQueue ? QUEUE_QUALIFIED_PREFIX : TOPIC_QUALIFIED_PREFIX) + address.toString());
}
return dest;
@@ -785,7 +778,11 @@ public class ActiveMQMessage implements javax.jms.Message {
return message.getBodySize() == 0;
}
- // Public --------------------------------------------------------
+ // Public ---------------------------------------------------------
+
+ public void setFromQueue(boolean fromQueue) {
+ this.fromQueue = fromQueue;
+ }
public void setIndividualAcknowledge() {
this.individualAck = true;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8338080a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.java
index 8bc1fd8..ec362fa 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.java
@@ -60,6 +60,8 @@ public final class ActiveMQMessageConsumer implements QueueReceiver, TopicSubscr
private final ActiveMQDestination destination;
+ private final boolean destinationIsQueue;
+
private final String selector;
private final SimpleString autoDeleteQueueName;
@@ -88,6 +90,8 @@ public final class ActiveMQMessageConsumer implements QueueReceiver, TopicSubscr
this.destination = destination;
+ this.destinationIsQueue = destination instanceof ActiveMQQueue;
+
this.selector = selector;
this.autoDeleteQueueName = autoDeleteQueueName;
@@ -240,6 +244,9 @@ public final class ActiveMQMessageConsumer implements QueueReceiver, TopicSubscr
} else {
coreMessage.acknowledge();
}
+
+ // TODO find a more elegant way to do this
+ jmsMsg.setFromQueue(destinationIsQueue);
}
return jmsMsg;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8338080a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java
index 4c1d335..47d9ff2 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java
@@ -491,9 +491,6 @@ public class ActiveMQMessageProducer implements MessageProducer, QueueSender, To
ClientMessage coreMessage = activeMQJmsMessage.getCoreMessage();
coreMessage.putStringProperty(ActiveMQConnection.CONNECTION_ID_PROPERTY_NAME, connID);
- byte routingType = destination.isQueue() ? RoutingType.ANYCAST.getType() : RoutingType.MULTICAST.getType();
- coreMessage.putByteProperty(org.apache.activemq.artemis.api.core.Message.HDR_ROUTING_TYPE, routingType);
-
try {
/**
* Using a completionListener requires wrapping using a {@link CompletionListenerWrapper},