You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2017/09/12 13:44:56 UTC

[1/2] activemq-artemis git commit: ARTEMIS-1413: FIX JMSDeliveryMode/Priority on AMQP to CORE conversion

Repository: activemq-artemis
Updated Branches:
  refs/heads/master 4871feac9 -> 04a585ff8


ARTEMIS-1413: FIX JMSDeliveryMode/Priority on AMQP to CORE conversion

Added test case for cross protocol on JMSDeliveryMode proving issue, and asserting fix
Added fix to AmqpCoreConverter to ensure durability (JMSDeliveryMode) is retained.

Similar issue spotted with JMSPriority as with JMSDeliveyMode, fixing at the same time.
Added extra test case for jmspriority
Added fix for jmspriority

Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/ee53b2bf
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/ee53b2bf
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/ee53b2bf

Branch: refs/heads/master
Commit: ee53b2bf53bcfac079780ff9cf81507529c74636
Parents: 4871fea
Author: Michael Andre Pearce <Mi...@me.com>
Authored: Mon Sep 11 23:15:36 2017 +0100
Committer: Michael Andre Pearce <Mi...@me.com>
Committed: Mon Sep 11 23:18:50 2017 +0100

----------------------------------------------------------------------
 .../amqp/converter/AmqpCoreConverter.java       |   2 +
 .../amqp/JMSMessageConsumerTest.java            | 119 +++++++++++++++++++
 2 files changed, 121 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ee53b2bf/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java
----------------------------------------------------------------------
diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java
index 215c77f..5512e0e 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java
@@ -181,6 +181,8 @@ public class AmqpCoreConverter {
 
       populateMessage(result, message.getProtonMessage());
       result.getInnerMessage().setReplyTo(message.getReplyTo());
+      result.getInnerMessage().setDurable(message.isDurable());
+      result.getInnerMessage().setPriority(message.getPriority());
 
       result.encode();
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ee53b2bf/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
index 68a9801..91f6ca8 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
@@ -47,6 +47,125 @@ public class JMSMessageConsumerTest extends JMSClientTestSupport {
 
    protected static final Logger LOG = LoggerFactory.getLogger(JMSMessageConsumerTest.class);
 
+   @Override
+   protected String getConfiguredProtocols() {
+      return "AMQP,OPENWIRE,CORE";
+   }
+
+   @Test(timeout = 30000)
+   public void testDeliveryModeAMQPProducerCoreConsumer() throws Exception {
+      Connection connection = createConnection(); //AMQP
+      Connection connection2 = createCoreConnection(); //CORE
+      testDeliveryMode(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testDeliveryModeAMQPProducerAMQPConsumer() throws Exception {
+      Connection connection = createConnection(); //AMQP
+      Connection connection2 = createConnection(); //AMQP
+      testDeliveryMode(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testDeliveryModeCoreProducerAMQPConsumer() throws Exception {
+      Connection connection = createCoreConnection(); //CORE
+      Connection connection2 = createConnection(); //AMQP
+      testDeliveryMode(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testDeliveryModeCoreProducerCoreConsumer() throws Exception {
+      Connection connection = createCoreConnection(); //CORE
+      Connection connection2 = createCoreConnection(); //CORE
+      testDeliveryMode(connection, connection2);
+   }
+
+   private void testDeliveryMode(Connection connection1, Connection connection2) throws JMSException {
+      try {
+         Session session1 = connection1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+         javax.jms.Queue queue1 = session1.createQueue(getQueueName());
+         javax.jms.Queue queue2 = session2.createQueue(getQueueName());
+
+         final MessageConsumer consumer2 = session2.createConsumer(queue2);
+
+         MessageProducer producer = session1.createProducer(queue1);
+         producer.setDeliveryMode(DeliveryMode.PERSISTENT);
+         connection1.start();
+
+         TextMessage message = session1.createTextMessage();
+         message.setText("hello");
+         producer.send(message);
+
+         Message received = consumer2.receive(100);
+
+         assertNotNull("Should have received a message by now.", received);
+         assertTrue("Should be an instance of TextMessage", received instanceof TextMessage);
+         assertEquals(DeliveryMode.PERSISTENT, received.getJMSDeliveryMode());
+      } finally {
+         connection1.close();
+         connection2.close();
+      }
+   }
+
+   @Test(timeout = 30000)
+   public void testPriorityAMQPProducerCoreConsumer() throws Exception {
+      Connection connection = createConnection(); //AMQP
+      Connection connection2 = createCoreConnection(); //CORE
+      testPriority(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testPriorityAMQPProducerAMQPConsumer() throws Exception {
+      Connection connection = createConnection(); //AMQP
+      Connection connection2 = createConnection(); //AMQP
+      testPriority(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testPriorityModeCoreProducerAMQPConsumer() throws Exception {
+      Connection connection = createCoreConnection(); //CORE
+      Connection connection2 = createConnection(); //AMQP
+      testPriority(connection, connection2);
+   }
+
+   @Test(timeout = 30000)
+   public void testPriorityCoreProducerCoreConsumer() throws Exception {
+      Connection connection = createCoreConnection(); //CORE
+      Connection connection2 = createCoreConnection(); //CORE
+      testPriority(connection, connection2);
+   }
+
+   private void testPriority(Connection connection1, Connection connection2) throws JMSException {
+      try {
+         Session session1 = connection1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+         javax.jms.Queue queue1 = session1.createQueue(getQueueName());
+         javax.jms.Queue queue2 = session2.createQueue(getQueueName());
+
+         final MessageConsumer consumer2 = session2.createConsumer(queue2);
+
+         MessageProducer producer = session1.createProducer(queue1);
+         producer.setPriority(2);
+         connection1.start();
+
+         TextMessage message = session1.createTextMessage();
+         message.setText("hello");
+         producer.send(message);
+
+         Message received = consumer2.receive(100);
+
+         assertNotNull("Should have received a message by now.", received);
+         assertTrue("Should be an instance of TextMessage", received instanceof TextMessage);
+         assertEquals(2, received.getJMSPriority());
+      } finally {
+         connection1.close();
+         connection2.close();
+      }
+   }
+
    @Test(timeout = 60000)
    public void testSelector() throws Exception {
       Connection connection = createConnection();


[2/2] activemq-artemis git commit: This closes #1529

Posted by ta...@apache.org.
This closes #1529


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/04a585ff
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/04a585ff
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/04a585ff

Branch: refs/heads/master
Commit: 04a585ff85affd892f7c8a656a3611b30119634a
Parents: 4871fea ee53b2b
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Sep 12 09:44:44 2017 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Sep 12 09:44:44 2017 -0400

----------------------------------------------------------------------
 .../amqp/converter/AmqpCoreConverter.java       |   2 +
 .../amqp/JMSMessageConsumerTest.java            | 119 +++++++++++++++++++
 2 files changed, 121 insertions(+)
----------------------------------------------------------------------