@@ -6,7 +6,7 @@ OpenShift version (halOS). To distinguish between the two editions, we introduce
66- halOP: HAL on premise
77- halOS: HAL on OpenShift
88
9- The work is in a very early state and very much in progress.
9+ The work on the new consoles is in an early state and very much in progress.
1010
1111# Technical Stack
1212
@@ -19,128 +19,144 @@ The work is in a very early state and very much in progress.
1919
2020# halOP (HAL On Premise)
2121
22- This edition is the successor of the current [ HAL management console] ( https://github.com/hal/console ) . It is shipped with
23- WildFly or can be run as a standalone application to connect to arbitrary WildFly instances.
22+ This edition is the successor of the current [ HAL management console] ( https://github.com/hal/console ) .
2423
25- ## Development
24+ ## Get Started
2625
27- In the development mode, the Java code is transpiled to JavaScript using J2CL. The HTML and CSS are transpiled to JavaScript
28- using Parcel. Changes to HTML and CSS will be detected by Parcel, and the browser reloads the page automatically.
29- Changes to the Java code will be detected by the J2CL Maven plugin, but you need to reload the browser manually.
26+ There are many ways to get started with halOP, but essentially there are two ways to use the console:
3027
31- To start halOP in development mode, run
28+ 1 . Bundled – as part of a WildFly installation
29+ 2 . Standalone – as a single-page application ([ SPA] ( https://en.wikipedia.org/wiki/Single-page_application ) ) running on its own
3230
33- ``` shell
34- mvn j2cl:watch -P op
35- ```
31+ ### Bundled
3632
37- and wait until you see the message
33+ In this mode halOP is bundled with WildFly and can be used out of the box. halOP is available as an experimental feature pack
34+ that can be provisioned with [ Galleon] ( https://github.com/wildfly/galleon ) . The feature pack mounts an additional HTTP endpoint
35+ on the management interface: http://localhost:9990/halop
3836
39- ```
40- [INFO] ----- Build Complete: ready for browser refresh -----
41- ```
37+ 1 . Build or use the latest feature pack from Maven Central [
38+ ` org.jboss.hal:hal-op-feature-pack:<VERSION> ` ] ( https://central.sonatype.com/artifact/org.jboss.hal/hal-op-feature-pack )
4239
43- In another shell run
40+ ``` shell
41+ mvn install -P prod,op,feature-pack
42+ ```
4443
45- ``` shell
46- cd op/console
47- npm run watch
48- ```
44+ 2. Provision a WildFly server. You can use the provided [
45+ ` provision.xml` ](https://github.com/hal/foundation/blob/main/op/feature-pack/provision.xml) as an example. It provisions a
46+ default standalone server plus the halOP feature pack. If you haven' t built the feature pack in step 1 and used the latest
47+ version from Maven Central, you have to run `mvn process-resources` in `op/feature-pack` in order to resolve the version
48+ numbers.
4949
50- This will open a browser at http://localhost:1234 .
50+ ```shell
51+ galleon.sh provision op/feature-pack/target/provision.xml \
52+ --dir=$TMPDIR/wildfly \
53+ --stability-level=experimental
54+ ```
55+
56+ 3. Prepare and start the server
57+
58+ ```shell
59+ cd $TMPDIR/wildfly
60+ bin/add-user.sh -u admin -p admin --silent
61+ bin/standalone.sh --stability=experimental
62+ ```
5163
52- ## Standalone
64+ 4. Open http://localhost:9990/halop
65+
66+ ### Standalone
5367
5468halOP can run on its own. In this mode halOP starts a local web server and serves the console on its own without being part of a
55- WildFly installation. halOP is "just" a single-page application (SPA) without any server side dependencies. The only requirement
56- is a management interface of a running WIldFly instance.
69+ WildFly installation. halOP is "just" a single-page application ([SPA](https://en.wikipedia.org/wiki/Single-page_application))
70+ without any server side dependencies. The only requirement is a management interface of a running WIldFly instance.
71+
72+ By default, halOP is available at http://localhost:9090. If you want to customize the port, please use
73+ `-Dquarkus.http.port=<port>`.
5774
58- ### Java
75+ There are many ways to run halOP in standalone mode:
5976
60- To build halOP as a standalone Java application, run
77+ #### Build and run on your own (JVM)
6178
6279```shell
6380mvn install -P prod,op,standalone
81+ java -jar op/standalone/target/quarkus-app/quarkus-run.jar
6482```
6583
66- This will package the transpiled HTML, CSS, and JavaScript resources into a Quarkus-based HTTP server. To start it, run
84+ #### Build and run on your own (native)
6785
6886```shell
69- java -jar op/standalone/target/hal-op-standalone-0.2.1.jar
87+ mvn install -P prod,op,standalone,native
88+ op/standalone/target/hal-op-standalone-<VERSION>-runner
7089```
7190
72- and open a browser at http://localhost:9090 .
91+ Please make sure that you have a recent version of GraalVM installed.
92+ See https://quarkus.io/guides/building-native-image#configuring-graalvm for details.
7393
74- ### Native
94+ #### Latest release (JVM)
7595
76- To build the native binary of halOP, run
96+ The latest release is deployed as Uber-Jar using the `runner` classifier to Maven Central: [
97+ `org.jboss.hal:hal-op-standalone:<VERSION>`](https://central.sonatype.com/artifact/org.jboss.hal/hal-op-standalone). You can
98+ download and run it with
7799
78100```shell
79- mvn install -P prod,op,standalone,native -Dquarkus.native.container-build=false
101+ mvn dependency:copy -Dartifact=org.jboss.hal:hal-op-standalone:<VERSION>:jar:runner -DoutputDirectory=.
102+ java -jar hal-op-standalone-<VERSION>-runner.jar
80103```
81104
82- Please make sure that you have a recent version of GraalVM installed.
83- See https://quarkus.io/guides/building-native-image#configuring-graalvm for details.
84-
85- Native binaries for Linux, macOS, and Windows are also attached to every [ release] ( https://github.com/hal/foundation/releases ) .
86- Download the binary for your platform, make it executable, and run it. Then open a browser at http://localhost:9090 .
105+ #### Latest release (native)
87106
88- To make the binary executable, you might need to run something like this:
107+ Native binaries for Linux, macOS, and Windows are attached to every [release](https://github.com/hal/foundation/releases).
108+ Download the binary for your platform, make it executable, and run it. To make the binary executable, you might need to run
109+ something like this (depending on your OS):
89110
90111```shell
91112chmod +x hal-op-*
92113xattr -d com.apple.quarantine hal-op-*
93114```
94115
95- If you want to customize the port of halOP (Java-based and native), please use ` -Dquarkus.http.port=<port> ` to change the port.
116+ #### JBang
96117
97- ## JBang
98-
99- halOP can also be run as a standalone Java application using [ JBang] ( https://jbang.dev/ ) .
118+ halOP is also available as
119+ a [JBang](https://jbang.dev/) [catalog](https://www.jbang.dev/documentation/jbang/latest/alias_catalogs.html#catalogs):
100120
101121```shell
102122jbang hal-op@hal
103123```
104124
105- ## Container
125+ #### Container
106126
107- halOP is also available as a container image at https://quay.io/repository/halconsole/hal-op . Use
127+ halOP is also available as a container image at https://quay.io/repository/halconsole/hal-op.
108128
109129```shell
110130podman run -it -p 9090:9090 quay.io/halconsole/hal-op
111131```
112132
113- to start it and open a browser at http://localhost:9090 .
114-
115- ## Galleon Provisioning
133+ ## Development
116134
117- halOP is also available as a feature pack that can be provisioned with [ Galleon] ( https://github.com/wildfly/galleon ) .
135+ If you want to contribute to halOP, follow these steps to start halOP in development mode. In the development mode, the Java
136+ code is transpiled to JavaScript using J2CL. The HTML and CSS are transpiled to JavaScript
137+ using Parcel. Changes to HTML and CSS will be detected by Parcel, and the browser reloads the page automatically.
138+ Changes to the Java code will be detected by the J2CL Maven plugin, but you need to reload the browser manually.
118139
119- 1 . Build the feature pack with
140+ To start halOP in development mode, run
120141
121- ``` shell
122- mvn install -P prod,op,feature-pack
123- ```
142+ ```shell
143+ mvn j2cl:watch -P op
144+ ```
124145
125- 2. Provision a WildFly server. You can use the provided [
126- ` provision.xml` ](https://github.com/hal/foundation/blob/main/op/feature-pack/provision.xml) as an example. It provisions a
127- default standalone server plus the halOP feature pack.
146+ and wait until you see the message
128147
129- ` ` ` shell
130- galleon.sh provision op/feature-pack/target/provision.xml \
131- --dir=$TMPDIR /wildfly \
132- --stability-level=experimental
133- ` ` `
148+ ```
149+ [INFO] ----- Build Complete: ready for browser refresh -----
150+ ```
134151
135- 3. Prepare and start the server
152+ In another shell run
136153
137- ` ` ` shell
138- cd $TMPDIR /wildfly
139- bin/add-user.sh -u admin -p admin --silent
140- bin/standalone.sh --stability=experimental
141- ` ` `
154+ ```shell
155+ cd op/console
156+ npm run watch
157+ ```
142158
143- 4. Open http://localhost:9990/halop
159+ This will open a browser at http://localhost:1234.
144160
145161# halOS (HAL on OpenShift)
146162
0 commit comments