activemq-artemishawtio

Accessing Embedded ActiveMQ Artemis with Hawtio


I have Spring Boot application that includes an embedded ActiveMQ Artemis and Camel. This uses the following ActiveMQ dependency:

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-server</artifactId>
        <version>2.18.0</version>
    </dependency>

I also use Jolokia as dependency. When connecting to the application with a remote Hawtio instance the Camel plugin is enabled and I can also see Camel and ActiveMQ Artemis through the JMX Plugin. However the ActiveMQ plugin is not enabled (though it is included in a default Hawtio installation).

How can I make Hawtio recognize ActiveMQ, so that it enables the Hawtio ActiveMQ Plugin?


Solution

  • The ActiveMQ plugin shipped with Hawtio is for the ActiveMQ "Classic" broker, not ActiveMQ Artemis. Therefore, it won't detect the embedded instance of ActiveMQ Artemis.

    ActiveMQ Artemis itself has a Hawtio plugin consisting of three parts:

    1. artemis-console (rename as console.war)
    2. artemis-plugin (rename as artemis-plugin.war)
    3. activemq-branding (rename as activemq-branding.war)

    You could download those war files and deploy them in your web application server (assuming you have one). I've done this on Wildfly 24 and it worked fine once I relaxed security on the remote ActiveMQ Artemis instance (allowing "guest" users and disabling CORS in jolokia-access.xml). Of course, in production you'll want to sort out the security issues, but this should get you moving in the right direction.