Reputation: 426
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?
Upvotes: 0
Views: 2074
Reputation: 1
The Artemis Console is, as already pointed out in this thread, powered by Hawtio. ActiveMQ Branding just adds some logos and Artemis Plugin provides the "Artemis" tab.
Regarding authentication
It is (currently) impossible to use Artemis Console with enabled authentication on newer versions of JBoss EAP/WildFly, since the legacy security subsystem got replaced with Elytron. Artemis Console uses the Artifact hawtio-war, which doesn't support Elytron. According to this Pull Request, Hawtio only ships with Elytron support on the WildFly specific distribution, hawtio-wildfly.
You can, however, omit Artemis Console and ActiveMQ Branding. Just be sure that you provide the same version of Hawtio which the Artemis Console WAR would use. You can find the used Hawtio version for example in the compile dependencies of mvnrepository.com or in the unpacked WAR.
Elytron is currently only supported by hawtio-wildfly 2.17.7 and upcoming versions. This means, you're also limited to the newest version of Artemis Plugin (2.32.0), because this is the only one that supports this Hawtio version (yet).
TL;DR
You can deploy Artemis Plugin 2.32.0 together with hawtio-wildfly 2.17.7, and viola, you'll have a "Artemis Console", which supports authenticating by your application users of your EAP/WildFly instance. (Just make sure that you'll enable "management jmx-enabled" for the "messaging-activemq" Subsystem in your standalone.xml)
Further information on configuring Hawtio authentication is found here
Upvotes: 0
Reputation: 34973
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:
console.war
)artemis-plugin.war
)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.
Upvotes: 1
Reputation: 426
Based on the advice of Justin Bertram I did the following:
Download Wildfly
Download ActiveMQ Artemis
Unzip them both and copy the web directory of Artemis (i.e. /apache-artemis-2.18.0/web) to the deployments directory of Wildfly (i.e /wildfly-24.0.1.Final/standalone/deployments)
Start Wildfly and connect to the Jolokia endpoint of the remote ActiveMQ Artemis Broker.
Upvotes: 0