name: arena-portal description: Workflow guide for the Arena Liferay portal fork (7.4.3.x GA). Use when working on portal-impl, portal-kernel, portal-web, or modules/ in this repo. Covers build routing, Service Builder, REST Builder, OSGi runtime, and verification steps. Never use blade gw here.
Build System Routing
Route by file location. Do not use blade gw — this is a portal fork, not a Blade workspace.
| Location | Tool | Example |
|---|---|---|
portal-impl/, portal-kernel/, portal-web/, util-*/ |
ant (repo root) |
ant compile |
modules/** |
gradlew from module dir |
../../../../gradlew jar |
Service Builder Workflow
Source of truth: service.xml in a *-service module.
- Edit
service.xml - From the
*-servicemodule dir:../../../../gradlew buildService - Edit only
*LocalServiceImpl,*ServiceImpl, and model impl classes — never hand-edit other generated output - Regenerate before touching impl classes after any
service.xmlchange
REST Builder Workflow
Source of truth: rest-config.yaml in a *-rest-impl module.
- Edit
rest-config.yamlor the OpenAPI spec - From the
*-rest-implmodule dir:../../../../gradlew buildREST - Patch handwritten impl code around the generated surface — never edit generated classes directly
- New resources: register in
RestApiServerConfigviaJAXRSServerFactoryBean(CXF does not auto-discover)
Module Anatomy
Standard OSGi app split:
*-api— public interfaces and constants; no implementation*-service— Service Builder source (service.xml) and generated service layer*-impl— DS@Componentimplementations*-web— portlet or MVC layer*-test— integration tests
OSGi marker files (do not delete):
.lfrbuild-portal— opts module intoant all.lfrbuild-app-server-lib,.lfrbuild-static,.lfrbuild-tool— change deploy destination
Verification After Changes
| What changed | Run |
|---|---|
| Portal core Java | ant compile |
| Module Java | ../../../../gradlew jar |
| Module tests | ../../../../gradlew test |
| Deploy module | ../../../../gradlew deploy |
service.xml |
buildService then jar |
rest-config.yaml |
buildREST then jar |
OSGi Runtime
- OSGi shell:
telnet localhost 11611 - Tomcat log:
../bundles/tomcat-9.0.90/logs/catalina.out - Liferay log:
../bundles/logs/liferay.*.log - Check bundle state:
lb <bundle-name>in OSGi shell — should beACTIVE - Stalled bundle:
refresh <bundle-id>in OSGi shell
Arena-Specific Discipline
- All Arena customizations are tagged
PLCB-*in commits - Before assuming a behavior is Arena-specific:
git log --grep="PLCB" --oneline - Customizations are intentionally narrow — keep changes surgical
- Check if a file is Arena-modified:
git log --follow -p -- <file>