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/01 14:40:43 UTC
[4/7] git commit: stop the consumer always overriding the 'to' field
by setting JMSDestination, enable/add more tests
stop the consumer always overriding the 'to' field by setting JMSDestination, enable/add more tests
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ba44ad6f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ba44ad6f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ba44ad6f
Branch: refs/heads/master
Commit: ba44ad6f16cbd56e38a183218026d6c05d0aefa7
Parents: 0075d0a
Author: Robert Gemmell <ro...@apache.org>
Authored: Wed Oct 1 10:58:36 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Wed Oct 1 10:59:05 2014 +0100
----------------------------------------------------------------------
.../qpid/jms/provider/amqp/AmqpConsumer.java | 10 -----
.../jms/integration/MessageIntegrationTest.java | 46 ++++++++++++++++----
2 files changed, 37 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ba44ad6f/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java
index bced2b4..515449e 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java
@@ -321,16 +321,6 @@ public class AmqpConsumer extends AbstractAmqpResource<JmsConsumerInfo, Receiver
return;
}
- try {
- message.setJMSDestination(info.getDestination());
- } catch (JMSException e) {
- LOG.warn("Error on transform: {}", e.getMessage());
- // TODO - We could signal provider error but not sure we want to fail
- // the connection just because we can't convert the destination.
- deliveryFailed(incoming, true);
- return;
- }
-
// Let the message do any final processing before sending it onto a consumer.
// We could defer this to a later stage such as the JmsConnection or even in
// the JmsMessageConsumer dispatch method if we needed to.
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ba44ad6f/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 9ec6791..2222a8b 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
@@ -226,7 +226,6 @@ public class MessageIntegrationTest extends QpidJmsTestCase
* indicate its 'to' address represents a Topic results in the JMSDestination object being a
* Topic. Ensure the consumers destination is not used by consuming from a Queue.
*/
- @Ignore//TODO: currently fails due to handling of AmqpMessageSupport.AMQP_TO_ANNOTATION not being complete
@Test(timeout = 2000)
public void testReceivedMessageFromQueueWithToTypeAnnotationForTopic() throws Exception {
try (TestAmqpPeer testPeer = new TestAmqpPeer(IntegrationTestFixture.PORT);) {
@@ -258,7 +257,8 @@ public class MessageIntegrationTest extends QpidJmsTestCase
assertNotNull(receivedMessage);
Destination dest = receivedMessage.getJMSDestination();
- assertTrue(dest instanceof Topic);
+ assertNotNull("Expected Topic destination but got null", dest);
+ assertTrue("Expected Topic instance but did not get one. Actual type was: " + dest.getClass().getName(), dest instanceof Topic);
assertEquals(myTopicAddress, ((Topic)dest).getTopicName());
}
}
@@ -266,19 +266,40 @@ public class MessageIntegrationTest extends QpidJmsTestCase
/**
* Tests that the lack of a 'to' in the Properties section of the incoming message (e.g
* one sent by a non-JMS client) is handled by making the JMSDestination method simply
- * return the Destination used to create the consumer that received the message.
+ * return the Queue Destination used to create the consumer that received the message.
*/
@Test(timeout = 2000)
- public void testReceivedMessageFromQueueWithoutToResultsInUseOfConsumerDestination() throws Exception {
+ public void testReceivedMessageFromQueueWithoutToResultsInUseOfConsumerDestinationQueue() throws Exception {
+ receivedMessageFromQueueWithoutToResultsInUseOfConsumerDestinationImpl(true);
+ }
+
+ /**
+ * Tests that the lack of a 'to' in the Properties section of the incoming message (e.g
+ * one sent by a non-JMS client) is handled by making the JMSDestination method simply
+ * return the Topic Destination used to create the consumer that received the message.
+ */
+ @Test(timeout = 2000)
+ public void testReceivedMessageFromQueueWithoutToResultsInUseOfConsumerDestinationTopic() throws Exception {
+ receivedMessageFromQueueWithoutToResultsInUseOfConsumerDestinationImpl(false);
+ }
+
+ public void receivedMessageFromQueueWithoutToResultsInUseOfConsumerDestinationImpl(boolean useQueue) throws Exception {
try (TestAmqpPeer testPeer = new TestAmqpPeer(IntegrationTestFixture.PORT);) {
Connection connection = _testFixture.establishConnecton(testPeer);
connection.start();
testPeer.expectBegin(true);
- Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
String queueName = "myQueue";
- Queue queue = session.createQueue(queueName);
+ String topicName = "myTopic";
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ Destination destination = null;
+ if (useQueue) {
+ destination = session.createQueue(queueName);
+ } else {
+ destination = session.createTopic(topicName);
+ }
PropertiesDescribedType props = new PropertiesDescribedType();
props.setMessageId("myMessageIDString");
@@ -289,15 +310,22 @@ public class MessageIntegrationTest extends QpidJmsTestCase
testPeer.expectLinkFlowRespondWithTransfer(null, null, props, null, amqpValueNullContent);
testPeer.expectDispositionThatIsAcceptedAndSettled();
- MessageConsumer messageConsumer = session.createConsumer(queue);
+ MessageConsumer messageConsumer = session.createConsumer(destination);
Message receivedMessage = messageConsumer.receive(1000);
testPeer.waitForAllHandlersToComplete(3000);
assertNotNull(receivedMessage);
Destination dest = receivedMessage.getJMSDestination();
- assertTrue(dest instanceof Queue);
- assertEquals(queueName, ((Queue)dest).getQueueName());
+ if (useQueue) {
+ assertNotNull("expected Queue instance, got null", dest);
+ assertTrue("expected Queue instance. Actual type was: " + dest.getClass().getName(), dest instanceof Queue);
+ assertEquals(queueName, ((Queue) dest).getQueueName());
+ } else {
+ assertNotNull("expected Topic instance, got null", dest);
+ assertTrue("expected Topic instance. Actual type was: " + dest.getClass().getName(), dest instanceof Topic);
+ assertEquals(topicName, ((Topic) dest).getTopicName());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org