This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/master by this push:
     new 755fa0c  ARTEMIS-2315 ClientSession.createQueue routing-type bug
     new 214dd0d  This closes #2630
755fa0c is described below

commit 755fa0c3a6c17e1319bad77d0a5ec1288b863a06
Author: Justin Bertram <[email protected]>
AuthorDate: Fri Apr 19 14:46:30 2019 -0500

    ARTEMIS-2315 ClientSession.createQueue routing-type bug
---
 .../core/client/impl/ClientSessionImpl.java        |   1 +
 .../tests/integration/client/SessionTest.java      | 142 +++++++++++++++++++++
 2 files changed, 143 insertions(+)

diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java
index 766ca91..58b9eee 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java
@@ -386,6 +386,7 @@ public final class ClientSessionImpl implements 
ClientSessionInternal, FailureLi
    public void createQueue(final String address, final RoutingType 
routingType, final String queueName, final String filterString,
                            final boolean durable, final boolean autoCreated) 
throws ActiveMQException {
       createQueue(SimpleString.toSimpleString(address),
+                  routingType,
                   SimpleString.toSimpleString(queueName),
                   SimpleString.toSimpleString(filterString),
                   durable,
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
index dcadaa7..c8c9d1a 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
@@ -17,10 +17,12 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import java.util.List;
+import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQInternalErrorException;
+import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -495,4 +497,144 @@ public class SessionTest extends ActiveMQTestBase {
       String nodeId = ((ClientSessionInternal) clientSession).getNodeId();
       assertNotNull(nodeId);
    }
+
+   @Test
+   public void testCreateQueue() throws Exception {
+      cf = createSessionFactory(locator);
+      ClientSession clientSession = addClientSession(cf.createSession(false, 
true, true));
+      SimpleString queueName = 
SimpleString.toSimpleString(UUID.randomUUID().toString());
+      SimpleString addressName = 
SimpleString.toSimpleString(UUID.randomUUID().toString());
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString());
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName, true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertTrue(result.isDurable());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString(), true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertTrue(result.isDurable());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName, SimpleString.toSimpleString("filter"), true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString(), "filter", true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName, SimpleString.toSimpleString("filter"), true, true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString(), "filter", true, true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName, SimpleString.toSimpleString("filter"), true, true, 0, true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         assertEquals(0, result.getMaxConsumers());
+         assertTrue(result.isPurgeOnNoConsumers());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         assertEquals(0, result.getMaxConsumers());
+         assertTrue(result.isPurgeOnNoConsumers());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName, RoutingType.ANYCAST, 
queueName, SimpleString.toSimpleString("filter"), true, true, 0, true, true, 
true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         assertEquals(0, result.getMaxConsumers());
+         assertTrue(result.isPurgeOnNoConsumers());
+         assertTrue(result.isExclusive());
+         assertTrue(result.isLastValue());
+         server.destroyQueue(queueName);
+      }
+      {
+         clientSession.createQueue(addressName.toString(), 
RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true, true, 
true);
+         Queue result = server.locateQueue(queueName);
+         assertEquals(addressName, result.getAddress());
+         assertEquals(queueName, result.getName());
+         assertEquals(RoutingType.ANYCAST, result.getRoutingType());
+         assertEquals("filter", 
result.getFilter().getFilterString().toString());
+         assertTrue(result.isDurable());
+         assertTrue(result.isAutoCreated());
+         assertEquals(0, result.getMaxConsumers());
+         assertTrue(result.isPurgeOnNoConsumers());
+         assertTrue(result.isExclusive());
+         assertTrue(result.isLastValue());
+         server.destroyQueue(queueName);
+      }
+   }
 }

Reply via email to