diff --git a/artemis-cli/pom.xml b/artemis-cli/pom.xml index a8b7a92b1a..d0007bc5bb 100644 --- a/artemis-cli/pom.xml +++ b/artemis-cli/pom.xml @@ -149,7 +149,7 @@ org.apache.activemq artemis-junit - 2.7.0-SNAPSHOT + ${project.version} test diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java index 64c6e66d94..ff6f71aa8f 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java @@ -97,20 +97,6 @@ public class DestAbstract extends ConnectionAbstract { return new XMLMessageSerializer(); } - // FIXME We currently do not support producing to FQQN. This is a work around. - private ClientSession getManagementSession() throws Exception { - ServerLocator serverLocator = ActiveMQClient.createServerLocator(brokerURL); - ClientSessionFactory sf = serverLocator.createSessionFactory(); - - ClientSession managementSession; - if (user != null || password != null) { - managementSession = sf.createSession(user, password, false, true, true, false, 0); - } else { - managementSession = sf.createSession(false, true, true); - } - return managementSession; - } - public byte[] getQueueIdFromName(String queueName) throws Exception { try { ClientMessage message = getQueueAttribute(queueName, "ID"); @@ -124,17 +110,26 @@ public class DestAbstract extends ConnectionAbstract { } protected ClientMessage getQueueAttribute(String queueName, String attribute) throws Exception { - ClientSession managementSession = getManagementSession(); - managementSession.start(); + try (ServerLocator serverLocator = ActiveMQClient.createServerLocator(brokerURL)) { + try (ClientSessionFactory sf = serverLocator.createSessionFactory()) { + ClientSession managementSession; + if (user != null || password != null) { + managementSession = sf.createSession(user, password, false, true, true, false, 0); + } else { + managementSession = sf.createSession(false, true, true); + } + managementSession.start(); - try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { - ClientMessage managementMessage = managementSession.createMessage(false); - ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, attribute); - managementSession.start(); - ClientMessage reply = requestor.request(managementMessage); - return reply; - } finally { - managementSession.stop(); + try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { + ClientMessage managementMessage = managementSession.createMessage(false); + ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, attribute); + managementSession.start(); + ClientMessage reply = requestor.request(managementMessage); + return reply; + } finally { + managementSession.stop(); + } + } } } diff --git a/artemis-cli/src/test/java/org/apache/activemq/cli/test/MessageSerializerTest.java b/artemis-cli/src/test/java/org/apache/activemq/cli/test/MessageSerializerTest.java index df791043a9..ba0f73233a 100644 --- a/artemis-cli/src/test/java/org/apache/activemq/cli/test/MessageSerializerTest.java +++ b/artemis-cli/src/test/java/org/apache/activemq/cli/test/MessageSerializerTest.java @@ -58,6 +58,7 @@ import static org.junit.Assert.assertTrue; public class MessageSerializerTest extends CliTestBase { private Connection connection; + private ActiveMQConnectionFactory cf; @Before @Override @@ -65,7 +66,7 @@ public class MessageSerializerTest extends CliTestBase { setupAuth(); super.setup(); startServer(); - ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616"); + cf = new ActiveMQConnectionFactory("tcp://localhost:61616"); connection = cf.createConnection("admin", "admin"); } @@ -74,6 +75,7 @@ public class MessageSerializerTest extends CliTestBase { public void tearDown() throws Exception { try { connection.close(); + cf.close(); } finally { stopServer(); super.tearDown();