Developing Bloomreach Experience Manager with JRebel and IntelliJ - BloomReach Experience - Open Source CMS
02-04-2019

Developing Bloomreach Experience Manager with JRebel and IntelliJ

This documentation describes the use of a third-party development tool and is maintained by BloomReach on a best-effort basis. BloomReach cannot guarantee this documentation is up to date with the latest release of the third-party development tool. Please refer to the documentation of the third-party development tool for the latest installation, configuration, and usage instructions.

Here's how you can use JRebel & IntelliJ IDEA to build and hack the Bloomreach Experience Manager source code. This will also help you to work with Plugins. The main advantage is whenever you modify a class, you don't need to recompile the source code, the changes are instantly loaded by JRebel. This examples below assume that you are working on Bloomreach Experience Manager source code, and checked it out already from the source code repository.

Enable JRebel 

First, run the following command once for the entire project:

mvn -Djrebel -DskipTests clean install

This generates the rebel.xml automatically in target/classes for every module.

Optionally you can install the JRebel Plugin for IntelliJ IDEA..

Disable IntelliJ hotswap

Go to File -> Settings -> Debugger -> HotSwap, and select Never for 'Reload classes after compilation'.

Start the CMS in Wicket development mode

To prevent Wicket from caching HTML and CSS, the CMS should be started in Wicket development mode. The most convenient way to do this is via an extra command line option:

mvn -Pcargo.run -Djrebel -Dcargo.jvm.args='-Dwicket.configuration=development'

Tomcat should now log the following message during startup:

[INFO] [talledLocalContainer] ********************************************************************
[INFO] [talledLocalContainer] *** WARNING: Wicket is running in DEVELOPMENT mode.              ***
[INFO] [talledLocalContainer] ***                               ^^^^^^^^^^^                    ***
[INFO] [talledLocalContainer] *** Do NOT deploy to your live server(s) without changing this.  ***
[INFO] [talledLocalContainer] *** See Application#getConfigurationType() for more information. ***
[INFO] [talledLocalContainer] ********************************************************************

Remote Debugger

Go to Run -> Edit Configurations -> Remote, and add a remote debugger configuration using port 8000.

Debugging multiple projects in IntelliJ

 

A how-to for adding multiple projects to IntelliJ can be found on Stack Overflow.

 

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?