activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clebert Suconic <clebert.suco...@gmail.com>
Subject Re: Pure JMS management
Date Fri, 19 May 2017 01:10:23 GMT
@Tim Bain: yes.. Artemis from what I see on the class Names (I also
spoke to him gnodet on the IRC channel earlier today).

@gnodet: I am not understanding why you would need to use reflection.
You can just simply use JMSManagementHelper directly. they are all
static methods...


This example here, part of distribution under
examples/features/standard/management shows how it was intended to be
used:


https://github.com/apache/activemq-artemis/blob/master/examples/features/standard/management/src/main/java/org/apache/activemq/artemis/jms/example/ManagementExample.java



Maybe I"m misunderstanding your question?

On Thu, May 18, 2017 at 6:23 PM, Guillaume Nodet <gnodet@apache.org> wrote:
> I'm trying do perform management operation with pure JMS api.
> To retrieve the list of queues, I'm currently using the following code:
>
> QueueSession session = ((QueueConnection)
> connection).createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
> Queue managementQueue = session.createQueue("activemq.management");
> QueueRequestor requestor = new QueueRequestor(session, managementQueue);
> connection.start();
> TextMessage m = session.createTextMessage();
> m.setStringProperty("_AMQ_ResourceName", "broker");
> m.setStringProperty("_AMQ_OperationName", "getQueueNames");
> m.setText("[\"" + routing + "\"]");
> Message reply = requestor.request(m);
> Class<?> mgmtHelperClass =
> connection.getClass().getClassLoader().loadClass("org.apache.activemq.artemis.api.jms.management.JMSManagementHelper");
> Method getResultsMethod = mgmtHelperClass.getMethod("getResults",
> Message.class);
> Object[] results = (Object[]) getResultsMethod.invoke(null, reply);
> List<String> names = new ArrayList<>();
> for (Object o : (Object[]) (results[0])) {
>     names.add(o.toString());
> }
> return names;
>
>
> It works, but I think I should not have to use reflection to access the
> result message, hence the use of reflection to access the
> JMSManagementHelper methods.
> It seems to me the reply should be of type TextMessage, but it's currently
> untyped, so I can't use TextMessage#getText to retrieve the json result,
> and I can't find a way to retrieve it another way.
> Do I miss anything ?
>
> --
> ------------------------
> Guillaume Nodet



-- 
Clebert Suconic

Mime
View raw message