PageSourceSearch

https://hawt.io/docs/plugins.html

html hawt.io collected 2026-09-24 23:06:03 UTC 18,490 bytes, 419 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>Plugins :: Hawtio</title>
7    <meta name="generator" content="Antora 3.1.10">
8<link rel='stylesheet' href='../_/css/site.css' />
9<link rel='stylesheet' href='../_/css/docs.css' />
10  </head>
11  <body class="article">
12<header class="header">
13  <nav class="navbar">
14    <div class="navbar-brand">
15      <a class="navbar-item" href="..">
16        <img src="../_/img/hawtio_logo.svg" alt="Hawtio" height="40px" />
17      </a>
18      <button class="navbar-burger" aria-controls="topbar-nav" aria-expanded="false" aria-label="Toggle main menu">
19        <span></span>
20        <span></span>
21        <span></span>
22      </button>
23    </div>
24    <div id="topbar-nav" class="navbar-menu">
25      <div class="navbar-end">
26        <a class="navbar-item" href="/">Home</a>
27        <a class="navbar-item" href="/docs/get-started.html">Get Started</a>
28        <a class="navbar-item" href="/docs/">Docs</a>
29        <a class="navbar-item" href="/docs/plugins.html">Plugins</a>
30        <a class="navbar-item" href="https://github.com/hawtio/hawtio/releases">Download</a>
31        <a class="navbar-item" href="/community/">Community</a>
32        <a class="navbar-item" href="https://github.com/hawtio/hawtio">
33          <img src="../_/img/social/github-light-32.png" alt="GitHub" height="20px" />
34        </a>
35        <a class="navbar-item" href="https://twitter.com/hawtio">
36          <img src="../_/img/social/twitter-white.png" alt="Twitter" height="20px" />
37        </a>
38        <a class="navbar-item" href="https://stackoverflow.com/questions/tagged/hawtio">
39          <img src="../_/img/social/stackoverflow.png" alt="StackOverflow" height="20px" />
40        </a>
41      </div>
42    </div>
43  </nav>
44</header>
45
46<div class="body">
47<div class="nav-container" data-component="docs" data-version="">
48  <aside class="nav">
49    <div class="panels">
50<div class="nav-panel-menu is-active" data-panel="menu">
51  <nav class="nav-menu">
52    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
53    <h3 class="title"><a href="index.html">Documentation</a></h3>
54<ul class="nav-list">
55  <li class="nav-item" data-depth="0">
56<ul class="nav-list">
57  <li class="nav-item" data-depth="1">
58    <button class="nav-item-toggle"></button>
59    <a class="nav-link" href="index.html">Overview</a>
60<ul class="nav-list">
61  <li class="nav-item" data-depth="2">
62    <a class="nav-link" href="overview.html">What is Hawtio?</a>
63  </li>
64  <li class="nav-item" data-depth="2">
65    <a class="nav-link" href="get-started.html">Get Started</a>
66  </li>
67  <li class="nav-item" data-depth="2">
68    <a class="nav-link" href="versions.html">Supported Versions</a>
69  </li>
70</ul>
71  </li>
72  <li class="nav-item" data-depth="1">
73    <button class="nav-item-toggle"></button>
74    <span class="nav-text">Using Hawtio</span>
75<ul class="nav-list">
76  <li class="nav-item" data-depth="2">
77    <a class="nav-link" href="configuration.html">Configuration</a>
78  </li>
79  <li class="nav-item is-current-page" data-depth="2">
80    <button class="nav-item-toggle"></button>
81    <a class="nav-link" href="plugins.html">Plugins</a>
82<ul class="nav-list">
83  <li class="nav-item" data-depth="3">
84    <a class="nav-link" href="plugins/camel.html">Camel</a>
85  </li>
86</ul>
87  </li>
88</ul>
89  </li>
90  <li class="nav-item" data-depth="1">
91    <button class="nav-item-toggle"></button>
92    <span class="nav-text">Securing Hawtio</span>
93<ul class="nav-list">
94  <li class="nav-item" data-depth="2">
95    <a class="nav-link" href="security.html">Security</a>
96  </li>
97  <li class="nav-item" data-depth="2">
98    <a class="nav-link" href="oidc.html">OpenID Connect Integration</a>
99  </li>
100  <li class="nav-item" data-depth="2">
101    <a class="nav-link" href="keycloak.html">Keycloak Integration</a>
102  </li>
103</ul>
104  </li>
105  <li class="nav-item" data-depth="1">
106    <button class="nav-item-toggle"></button>
107    <span class="nav-text">Kubernetes/OpenShift</span>
108<ul class="nav-list">
109  <li class="nav-item" data-depth="2">
110    <a class="nav-link" href="online/openshift.html">
110OpenShift</a>
111  </li>
112  <li class="nav-item" data-depth="2">
113    <a class="nav-link" href="online/kubernetes.html">Kubernetes</a>
114  </li>
115  <li class="nav-item" data-depth="2">
116    <a class="nav-link" href="online/create-user.html">Creating a Hawtio user for Form authentication</a>
117  </li>
118  <li class="nav-item" data-depth="2">
119    <a class="nav-link" href="online/generate-certificates.html">Generating Certificates Manually</a>
120  </li>
121  <li class="nav-item" data-depth="2">
122    <a class="nav-link" href="online/rbac.html">RBAC</a>
123  </li>
124  <li class="nav-item" data-depth="2">
125    <a class="nav-link" href="online/develop.html">Development</a>
126  </li>
127</ul>
128  </li>
129  <li class="nav-item" data-depth="1">
130    <button class="nav-item-toggle"></button>
131    <span class="nav-text">General Docs</span>
132<ul class="nav-list">
133  <li class="nav-item" data-depth="2">
134    <a class="nav-link" href="faq.html">FAQ</a>
135  </li>
136  <li class="nav-item" data-depth="2">
137    <a class="nav-link" href="releases.html">Releases</a>
138  </li>
139  <li class="nav-item" data-depth="2">
140    <a class="nav-link" href="contributing.html">Contributor Guide</a>
141  </li>
142</ul>
143  </li>
144  <li class="nav-item" data-depth="1">
145    <button class="nav-item-toggle"></button>
146    <span class="nav-text">Developers</span>
147<ul class="nav-list">
148  <li class="nav-item" data-depth="2">
149    <a class="nav-link" href="developers/history.html">A bit of history</a>
150  </li>
151  <li class="nav-item" data-depth="2">
152    <a class="nav-link" href="developers/architecture.html">Hawtio Architecture</a>
153  </li>
154  <li class="nav-item" data-depth="2">
155    <a class="nav-link" href="developers/applications.html">Developing Hawtio applications</a>
156  </li>
157  <li class="nav-item" data-depth="2">
158    <a class="nav-link" href="developers/plugins.html">Developing Hawtio plugins</a>
159  </li>
160  <li class="nav-item" data-depth="2">
161    <a class="nav-link" href="releasing.html">Releasing Hawtio</a>
162  </li>
163</ul>
164  </li>
165</ul>
166  </li>
167</ul>
168  </nav>
169</div>
170<div class="nav-panel-explore" data-panel="explore">
171  <div class="context">
172    <span class="title">Documentation</span>
173    <span class="version"></span>
174  </div>
175  <ul class="components">
176    <li class="component is-current">
177      <a class="title" href="index.html">Documentation</a>
178    </li>
179  </ul>
180</div>
181    </div>
182  </aside>
183</div>
184<main class="article">
185<div class="toolbar" role="navigation">
186<button class="nav-toggle"></button>
187<nav class="breadcrumbs" aria-label="breadcrumbs">
188  <ul>
189    <li><a href="index.html">Documentation</a></li>
190    <li>Using Hawtio</li>
191    <li><a href="plugins.html">Plugins</a></li>
192  </ul>
193</nav>
194<div class="edit-this-page"><a href="https://github.com/hawtio/website/blob/main/modules/ROOT/pages/plugins.adoc">Edit this Page</a></div>
195</div>
196  <div class="content">
197<aside class="toc sidebar" data-title="Contents" data-levels="2">
198  <div class="toc-menu"></div>
199</aside>
200<article class="doc">
201<h1 class="page">Plugins</h1>
202<div id="preamble">
203<div class="sectionbody">
204<div class="paragraph">
205<p>Hawtio is highly modular, and it includes plugins for different technologies out of the box. Hawtio plugins are essentially <a href="https://react.dev/">React</a> 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.</p>
206</div>
207<div class="paragraph">
208<p>The only requirement for a plugin is to provide the entrypoint that Hawtio can load it from, which must conform to the specification of <a href="https://module-federation.io/">Webpack Module Federation</a>.</p>
209</div>
210<div class="paragraph">
211<p>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.</p>
212</div>
213<div class="paragraph">
214<p>Relying on JMX for discovery doesn&#8217;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.</p>
215</div>
216</div>
217</div>
218<div class="sect1">
219<h2 id="_built_in_plugins"><a class="anchor" href="#_built_in_plugins"></a>Built-in plugins</h2>
220<div class="sectionbody">
221<div class="paragraph">
222<p>The following plugins are all included by default in Hawtio:</p>
223</div>
224<table class="tableblock frame-all grid-all stripes-even stretch">
225<caption class="title">Table 1. List of built-in plugins</caption>
226<colgroup>
227<col style="width: 16.6666%;">
228<col style="width: 83.3334%;">
229</colgroup>
230<thead>
231<tr>
232<th class="tableblock halign-left valign-top">Plugin</th>
233<th class="tableblock halign-left valign-top">Description</th>
234</tr>
235</thead>
236<tbody>
237<tr>
238<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="plugins/camel.html" class="xref page">Camel</a></p></td>
239<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
240<p>
240Adds support for <a href="https://camel.apache.org">Apache Camel</a>. 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.</p>
241</div>
242<div class="dlist">
243<dl>
244<dt class="hdlist1">Requirements</dt>
245<dd>
246<p>A Camel application needs to be running in the JVM. The Camel application needs to include <a href="https://camel.apache.org/manual/jmx.html">Camel Management</a> component to enable JMX. The Source tab requires <a href="https://camel.apache.org/components/3.21.x/others/java-xml-jaxb-dsl.html">Camel XML DSL</a> support. The Debug tab requires <a href="https://camel.apache.org/components/3.21.x/others/debug.html">Camel Debug</a> component. The Trace tab requires enabling of <a href="https://camel.apache.org/manual/tracer.html">Camel Tracer</a>.</p>
247</dd>
248</dl>
249</div></div></td>
250</tr>
251<tr>
252<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/connect">Connect</a></p></td>
253<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
254<p>Allows you to connect to local or remote JVMs.</p>
255</div>
256<div class="dlist">
257<dl>
258<dt class="hdlist1">Requirements</dt>
259<dd>
260<p>The Discover tab requires <code>io.hawt:hawtio-local-jvm-mbean</code> to the dependencies.</p>
261</dd>
262</dl>
263</div></div></td>
264</tr>
265<tr>
266<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/jvm-diagnostics">JVM Diagnostics (Tech preview)</a></p></td>
267<td class="tableblock halign-left valign-top"><p class="tableblock">The JVM Diagnostics plugin allows you to retrieve information from your Java runtime. Implements the Java Flight Recorder.</p></td>
268</tr>
269<tr>
270<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/jmx">JMX</a></p></td>
271<td class="tableblock halign-left valign-top"><p class="tableblock">Provides the core <a href="https://www.oracle.com/java/technologies/javase/javamanagement.html">JMX</a> support for interacting with MBeans, viewing real time attributes, charting, and invoking operations.</p></td>
272</tr>
273<tr>
274<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/logs">Logs</a></p></td>
275<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
276<p>Provides support for viewing the logs inside the JVM.</p>
277</div>
278<div class="dlist">
279<dl>
280<dt class="hdlist1">Requirements</dt>
281<dd>
282<p>Requires <code>io.hawt:hawtio-log</code> and a logging framework-specific implementation for <code>hawtio-log</code> to the dependencies. Currently, only <code>io.hawt:hawtio-log-logback</code> is provided.</p>
283</dd>
284</dl>
285</div></div></td>
286</tr>
287<tr>
288<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/quartz">Quartz</a></p></td>
289<td class="tableblock halign-left valign-top"><p class="tableblock">Allows you to view the status of <a href="https://www.quartz-scheduler.org/">Quartz</a> schedulers and configure them. Also allows you to configure and fire jobs and triggers from the console. If you use <a href="https://camel.apache.org/components/3.21.x/quartz-component.html">Camel Quartz</a> component with your Camel application, this plugin will be automatically enabled.</p></td>
290</tr>
291<tr>
292<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/runtime">Runtime</a></p></td>
293<td class="tableblock halign-left valign-top"><p class="tableblock">Provides general overview of the Java process including threads, system properties, and key metrics.</p></td>
294</tr>
295<tr>
296<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/hawtio/hawtio-react/tree/main/packages/hawtio/src/plugins/springboot">Spring Boot</a></p></td>
297<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
298<p>Shows information about the Spring Boot application.</p>
299</div>
300<div class="dlist">
301<dl>
302<dt class="hdlist1">Requirements</dt>
303<dd>
304<p>Requires Spring Boot <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints">Health, Info, Loggers, and HTTP Exchanges endpoints</a> to be exposed to activate each corresponding tab in the plugin.</p>
305</dd>
306</dl>
307</div></div></td>
308</tr>
309</tbody>
310</table>
311</div>
312</div>
313<div class="sect1">
314<h2 id="_known_external_plugins"><a class="anchor" href="#_known_external_plugins"></a>Known external plugins</h2>
315<div class="sectionbody">
316<div class="paragraph">
317<p>
317The following plugins are developed by external communities.</p>
318</div>
319<div class="dlist">
320<dl>
321<dt class="hdlist1">Apache ActiveMQ Artemis plugin</dt>
322<dd>
323<p><a href="https://activemq.apache.org/components/artemis/">Apache ActiveMQ Artemis</a> 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 <a href="https://activemq.apache.org/components/artemis/documentation/latest/management-console.html#management-console">Artemis User Manual - Management Console</a> for more information.</p>
324</dd>
325<dt class="hdlist1">Apache ActiveMQ Classic plugin</dt>
326<dd>
327<p>A <a href="https://github.com/afurlane/activemq-classic-hawtio">Hawtio plugin</a> for <a href="https://activemq.apache.org/components/classic/">Apache ActiveMQ Classic</a> is being actively developed and maintained by the community. This plugin provides essential management capabilities, including:</p>
328<div class="ulist">
329<ul>
330<li>
331<p>Queue and topic browsing</p>
332</li>
333<li>
334<p>Consumer and producer views</p>
335</li>
336<li>
337<p>Broker metrics and message operations</p>
338</li>
339<li>
340<p>JMX-backed management</p>
341</li>
342<li>
343<p>A unified console for Camel and ActiveMQ Classic</p>
344</li>
345</ul>
346</div>
347</dd>
348</dl>
349</div>
350<div class="paragraph">
351<p>For more details, visit the project repository:
352<a href="https://github.com/afurlane/activemq-classic-hawtio" class="bare">https://github.com/afurlane/activemq-classic-hawtio</a></p>
353</div>
354</div>
355</div>
356<div class="sect1">
357<h2 id="_custom_plugins"><a class="anchor" href="#_custom_plugins"></a>Custom plugins</h2>
358<div class="sectionbody">
359<div class="paragraph">
360<p>You can also extend the Hawtio capabilities by developing a custom plugin.</p>
361</div>
362<div class="paragraph">
363<p>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.</p>
364</div>
365<div class="dlist">
366<dl>
367<dt class="hdlist1">Sample plugin within the Hawtio project examples</dt>
368<dd>
369<p><a href="https://github.com/hawtio/hawtio/tree/main/examples/sample-plugin" class="bare">https://github.com/hawtio/hawtio/tree/main/examples/sample-plugin</a><br>
370The 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.</p>
371</dd>
372<dt class="hdlist1">Sample plugin for Spring Boot</dt>
373<dd>
374<p><a href="https://github.com/hawtio/hawtio-sample-plugin-ts" class="bare">https://github.com/hawtio/hawtio-sample-plugin-ts</a><br>
375This sample demonstrates how to write and use a custom Hawtio plugin in a Spring Boot application.</p>
376</dd>
377<dt class="hdlist1">Sample plugin as a WAR application</dt>
378<dd>
379<p><a href="https://github.com/hawtio/hawtio-sample-war-plugin-ts" class="bare">https://github.com/hawtio/hawtio-sample-war-plugin-ts</a><br>
380This 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.</p>
381</dd>
382</dl>
383</div>
384<div class="sect2">
385<h3 id="_resources_for_plugin_development"><a class="anchor" href="#_resources_for_plugin_development"></a>Resources for plugin development</h3>
386<div class="paragraph">
387<p>Here is a list of useful references for developing a Hawtio plugin.</p>
388</div>
389<div class="ulist">
390<ul>
391<li>
392<p><a href="https://www.typescriptlang.org/docs/handbook/intro.html">TypeScript Handbook</a></p>
393</li>
394<li>
395<p><a href="https://18.react.dev/reference/react">React Reference</a></p>
396</li>
397<li>
398<p><a href="https://v5-archive.patternfly.org/">PatternFly v5</a></p>
399</li>
400<li>
401<p><a href="https://module-federation.io/">Webpack Module Federation</a></p>
402</li>
403</ul>
404</div>
405</div>
406</div>
407</div>
408</article>
409  </div>
410</main>
411</div>
412<footer class="footer">
413  <p>This page was built using the Antora default UI.</p>
414  <p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p>
415</footer>
416<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
vendor: 1 bytes, line 416
416
417<script async src="../_/js/vendor/highlight.js"></script>
417
418  </body>
419</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.