Fresh start of the HAL management console using the latest frameworks / libraries.
- Java 8
- GWT 3.x (JsInterop, Elemental)
- Latest GWTP build
- PatternFly
HAL.next is a prototype and playground to test new features and evaluate the latest frameworks. The upcoming GWT 3.0 release will introduce many breaking changes for GWT applications. The most important change will be the deprecation of gwt-user.jar. This includes features such as the GWT widgets, deferred binding and GWT RPC.
In order to make the console future proof, it's necessary to rewrite these parts. At the same time this is an opportunity to fix some weak points of the current implementation and add new features. Currently the following features and enhancements are implemented / planned:
-
General
- Place management for finder and applications. This enables features like
- Cross-links between different parts of HAL (configuration ⟷ runtime ⟷ deployment)
- Applications / finder selections can be bookmarked
- Search can be re-implemented
- Switch between applications using the breadcrumb
- Add deployments using drag & drop
- Topology overview
- Macro recording
- PatternFly compliance
- Enhanced form items for lists, properties and booleans
- Use capabilities & requirements to generate combo boxes with type-ahead support
- Declarative UI using MBUI and a simple XML format. See LoggingView.mbui.xml for an example.
- JavaScript API
- Runtime extensions
- Remove deprecated APIs
- Place management for finder and applications. This enables features like
-
Finder
- Navigation using cursor keys. Open an application by pressing ↵ (
enter) and go back with ⌫ (backspace) - Pin frequently used subsystems to stay at the top
- Filter items by name and by properties like 'enabled' in the data sources column or 'stopped' in the servers column
- Navigation using cursor keys. Open an application by pressing ↵ (
HAL.next should be used with WildFly 11.x (it makes use of the new capabilities service). There are different ways to launch HAL.next. Most of them require to configure the allowed origins of the HTTP management endpoint and connect to a running WildFly instance.
-
Standalone mode
/core-service=management/management-interface=http-interface:list-add(name=allowed-origins,value=<url>) reload -
Domain mode
/host=master/core-service=management/management-interface=http-interface:list-add(name=allowed-origins,value=<url>) reload --host=master
The module hal-standalone contains an executable jar which launches a local web server at http://localhost:9090.
- Add http://localhost:9090 as allowed origin
mvn clean install -P prod,theme-haljava -jar standalone/target/hal-standalone-<version>.jar- Open http://localhost:9090
If you don't want to or cannot build locally you can download hal-standalone.jar from https://repository.jboss.org/nexus/index.html#nexus-search;quick~hal-standalone.
The module hal-npm provides a npm package which launches a local web server at http://localhost:3000.
- Add http://localhost:3000 as allowed origin
mvn clean install -P prod,theme-halcd npm/target/hal-npm-<version>-hal-console/npm installnode server.js- Open http://localhost:3000
The npm package is also available on npmjs.com: https://www.npmjs.com/package/hal-console
npm install -g hal-consolehal-console
The module hal-fraction contains the WildFly Swarm fraction org.jboss.hal.fraction.HalFraction.
-
Add the following dependencies to your POM:
<dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>management</artifactId> </dependency> <dependency> <groupId>org.jboss.hal</groupId> <artifactId>hal-fraction</artifactId> </dependency>
-
Build and start your WildFly Swarm application
-
Add http://localhost:8080 as allowed origin
The docker module provides a docker image with WildFly 11.x and HAL.next.
cd dockermvn installdocker run -p 9990:9990 -it hpehl/hal-console /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0ordocker run -p 9990:9990 -it hpehl/hal-console /opt/jboss/wildfly/bin/domain.sh -b 0.0.0.0 -bmanagement 0.0.0.0- Open http://localhost:9990 and log in with
admin:admin
The docker image is also available in the public docker repository: https://hub.docker.com/r/hpehl/hal-console/
docker pull hpehl/hal-console
Finally HAL.next is also available on the gh-pages branch at https://hal.github.io/hal.next/.
- Add https://hal.github.io/hal.next/ as allowed origin
- Open https://hal.github.io/hal.next/
GitHub pages are served from https so you need to secure the management interface as well. Please note that if you're using a self signed key store you might need to open the local management endpoint in the browser and accept the unsafe certificate before you can use it with HAL.next.
The SuperDevMode is intended for development as it provides browser refresh after code changes.
- Add http://localhost:8888 as allowed origin
mvn install -Dgwt.skipCompilationcd appmvn gwt:devmode- Open http://localhost:8888/hal/dev.html