Modern Java EE example suite for WildFly
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Modern Java EE example suite for WildFly


Magellan is a basic application, created to support the article Magellan - A clustering tutorial with WildFly, nginx, Scala(FX) and Gradle; apart from that, its most valuable feature is perhaps the mix of modern technologies employed, demonstrating how they can find a natural place in the Java EE ecosystem.

Technologies employed

  • The elegant Scala programming language

  • ScalaFX, to create the rich user interface

  • Nginx, to provide load balancing

  • Gradle to easily manage project dependencies and the build lifecycle for the many artifacts

  • MoonDeploy to simplify client deployment

The JavaFX client relies on WildFly's API, whereas the Java EE application, deployed via the ear archive, can run on any Java EE-compiliant server.


  • magellan is the root project, creating the ear by assembling the artifacts of its Java EE subprojects. It also builds the standalone JavaFX client.

  • magellan-web: the subproject creating the war archive for the Web tier

  • magellan-ejb: creates the EJB-jar artifacts

  • magellan-common: creates a plain jar file containing the EJB interfaces - therefore, it is referenced by both the Java EE modules and the JavaFX client

  • magellan-app-client: standalone JavaFX application connecting to the stateful EJB

Running the project

The binary packages are available in the releases area:

  • the EAR archive can be deployed to WildFly or any Java EE server

  • the JavaFX client application can be downloaded and run directly from within the browser, if MoonDeploy is installed: just click on App.moondeploy and open it with MoonDeploy

Building the project

  • Simply run gradle build to produce:

    • the EAR archive

    • the JAR of the JavaFX application

  • To deploy the EAR to 2 different WildFly standalone instances (called alpha and beta in the reference tutorial), run:

    gradle deploy -PalphaDeploymentDir="PATH_TO_ALPHA_DEPLOYMENT_DIR" -PbetaDeploymentDir="PATH_TO_BETA_DEPLOYMENT_DIR"

    where a deployment dir is a standalone/deployments subdirectory in a WildFly root directory

  • To run the JavaFX application, just execute gradle run, passing the 2 parameters described above

Further references