Repository: activemq Updated Branches: refs/heads/trunk 9f78f8237 -> 7bfbce9a5
ignore JmsClientRequestResponseTest until we have qpid/proton libs with appropriate fixes Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/e9126f35 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/e9126f35 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/e9126f35 Branch: refs/heads/trunk Commit: e9126f3513a7a074c423b0ed25e0cbb530af63ab Parents: 9f78f82 Author: Dejan Bosanac <[email protected]> Authored: Thu May 29 16:32:54 2014 +0200 Committer: Dejan Bosanac <[email protected]> Committed: Thu May 29 16:41:06 2014 +0200 ---------------------------------------------------------------------- .../activemq/transport/amqp/ActiveMQJMSVendor.java | 17 +++++++++-------- .../transport/amqp/AmqpProtocolConverter.java | 8 ++++++++ .../amqp/JmsClientRequestResponseTest.java | 2 ++ 3 files changed, 19 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/e9126f35/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/ActiveMQJMSVendor.java ---------------------------------------------------------------------- diff --git a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/ActiveMQJMSVendor.java b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/ActiveMQJMSVendor.java index 8a6137c..200b6c4 100644 --- a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/ActiveMQJMSVendor.java +++ b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/ActiveMQJMSVendor.java @@ -87,17 +87,18 @@ public class ActiveMQJMSVendor extends JMSVendor { @Override public <T extends Destination> T createDestination(String name, Class<T> kind) { - if (kind == Queue.class) { - return kind.cast(new ActiveMQQueue(name)); + String destinationName = name.substring(name.lastIndexOf("://") + 3); + if( kind == Queue.class ) { + return kind.cast(new ActiveMQQueue(destinationName)); } - if (kind == Topic.class) { - return kind.cast(new ActiveMQTopic(name)); + if( kind == Topic.class ) { + return kind.cast(new ActiveMQTopic(destinationName)); } - if (kind == TemporaryQueue.class) { - return kind.cast(new ActiveMQTempQueue(name)); + if( kind == TemporaryQueue.class ) { + return kind.cast(new ActiveMQTempQueue(destinationName)); } - if (kind == TemporaryTopic.class) { - return kind.cast(new ActiveMQTempTopic(name)); + if( kind == TemporaryTopic.class ) { + return kind.cast(new ActiveMQTempTopic(destinationName)); } return kind.cast(ActiveMQDestination.createDestination(name, ActiveMQDestination.QUEUE_TYPE)); } http://git-wip-us.apache.org/repos/asf/activemq/blob/e9126f35/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java ---------------------------------------------------------------------- diff --git a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java index ee84a25..df8509d 100644 --- a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java +++ b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java @@ -53,6 +53,7 @@ import org.apache.activemq.command.SessionId; import org.apache.activemq.command.SessionInfo; import org.apache.activemq.command.ShutdownInfo; import org.apache.activemq.command.TransactionInfo; +import org.apache.activemq.command.ActiveMQTempTopic; import org.apache.activemq.selector.SelectorParser; import org.apache.activemq.util.IOExceptionSupport; import org.apache.activemq.util.IdGenerator; @@ -577,6 +578,13 @@ class AmqpProtocolConverter implements IAmqpProtocolConverter { if (!closed) { EncodedMessage em = new EncodedMessage(delivery.getMessageFormat(), buffer.data, buffer.offset, buffer.length); final ActiveMQMessage message = (ActiveMQMessage) getInboundTransformer().transform(em); + + // TODO - we need to cast TempTopic to TempQueue as we internally are using temp queues for all dynamic destinations + // we need to figure out how to support both queues and topics + if (message.getJMSReplyTo() != null && message.getJMSReplyTo() instanceof ActiveMQTempTopic) { + ActiveMQTempTopic tempTopic = (ActiveMQTempTopic)message.getJMSReplyTo(); + message.setJMSReplyTo(new ActiveMQTempQueue(tempTopic.getPhysicalName())); + } current = null; if (destination != null) { http://git-wip-us.apache.org/repos/asf/activemq/blob/e9126f35/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JmsClientRequestResponseTest.java ---------------------------------------------------------------------- diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JmsClientRequestResponseTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JmsClientRequestResponseTest.java index c79493a..191ae07 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JmsClientRequestResponseTest.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JmsClientRequestResponseTest.java @@ -39,12 +39,14 @@ import javax.jms.Topic; import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; import org.junit.After; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Ignore("Until https://issues.apache.org/jira/browse/PROTON-588 and https://issues.apache.org/jira/browse/QPID-5792 are fixed") public class JmsClientRequestResponseTest extends AmqpTestSupport implements MessageListener { private static final Logger LOG = LoggerFactory.getLogger(JmsClientRequestResponseTest.class);
