@Override public void run() throws Exception { new ClientRequestor(session, requestAddress); } };
private ClientRequestor getClientRequestor(ClientSession session) throws Exception { return new ClientRequestor(session, ActiveMQDefaultConfiguration.getDefaultManagementAddress()); }
private Integer getQueueID(ClientSession session, SimpleString queueName) throws Exception { Integer queueID = -1; Object result; try (ClientRequestor requestor = new ClientRequestor(session, "activemq.management")) { ClientMessage managementMessage = session.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, "ID"); session.start(); logger.debug("Requesting ID for: " + queueName); ClientMessage reply = requestor.request(managementMessage); result = ManagementHelper.getResult(reply); } if (result != null && result instanceof Number) { queueID = ((Number) result).intValue(); } return queueID; }
try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queue, "ID");
try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queue, "ID");
@Override public void start() throws Exception { serverLocator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(NettyConnectorFactory.class.getName())); sf = serverLocator.createSessionFactory(); clientSession = sf.createSession(ActiveMQDefaultConfiguration.getDefaultClusterUser(), ActiveMQDefaultConfiguration.getDefaultClusterPassword(), false, true, true, false, 1); requestor = new ClientRequestor(clientSession, ActiveMQDefaultConfiguration.getDefaultManagementAddress()); clientSession.start(); }
public void performCoreManagement(ManagementCallback<ClientMessage> cb) throws Exception { try (ActiveMQConnectionFactory factory = createCoreConnectionFactory(); ServerLocator locator = factory.getServerLocator(); ClientSessionFactory sessionFactory = locator.createSessionFactory(); ClientSession session = sessionFactory.createSession(user, password, false, true, true, false, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE)) { session.start(); ClientRequestor requestor = new ClientRequestor(session, "activemq.management"); ClientMessage message = session.createMessage(false); cb.setUpInvocation(message); ClientMessage reply = requestor.request(message); if (ManagementHelper.hasOperationSucceeded(reply)) { cb.requestSuccessful(reply); } else { cb.requestFailed(reply); } } }
protected ClientMessage getQueueAttribute(String queueName, String attribute) throws Exception { 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(); } } } }
public void performCoreManagement(ManagementCallback<ClientMessage> cb) throws Exception { try (ActiveMQConnectionFactory factory = createCoreConnectionFactory(); ServerLocator locator = factory.getServerLocator(); ClientSessionFactory sessionFactory = locator.createSessionFactory(); ClientSession session = sessionFactory.createSession(user, password, false, true, true, false, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE)) { session.start(); ClientRequestor requestor = new ClientRequestor(session, "activemq.management"); ClientMessage message = session.createMessage(false); cb.setUpInvocation(message); ClientMessage reply = requestor.request(message); if (ManagementHelper.hasOperationSucceeded(reply)) { cb.requestSuccessful(reply); } else { cb.requestFailed(reply); } } }
protected ClientMessage getQueueAttribute(String queueName, String attribute) throws Exception { 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(); } } } }
ClientRequestor requestor = new ClientRequestor(session, ActiveMQDefaultConfiguration.getDefaultManagementAddress());
@Test public void testRequest() throws Exception { final SimpleString key = RandomUtil.randomSimpleString(); long value = RandomUtil.randomLong(); SimpleString requestAddress = new SimpleString("AdTest"); SimpleString requestQueue = RandomUtil.randomSimpleString(); final ClientSession session = sf.createSession(false, true, true); session.start(); session.createTemporaryQueue(requestAddress, requestQueue); ClientConsumer requestConsumer = session.createConsumer(requestQueue); requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session)); ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); request.putLongProperty(key, value); ClientMessage reply = requestor.request(request, 500); Assert.assertNotNull("reply was not received", reply); Assert.assertEquals(value, reply.getObjectProperty(key)); Thread.sleep(5000); session.close(); }
@Test public void testRequestWithRequestConsumerWhichDoesNotReply() throws Exception { SimpleString requestAddress = RandomUtil.randomSimpleString(); SimpleString requestQueue = RandomUtil.randomSimpleString(); ClientSessionFactory sf = createSessionFactory(locator); final ClientSession session = sf.createSession(false, true, true); session.start(); session.createTemporaryQueue(requestAddress, requestQueue); ClientConsumer requestConsumer = session.createConsumer(requestQueue); requestConsumer.setMessageHandler(new MessageHandler() { // return a message with the negative request's value @Override public void onMessage(final ClientMessage request) { // do nothing -> no reply } }); ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); ClientMessage reply = requestor.request(request, 500); Assert.assertNull(reply); session.close(); }
try (ClientRequestor requestor = new ClientRequestor(session, managementAddress)) {
ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); request.putLongProperty(key, value);
@Test public void testClose() throws Exception { final SimpleString key = RandomUtil.randomSimpleString(); long value = RandomUtil.randomLong(); SimpleString requestAddress = RandomUtil.randomSimpleString(); SimpleString requestQueue = RandomUtil.randomSimpleString(); ClientSessionFactory sf = createSessionFactory(locator); final ClientSession session = sf.createSession(false, true, true); session.start(); session.createTemporaryQueue(requestAddress, requestQueue); ClientConsumer requestConsumer = session.createConsumer(requestQueue); requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session)); final ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); request.putLongProperty(key, value); ClientMessage reply = requestor.request(request, 500); Assert.assertNotNull("reply was not received", reply); Assert.assertEquals(value, reply.getObjectProperty(key)); request = session.createMessage(false); request.putLongProperty(key, value + 1); requestor.close(); ActiveMQAction activeMQAction = new ActiveMQAction() { @Override public void run() throws Exception { requestor.request(session.createMessage(false), 500); } }; ActiveMQTestBase.expectActiveMQException("can not send a request on a closed ClientRequestor", ActiveMQExceptionType.OBJECT_CLOSED, activeMQAction); }
@Test public void testTwoRequests() throws Exception { final SimpleString key = RandomUtil.randomSimpleString(); long value = RandomUtil.randomLong(); SimpleString requestAddress = RandomUtil.randomSimpleString(); SimpleString requestQueue = RandomUtil.randomSimpleString(); ClientSessionFactory sf = createSessionFactory(locator); final ClientSession session = sf.createSession(false, true, true); session.start(); session.createTemporaryQueue(requestAddress, requestQueue); ClientConsumer requestConsumer = session.createConsumer(requestQueue); requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session)); ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); request.putLongProperty(key, value); ClientMessage reply = requestor.request(request, 500); Assert.assertNotNull("reply was not received", reply); Assert.assertEquals(value, reply.getObjectProperty(key)); request = session.createMessage(false); request.putLongProperty(key, value + 1); reply = requestor.request(request, 500); Assert.assertNotNull("reply was not received", reply); Assert.assertEquals(value + 1, reply.getObjectProperty(key)); session.close(); }