How to Configure Progress Rollbase on JBOSS EAP

February 01, 2017 Data & AI

Learn how to deploy Rollbase low-code applications on a JBOSS EAP server in both domain and standalone mode.

In this blog post we will learn to configure Progress Rollbase on JBOSS EAP. Rollbase is a low-code platform that helps create all sorts of applications at an unprecedented speed and efficiency. Rollbase can run on JBOSS Domain and Standalone operative modes. This feature is only available on private cloud starting in Rollbase v4.3.

Setting Up JBOSS EAP

You can download JBOSS EAP by visiting the official download page. Before you start with the setup, please make sure you have looked at the required pre-requisites. For the sake of this blog, we will use JBOSS 6.3.0 EAP zip file. Unzip the file into your desired directory and let’s call it JBOSS_HOME.

Getting Rollbase Artefacts

As a first step, you must obtain the Rollbase artefacts:

  • lib.zip

    This zip file contains all the necessary libraries for the platform to function. This file would also comprise a module.xml. We will discuss about the file little later in this blog.

  • webapps.zip

    This zip file contains all the necessary web archives which comprise the platform. There should eight .war files: master, prod1, rest, router, search, storage, webapi and workflow. These are the applications we would be deploying on JBOSS EAP.

  • rollbase.zip

    This zip file contains all the necessary configuration and resource files for the platform to function.

Configuring Rollbase Libraries as a Static Module in JBOSS EAP

Starting in JBOSS EAP 6.0, the class loading approach has been significantly modified. It now uses a new modular class loading system for controlling the paths of deployed applications.

In order to use the Rollbase libraries, we will now see how to configure a static module in JBOSS EAP.

  • Create a directory structure “rb/lib/main” under “JBOSS_HOME/modules.” Let’s call it “JBOSS_HOME/modules/rb/lib/main” as ROLLBASE_LIBS.
  • Unzip the contents of lib.zip artefact into ROLLBASE_LIBS folder. Make a note of the module.xml that is now available in this folder among other .jar files.
In case of standalone mode, go to:
  • “JBOSS_HOME/standalone/configuration”
  • Edit standalone.xml and look for “<subsystem xmlns=”urn:jboss:domain:ee:1.2″>”
    Add the static module reference, i.e.:
global-modules>
  <module name="rb.lib" slot="main"/>
</global-modules>

In case of domain mode, go to:
  • “JBOSS_HOME/domain/configuration”
  • Edit domain.xml and look for “<subsystem xmlns=”urn:jboss:domain:ee:1.2″>”
  • Add the static module (mentioned above).Please note that there will be multiple occurrences of the subsystem tag and this text should be added to all. Finally, your subsystem configuration should look like this:
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<global-modules>
    <module name="rb.lib" slot="main"/>
</global-modules>
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
<annotation-property-replacement>false</annotation-property-replacement>
</subsystem>

With these three simple steps we have configured all the required Rollbase libraries as a static module in JBOSS. These libraries can now be used by the deployed applications.

Setting up Rollbase Configuration Files in JBOSS EAP

As a next step, let's drop the platforms configuration files in their right location.

In case of standalone mode, go to “JBOSS_HOME/standalone” and unzip the rollbase.zip archive. In case of a domain mode, do the same for each of the servers i.e. “JBOSS_HOME/domain/servers/<server_name>.” In case the “servers” folder is not available, please run the “domain.bat” from “JBOSS_HOME/bin.”

You will have to set defaults for properties in these configurations. Please refer to the Rollbase documentation below on how to do this:

Adding Libraries to the Static Module

JBOSS relies on the module.xml to load the required resources for the applications. There may be scenarios when you would need to add your own .jar resource as a dependency. We will look at how to do it in this section.

Let’s look at a use case where there is a need to add a mysql jdbc driver to the ROLLBASE_LIBSas dependency.

  • Add mysql-connector.jar to the ROLLBASE_LIBS folder.
  • Edit “ROLLBASE_LIBS/module.xml” and add an entry for this .jar as shown below:

Deploying Rollbase Applications on JBOSS EAP

Before proceeding with the deployment, please make sure a management user has been created in JBOSS EAP. This can be done by running the add-user.bat/sh from “JBOSS_HOME/bin.”

We are now all set to start the application deployment.

Now, run the appropriate .bat file to start the JBOSS application server:

  • “JBOSS_HOME/bin/standalone.bat” for the Standalone operating mode (or)
  • “JBOSS_HOME/bin/domain.bat” for the Domain operative mode.

Once the JBOSS application server has started, go to management console (usually <hostname>:9990). When prompted for credentials, enter the management user credentials.

On successful login:

  • Go to Runtime tab and
  • Click on “Manage Deployments”

Here you can start adding the wars. After the wars are uploaded, deploy them using “Assign” in domain mode & “En/Disable” in standalone mode.

Once the wars are deployed successfully, you are all set to start using Rollbase. Type in the url linked here in the browser and voila!


Conclusion

By now, we have learnt how to deploy Rollbase on JBOSS EAP. The setup has been carefully designed to be a fairly simple process. The same approach can be followed to setup Rollbase on Wildfly. Also known as JBOSS AS, it is a community version of JBOSS. Please note, however, that this is not yet officially supported by Rollbase.

Curious to try it for yourself? Learn more about Rollbase or start your free trial today.

Manooj Murali

Manooj Murali is a Principal Software Engineer at Progress. He has been part of the Rollbase development team in Hyderabad for more than two years and has more than 8 years of experience overall in software development. He has led many feature developments like I18N, Marketplace, White-Labelling, JBOSS support, High Availability and more for Rollbase.

Read next Website & App Security: What You Need to Know to Protect the Products You Build