HCL Commerce Developer Solr-based Search environment
Key benefits
- Uses a standard Maven build (no proprietary scripts).
- Runs on Open Liberty instead of WebSphere Liberty.
- Supports multiple IDEs (Eclipse for Enterprise Java, IntelliJ, VS Code).
- Enables hot deployment (changes are reflected without server restarts).
- Ability to build and test customizaton with Java 17.
For setting up the HCL Commerce Developer Solr-based Search environment, refer Setting up the Developer Solr-based Search environment.
Architecture
The toolkit is organized as a Maven multi-module project that separates configuration, custom logic, and deployment. This structure allows you to develop and test changes independently while maintaining a consistent deployment model.
Developer IDE
↓
search-bundle (Maven aggregator)
↓
search-ear (EAR package)
↓
Open Liberty (searchServer)
↓
Solr + Search REST APIs
This flow represents how your changes move from development to
runtime.
<TOOLKIT_HOME>/
├── liberty/ (Pre-configured Open Liberty server profile)
├── workspace/
│ └── search-bundle/ (Aggregator project)
│ ├── search-config-ext/
│ ├── search-logic-ext/
│ ├── search-rest-ext/
│ ├── search-ear/
├── setup-liberty.bat/sh
Each module has a specific responsibility:- search-config-ext → Solr schemas and configuration
- search-logic-ext → Custom Java logic
- search-rest-ext → REST APIs
- search-ear → Final deployment package
search-ear module
packages all components into a deployable EAR file that runs on Open
Liberty.
search-bundle (parent POM)
↓
├── search-config-ext (JAR)
├── search-logic-ext (JAR)
├── search-rest-ext (WAR)
↓
search-ear (EAR)
↓
EarContent/
├── META-INF/application.xml
├── lib/ (shared JARs)
├── search-solr.war (/solr)
├── search-rest.war (/search/resources)
├── other OOTB WARs
How it works at runtime:- The EAR file is deployed to the Liberty
searchServer. - Shared libraries are loaded from the
lib/directory - WAR files expose application endpoints:
/solr→ Solr search engine/search/resources→ Search REST APIs
- Custom logic and configuration are picked up from extension modules.
OOTB libraries are referenced using the Maven
system pointing to EarContent/lib/ and
resolved from search-ear/EarContent/lib/
Running and Debugging
| Action | Method |
|---|---|
| Start | Right-click server → Start |
| Debug | Right-click server → Debug (enables breakpoints) |
| Hot Swap | Simply save a Java file; Eclipse republishes automatically |
- Start launches the Liberty server and deploys the search application.
- Debug allows you to pause execution and inspect code using breakpoints.
- Hot swap automatically applies code changes without restarting the server.
Creation of WCBD Package
- Step 1: Navigate to the project directory
cd <TOOLKIT_HOME>/workspace/search-bundle- Step 2: Build the package
- Run the Maven packaging command:
mvn clean package - Step 3: Locate the generated package
- The WCBD package ZIP file is created in: search-ear/target/search-ear-*.zip
Refresh the toolkit
Including the Search Bundle inside of the container allows the Solr 9 search-app
binaries and configurations to be in sync with the Search bundle at all times. This
bundle can be refreshed manually by running
/SETUP/bin/createSearchBundle.sh script file. This bundle
will also be automatically refreshed after a patch has been applied using
/SETUP/bin/patch.sh script.