Develop with Eclipse
Introduction
Goal
Use the Eclipse IDE to work on Bloomreach Experience Manager implementation projects.
Background
Eclipse integrates with Maven to enable creating, building, running and debugging projects within the IDE.
Eclipse Plugins
Maven Integration for Eclipse
Maven Integration for Eclipse is required to work with Bloomreach Experience Manager projects in Eclipse. It comes pre-installed with the Eclipse for Java EE Developers package, which we recommend you use.
Freemarker Plugin
A Freemarker Plugin for Eclipse is available as part of the JBoss Tools Project and can be installed separately.
- Choose Help > Eclipse Marketplace.
- Search for "Freemarker".
- Under "Freemarker IDE from JBoss Tools", choose Install.
- A tree of checkboxes will appear, uncheck all (by unchecking the root) except FreeMarker IDE.
YEdit Plugin
It is recommended to install YEdit for editing your repository data YAML files.
- Choose Help > Eclipse Marketplace.
- Search for "YEdit".
- Choose Install.
Create a New Bloomreach Experience Manager Project
- Choose File > New > Maven Project.
- Optionally specify a non-default project location and/or a working set.
- Choose Next.
If this is the first time you create a Bloomreach Experience Manager project in Eclipse, you must first choose Add Archetype... and enter the Bloomreach Experience Manager Maven archetype coordinates:
Archetype Group Id: org.onehippo.cms7
Archetype Artifact Id: hippo-project-archetype
Archetype Version: 13.0.0 (or the latest version)
Repository URL: https://maven.bloomreach.com/repository/maven2/ (or https://maven.bloomreach.com/repository/maven2-enterprise/ if you hold an enterprise license) - At Catalog choose Nexus Indexer.
-
Choose the archetype with Group Id org.onehippo.cms7 and Artifact Id hippo-project-archetype.
The latest version of the archetype is automatically selected. To select an earlier version, uncheck Show the last version of Archetype only. - Choose Next.
- Enter a Group Id, Artifact Id, Version and Package for the new project.
- Choose Finish to generate the project.
Import an Existing Bloomreach Experience Manager Project
- Choose File > Import....
- Select Maven > Existing Maven Projects.
- Choose Next.
- Browse to the root directory of your project.
- Optionally add the project to a working set.
- Choose Finish to import the project.
Run or Debug a Bloomreach Experience Manager Project on a Tomcat Server within Eclipse
- First prepare a local Tomcat installation:
- Download Tomcat 9 and install it on your development machine. Do not run it yet, you will do this from within Eclipse later on.
- Build and run your Bloomreach Experience Manager project from the command line. Once it is running, stop it by pressing Ctrl+C.
- Copy the following files from your project's target/tomcat9x folder to your Tomcat installation (use the exact same folder hierarchy and replace existing files):
- common/lib/*.jar
- shared/lib/*.jar except your project's repository-data-development and repository-data-site-development jars (e.g. myproject-repository-data-development-1.0.0.jar & myproject-repository-data-site-development-1.0.0.jar).
- conf/context.xml
- conf/catalina.properties
- Configure the Tomcat Server in Eclipse:
- Choose File > New > Other, select Server > Server and choose Next.
- Select Apache > Tomcat v9.0 Server and choose Next.
- Set Tomcat installation directory to the location of your local Tomcat installation prepared in step 1, and choose Next.
- Select the cms, essentials and site modules of your project in the Available column and add them to the Configured column, and choose Finish.
- Choose Window > Show View > Servers.
- Double-click to open Tomcat v9.0 Server at localhost.
- Under General Information click on Open launch configuration.
-
Select the Arguments tab and add the following arguments to those already there in the VM arguments box (use the appropriate paths for your situation):
-Dderby.stream.error.file="/Users/hippo/apache-tomcat-9.0.13/logs/derby.log" -Dlog4j.configurationFile=file:/Users/hippo/workspace/myproject/conf/log4j2-dev.xml -Dproject.basedir=/Users/hippo/workspace/myproject -Drepo.path=/Users/hippo/workspace/myproject/storage -Xms256m -Xmx1024m
- Under Server Locations select the option Use Tomcat installation (takes control of Tomcat installation).
- Under Timeouts raise the Start timeout to 200.
- Choose File > Save to save the server configuration.
- Configure the cms application to include the repository-data-development module in its deployment assembly:
- Right click on your project's cms module (e.g. myproject-cms) and select Properties.
- Select Deployment Assembly.
- Click on Add.
- Select Project and click on Next.
- Select your project's repository-data-development module (e.g. myproject-repository-data-development) and click on Finish.
- Click Apply and Close.
- Configure the site web application to include the repository-data-site-development module in its deployment assembly:
- Right click on your project's webapp module (e.g. myproject-webapp) and select Properties.
- Select Deployment Assembly.
- Click on Add.
- Select Project and click on Next.
- Select your project's repository-data-site-development module (e.g. myproject-repository-data-site-development) and click on Finish.
- Click Apply and Close.
- Configure the repository-data-webfiles module not to be auto-redeployed by Eclipse (web files are automatically synchronized by the Bloomreach Experience Manager application):
- Right click on your project's repository-data-webfiles module (e.g. myproject-repository-data-webfiles) and select Properties.
- Select Deployment Assembly.
- There should be one entry: src/main/resources. Remove it so the list is empty.
- Click Apply and Close.
- Configure the context root of the site webapp:
- Right click on your project's webapp module (e.g. myproject-webapp) and select Properties.
- Select Web Project Settings.
- Change Context root from site to your project name, e.g. myproject.
- To run your Bloomreach Experience Manager project on the Tomcat server click on the Run icon in the Servers view.
- To debug your Bloomreach Experience Manager project on the Tomcat server click on the Debug icon in the Servers view.
Troubleshooting
If Tomcat won't start because of:
java.lang.NoClassDefFoundError: Lorg/slf4j/Logger
Then you either did not copy the shared folder correctly, or you did not copy the conf/catalina.properties correctly.
Debug a Bloomreach Experience Manager Project Running Outside Eclipse
If you choose to run your Bloomreach Experience Manager project from the command line, you can still use Eclipse for debugging by attaching its debugger to the running application.
- Choose Run > Debug Configurations...
- Select Remote Java Application and click on the New launch configuration icon in the top left corner of the dialog.
- Enter a Name for this debug configuration.
- On the Connect tab, at Project browse to the project you want to debug. Typically this is the webapp module, e.g. myproject-webapp.
- Make sure Port is set to 8000.
- Choose Apply to save the debug configuration.
- Choose Debug to attach de Eclipse debugger to the running application.
If you now set breakpoints in your code Eclipse will open the debug perspective when your application executes that code.