Supercharge WildFly management console with Hal.next console

HAL is the codename for WildFly management console. In this tutorial we will have a preview over the "HAL.next" which is next major version of the HAL management console. It ships with new features and uses the latest GWT release.

Install HAL management console

The first thing we will learn is how to install the HAL.next management console. In order to do that, we need a fresh copy of WildFly 11.x (http://wildfly.org/downloads/).

Once you have installed WildFly 11, download the Hal Project (or git clone it) from https://github.com/hal/hal.next/archive/develop.zip

Next build the project with:

$ mvn clean install -P prod,theme-hal

When the build is complete, start the hal standalone application with:

$ java -jar standalone/target/hal-standalone-<version>.jar

Now we will start wildfly and we will configure to allow http origins from Hal.next console.

In Standalone mode:

/core-service=management/management-interface=http-interface:list-add(name=allowed-origins,value=http://localhost:9090)
reload

In Domain mode:

/host=master/core-service=management/management-interface=http-interface:list-add(name=allowed-origins,value=http://localhost:9090
reload --host=master

Connect to the Hal.next console

Now it's time to check if everything works as expected so connect to the HAL.next Management Interface at. http://localhost:9090/console/

HAL management console

Connect and check that you are displaying the new HAL Console:

HAL management console

Selection bookmarkable URLs

The first thing worth mentioning is that now every selection done across the Console has its own unique URL. In the standard console only the applications (the screens you normally use to view and modify resources) have an URL. Having an unique URL has also maintenance advantages as you can control or filter through Proxy rewrite rules what the user is selecting:

HAL management console

Drag and Drop deployment

Another cool add-on is that you are allowed to drag and drop deployments from your navigator windows:

HAL management console

Pin subsystems so that they are always at hand

Next, you can check that every subsystem in the configuration can be pinned so that it stays at the top of the panel. This makes easier to pick up the ones you use more frequently

HAL management console

Macro recording

You can record a set of actions you perform on the Management console and save it:

HAL management console

Once you have recorded the macro, simply give it a name so that it can be reused:

HAL management console

Now go on with management changes. When you are done, select from the bottom widget "Stop Macro Recording". Once done, you can play macro everytime you need it:

HAL management console

Domain topology overview

Another improvement in the Hal.next console is the Domain topology which provides an overview of the servers in each Domain's host along with their status:

HAL management console

Install extensions

Finally it's worth mentioning that you can extend the features of the console with extensions. They are written in JavaScript and should use the JavaScript API to build the UI and interact with the management endpoint.

HAL management console

Here is a sample of console headers Extensions, which are available from https://rawgit.com/hal/js-extensions/master/loglevel/extension.json and https://rawgit.com/hal/js-extensions/master/whoami/extension.json

HAL management console

Acknowledgements:

I'd like to thanks Harald Pehl and Claudio Miranda for the awesome work done so far on the Hal.next console and for all the tips shared to write this article!

References:

https://github.com/hal/hal.next

 

Related articles available on mastertheboss.com

JBoss MBeans POJO

JMX MBean services are the core building blocks of the JBoss Appl

How to a dump of JNDI tree with JMX console ?

#2 JBoss Howto. This is the recipe of the day

How to configure JBoss to bind to a different IP ?

  If you want to change the jboss.bind.address property use the 

How to shut down JBoss from remote ?

JBoss recipe of the day

How to create multiple instances of an Mbean?

  Supposing you need two instances of an MBean, let's say one fo

JBoss classloader issues

By default JBoss (prior to version 3.2) uses a flat class loading

Follow us on Twitter