Clean up usage of HDR_ROUTING_TYPE; fix JMS tests
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/ebf14506 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/ebf14506 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/ebf14506 Branch: refs/heads/ARTEMIS-780 Commit: ebf14506321c0d745c0cef9fdbe0d8b0eb600e43 Parents: 1378376 Author: jbertram <[email protected]> Authored: Tue Nov 29 15:00:44 2016 -0600 Committer: jbertram <[email protected]> Committed: Tue Nov 29 15:00:44 2016 -0600 ---------------------------------------------------------------------- .../activemq/artemis/reader/MessageUtil.java | 13 ++++++++++--- .../artemis/jms/client/ActiveMQMessage.java | 18 +++++++++++------- .../jms/client/ActiveMQMessageConsumer.java | 2 -- .../jms/client/ActiveMQMessageProducer.java | 3 +-- .../artemis/jms/client/ActiveMQQueue.java | 15 +++++++++++++++ .../jms/client/ActiveMQTemporaryQueue.java | 15 +++++++++++++++ .../jms/client/ActiveMQTemporaryTopic.java | 15 +++++++++++++++ .../artemis/jms/client/ActiveMQTopic.java | 15 +++++++++++++++ .../core/postoffice/impl/LocalQueueBinding.java | 6 +++--- 9 files changed, 85 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/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 09b1902..9d37cd3 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,12 +120,19 @@ 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_)) { + if ((!propName.startsWith(JMS) || propName.startsWith(JMSX) || + propName.startsWith(JMS_)) && !propName.equals(Message.HDR_ROUTING_TYPE)) { toRemove.add(propName); } } @@ -140,7 +147,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.startsWith(JMS_)) && !propName.startsWith(CONNECTION_ID_PROPERTY_NAME) && !propName.equals(Message.HDR_ROUTING_TYPE)) { set.add(propName.toString()); } } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/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 283f958..4f0be81 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 @@ -44,6 +44,7 @@ import org.apache.activemq.artemis.api.core.client.ClientMessage; import org.apache.activemq.artemis.api.core.client.ClientSession; import org.apache.activemq.artemis.api.jms.ActiveMQJMSConstants; import org.apache.activemq.artemis.core.message.impl.MessageInternal; +import org.apache.activemq.artemis.core.server.RoutingType; import org.apache.activemq.artemis.reader.MessageUtil; import org.apache.activemq.artemis.utils.UUID; @@ -201,8 +202,6 @@ public class ActiveMQMessage implements javax.jms.Message { private long jmsDeliveryTime; - private boolean fromQueue; - // Constructors -------------------------------------------------- /* @@ -399,8 +398,17 @@ 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((fromQueue ? QUEUE_QUALIFIED_PREFIX : TOPIC_QUALIFIED_PREFIX) + address.toString()); + dest = address == null ? null : ActiveMQDestination.fromPrefixedName(prefix + address.toString()); } return dest; @@ -779,10 +787,6 @@ public class ActiveMQMessage implements javax.jms.Message { // 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/ebf14506/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 b449aea..8bc1fd8 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 @@ -240,8 +240,6 @@ public final class ActiveMQMessageConsumer implements QueueReceiver, TopicSubscr } else { coreMessage.acknowledge(); } - - jmsMsg.setFromQueue(destination instanceof ActiveMQQueue); } return jmsMsg; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/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 aa4754b..4c1d335 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 @@ -41,7 +41,6 @@ import org.apache.activemq.artemis.api.core.client.ClientMessage; import org.apache.activemq.artemis.api.core.client.ClientProducer; import org.apache.activemq.artemis.api.core.client.ClientSession; import org.apache.activemq.artemis.api.core.client.SendAcknowledgementHandler; -import org.apache.activemq.artemis.core.message.impl.MessageImpl; import org.apache.activemq.artemis.core.server.RoutingType; import org.apache.activemq.artemis.utils.UUID; import org.apache.activemq.artemis.utils.UUIDGenerator; @@ -493,7 +492,7 @@ public class ActiveMQMessageProducer implements MessageProducer, QueueSender, To coreMessage.putStringProperty(ActiveMQConnection.CONNECTION_ID_PROPERTY_NAME, connID); byte routingType = destination.isQueue() ? RoutingType.ANYCAST.getType() : RoutingType.MULTICAST.getType(); - coreMessage.putByteProperty(MessageImpl.HDR_ROUTING_TYPE, routingType); + coreMessage.putByteProperty(org.apache.activemq.artemis.api.core.Message.HDR_ROUTING_TYPE, routingType); try { /** http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java ---------------------------------------------------------------------- diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java index 2632dae..883a71d 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java @@ -76,6 +76,21 @@ public class ActiveMQQueue extends ActiveMQDestination implements Queue { return "ActiveMQQueue[" + name + "]"; } + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (!(o instanceof ActiveMQQueue)) { + return false; + } + + ActiveMQQueue that = (ActiveMQQueue) o; + + return super.getAddress().equals(that.getAddress()); + } + // Package protected --------------------------------------------- // Protected ----------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryQueue.java ---------------------------------------------------------------------- diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryQueue.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryQueue.java index fa01409..daae8ed 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryQueue.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryQueue.java @@ -52,6 +52,21 @@ public class ActiveMQTemporaryQueue extends ActiveMQQueue implements TemporaryQu return "ActiveMQTemporaryQueue[" + name + "]"; } + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (!(o instanceof ActiveMQTemporaryQueue)) { + return false; + } + + ActiveMQTemporaryQueue that = (ActiveMQTemporaryQueue) o; + + return super.getAddress().equals(that.getAddress()); + } + // Package protected --------------------------------------------- // Protected ----------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryTopic.java ---------------------------------------------------------------------- diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryTopic.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryTopic.java index 07c3ec9..4cccb81 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryTopic.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTemporaryTopic.java @@ -36,6 +36,21 @@ public class ActiveMQTemporaryTopic extends ActiveMQTopic implements TemporaryTo // Public -------------------------------------------------------- + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (!(o instanceof ActiveMQTemporaryTopic)) { + return false; + } + + ActiveMQTemporaryTopic that = (ActiveMQTemporaryTopic) o; + + return super.getAddress().equals(that.getAddress()); + } + // Package protected --------------------------------------------- // Protected ----------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java ---------------------------------------------------------------------- diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java index 5ffd918..e251e6a 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java @@ -71,6 +71,21 @@ public class ActiveMQTopic extends ActiveMQDestination implements Topic { return "ActiveMQTopic[" + name + "]"; } + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (!(o instanceof ActiveMQTopic)) { + return false; + } + + ActiveMQTopic that = (ActiveMQTopic) o; + + return super.getAddress().equals(that.getAddress()); + } + // Package protected --------------------------------------------- // Protected ----------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ebf14506/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java index fb025af..e09d108 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java @@ -16,9 +16,9 @@ */ package org.apache.activemq.artemis.core.postoffice.impl; +import org.apache.activemq.artemis.api.core.Message; import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.filter.Filter; -import org.apache.activemq.artemis.core.message.impl.MessageInternal; import org.apache.activemq.artemis.core.postoffice.BindingType; import org.apache.activemq.artemis.core.postoffice.QueueBinding; import org.apache.activemq.artemis.core.server.Bindable; @@ -131,8 +131,8 @@ public class LocalQueueBinding implements QueueBinding { } private boolean isMatchRoutingType(ServerMessage message) { - if (message.containsProperty(MessageInternal.HDR_ROUTING_TYPE)) { - return message.getByteProperty(MessageInternal.HDR_ROUTING_TYPE).equals(queue.getRoutingType().getType()); + if (message.containsProperty(Message.HDR_ROUTING_TYPE)) { + return message.getByteProperty(Message.HDR_ROUTING_TYPE).equals(queue.getRoutingType().getType()); } return true; }
