Plugins
Hawtio is highly modular, and it includes plugins for different technologies out of the box. Hawtio plugins are essentially React components that are self-contained with all the JavaScript, CSS, and images to make them work. They can utilise Hawtio core features such as authentication and event notification through the Plugin API.
The only requirement for a plugin is to provide the entrypoint that Hawtio can load it from, which must conform to the specification of Webpack Module Federation.
Hawtio uses JMX to discover which MBeans are present and then dynamically updates the navigation bars and tabs based on what it finds. The UI is updated whenever Hawtio reloads the MBean, which it does periodically or a plugin can trigger explicitly.
Relying on JMX for discovery doesn’t mean that plugins can only interact with JMX. They can do anything at all that a browser can, e.g. use REST to discover UI capabilities and other plugins.
Built-in plugins
The following plugins are all included by default in Hawtio:
Plugin | Description |
---|---|
Adds support for Apache Camel. Allows you to browse Camel contexts, routes, endpoints, etc.; visualise running routes and their metrics; create endpoints; send messages; trace message flows; and profile routes to identify which parts runs fast or slow.
|
|
Allows you to connect to local or remote JVMs.
|
|
Diagnostics |
Allows you to control the Java Flight Recorder, see class histogram and access to JVM flags. |
Provides the core JMX support for interacting with MBeans, viewing real time attributes, charting, and invoking operations. |
|
Provides support for viewing the logs inside the JVM.
|
|
Allows you to view the status of Quartz schedulers and configure them. Also allows you to configure and fire jobs and triggers from the console. If you use Camel Quartz component with your Camel application, this plugin will be automatically enabled. |
|
Provides general overview of the Java process including threads, system properties, and key metrics. |
|
Shows information about the Spring Boot application.
|
Known external plugins
The following plugins are developed by external communities.
- Apache ActiveMQ Artemis plugin
-
Apache ActiveMQ Artemis ships with its own web management console, which is built on top of Hawtio with an external plugin that provides the dedicated view for Artemis brokers. You can navigate the acceptors and addresses through the console and operate on them. See Artemis User Manual - Management Console for more information.
Custom plugins
You can also extend the Hawtio capabilities by developing a custom plugin.
Typically, plugin development involves TypeScript, React, and PatternFly v4. For now, we have a few examples that demonstrate how you can develop a custom plugin to extend Hawtio.
- Sample plugin within the Hawtio project examples
-
https://github.com/hawtio/hawtio/tree/4.x/examples/sample-plugin
The simplest form of a Hawtio plugin. It packages itself as a JAR, and then can be used by including it as a dependency in a Java project. - Sample plugin for Spring Boot
-
https://github.com/hawtio/hawtio-sample-plugin-ts
This sample demonstrates how to write and use a custom Hawtio plugin in a Spring Boot application. - Sample plugin as a WAR application
-
https://github.com/hawtio/hawtio-sample-war-plugin-ts
This sample demonstrates how to write a custom Hawtio plugin as a WAR file, which can be later deployed to an application server such as Jetty, WildFly, and Tomcat.