From dec62602c4db15819fb44b14a4029c7d806469c7 Mon Sep 17 00:00:00 2001
From: delchev
Date: Sat, 8 Aug 2026 11:13:48 +0300
Subject: [PATCH] feat: Dirigible 14.17.0, integration focus, full Java
support, IDE as home
Iapetus is the integrations edition: Apache Camel is the focus, there is no BPM and no
Intent Driven tooling, and its users land in the Workbench rather than on the platform's
Home launchpad.
Version
- codbex-platform-parent 13.6.0 -> 14.17.0 (parents track Dirigible releases 1:1).
Full Java support
- engine-java (in-process javac + the bean container), data-store-java (Java @Entity ->
Hibernate), the api-modules-java SDK, ide-java-lsp (JDT.LS), ide-java-debug (the DAP
bridge) and the Java / Java Debug views.
- Documented caveat: the SDK exposes org.eclipse.dirigible.sdk.bpm, so
api-modules-java -> api-bpm -> engine-bpm-flowable puts the BPM engine on the classpath.
Excluding api-bpm builds and boots but leaves sdk.bpm broken the moment client code
touches it, so the engine stays and only the BPM tooling is left out (no BPMN editor, no
Processes perspective, no BPM menus or templates - none of which this edition ever had).
No Intent Driven tooling
- There is no engine-intent, so resources-builder (the conversational Builder shell) is
excluded from group-ui rather than shipped with nothing behind it. resources-inbox is
excluded for the same reason: the BPM task inbox has no BPM surface here.
Home is the Workbench
- DIRIGIBLE_HOME_URL=services/web/shell-ide/, overriding the 14.16.0+ default of
services/web/home/. The launchpad stays reachable at /services/web/home/; only the /
redirect changes.
- Consequence: upstream's HomepageRedirectIT asserts the platform default and cannot pass
here, so it leaves the common suite. The edition's own HomePageIT (Workbench welcome view
on /) guards the override, unchanged.
Camel
- No dependency change was needed: template-camel is an aggregator that already carries
template-camel-cron-route and template-camel-http-route (verified on a running instance -
both starters are offered). Annotated as such so nobody adds them again.
UI overrides (forks of upstream files, drifted)
- menu-help: port to the current module shape (ESM + the conditional OpenAPI entry) and
move translations/ to i18n/, the only folder locales.js scans - the Bulgarian help-menu
catalog had been dead.
- view-welcome: fix the misspelled `require` form-item flag, point the GitHub link at
codbex-iapetus instead of codbex-hyperion, and use the BlimpKit theme variables.
Verified: quick-build, formatter:validate and unit tests green; every dirigible jar in the
fat jar resolves at 14.17.0. On a running instance / answers 302 to /services/web/shell-ide/,
the Java debugger config and Debug view answer 200, the intent endpoints, the Builder shell
and the Inbox all 404, the shell switcher lists no builderShell, and the template list
offers both Camel route starters.
Co-Authored-By: Claude Opus 5
---
CLAUDE.md | 14 ++
application/pom.xml | 48 +++++++
.../src/main/resources/dirigible.properties | 4 +
.../dirigible/menu-help/configs/help.js | 132 ++++++++++--------
.../bg-BG/translation.json | 0
.../en-US/translation.json | 0
.../dirigible/view-welcome/js/welcome.js | 2 +-
.../dirigible/view-welcome/welcome.html | 6 +-
.../tests/DirigibleCommonTestSuiteIT.java | 1 -
pom.xml | 2 +-
10 files changed, 144 insertions(+), 65 deletions(-)
rename components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/{translations => i18n}/bg-BG/translation.json (100%)
rename components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/{translations => i18n}/en-US/translation.json (100%)
diff --git a/CLAUDE.md b/CLAUDE.md
index 7873a49..2b1e30d 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -8,6 +8,20 @@ Iapetus is a [codbex product](https://www.codbex.com/products/): **"Integrations
Technically, this repo is a thin packaging/assembly layer on top of the [Eclipse Dirigible](https://github.com/eclipse/dirigible) low-code platform. Almost all behavior comes from `org.eclipse.dirigible:dirigible-components-*` dependencies; this repo wires them together (selecting Camel/integration plus IDE and operations components), brands them, and adds a handful of custom UI components. There is very little custom Java here (just the Spring Boot bootstrap class).
+**Three deliberate departures from the platform defaults**, all in the edition's own configuration:
+
+- **Camel is the focus.** `engine-camel`, the Integrations (Karavan) modeler, the Camel menu and the `template-camel` aggregator (which carries the cron-route and http-route starters) are in; **no BPM tooling** - no BPMN editor, no Processes perspective, no BPM menus or templates. The Flowable engine itself does arrive on the classpath, because the client Java SDK exposes `org.eclipse.dirigible.sdk.bpm`: `api-modules-java` -> `api-bpm` -> `engine-bpm-flowable`. Excluding `api-bpm` builds and boots but leaves `sdk.bpm` broken the moment client code touches it, so the engine stays and only the tooling is left out.
+- **No Intent Driven tooling.** There is no `engine-intent`, and `resources-builder` (the conversational Builder shell) is excluded from `group-ui`. `resources-inbox` is excluded for the same "nothing backs it" reason - the BPM task inbox has no BPM surface here.
+- **Home is the Workbench IDE.** `DIRIGIBLE_HOME_URL=services/web/shell-ide/` in `dirigible.properties`, overriding the platform's 14.16.0+ default of `services/web/home/`. The launchpad stays reachable at `/services/web/home/`; only the `/` redirect changes. Consequence: upstream's `HomepageRedirectIT` asserts the platform default and cannot run here - it was dropped from the common suite, and the edition's own `HomePageIT` (Workbench welcome view on `/`) guards the override.
+
+**Java support is full**: `engine-java` (in-process `javac` + the bean container), `data-store-java` (Java `@Entity` -> Hibernate), the `api-modules-java` SDK, `ide-java-lsp` (JDT.LS), `ide-java-debug` (the DAP bridge) and the Java / Java Debug views.
+
+## Dirigible version
+
+The version is pinned by `codbex-platform-parent` through its `dirigible.version` property; parent releases track Dirigible releases 1:1 (parent 14.17.0 -> Dirigible 14.17.0), so bumping the edition means bumping the parent. Bumps are not mechanical - Dirigible removes things: the OData engine was extracted in 14.16.0 (un-managing `com.codbex.olingo:olingo-odata2-lib`, which fails a version-less declaration at model-read time) and the AngularJS/TypeScript application templates went with it.
+
+**The UI overrides under `components/ui/` are forks of upstream files** - diff them against the matching Dirigible module on every bump; they drift silently (translations must live in `i18n//*.json`, the only folder `platform-core/extension-services/locales.js` scans).
+
## Module layout
Maven multi-module reactor (parent `pom.xml`, packaging `pom`):
diff --git a/application/pom.xml b/application/pom.xml
index 4684a59..aa1f5a7 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -18,6 +18,7 @@
org.eclipse.dirigible
dirigible-components-template-camel
+
org.eclipse.dirigible
@@ -98,6 +99,43 @@
dirigible-components-engine-camel
+
+
+ org.eclipse.dirigible
+ dirigible-components-engine-java
+
+
+ org.eclipse.dirigible
+ dirigible-components-data-store-java
+
+
+ org.eclipse.dirigible
+ dirigible-components-api-modules-java
+
+
+ org.eclipse.dirigible
+ dirigible-components-ide-java-lsp
+
+
+ org.eclipse.dirigible
+ dirigible-components-ide-java-debug
+
+
+ org.eclipse.dirigible
+ dirigible-components-ui-view-java
+
+
+ org.eclipse.dirigible
+ dirigible-components-ui-view-java-debug
+
+
org.eclipse.dirigible
dirigible-components-engine-typescript
@@ -149,6 +187,16 @@
org.eclipse.dirigible
dirigible-components-ui-menu-help
+
+
+ org.eclipse.dirigible
+ dirigible-components-resources-builder
+
+
+
+ org.eclipse.dirigible
+ dirigible-components-resources-inbox
+
diff --git a/application/src/main/resources/dirigible.properties b/application/src/main/resources/dirigible.properties
index e1afdfa..eebb031 100644
--- a/application/src/main/resources/dirigible.properties
+++ b/application/src/main/resources/dirigible.properties
@@ -1,6 +1,10 @@
# General
DIRIGIBLE_MULTI_TENANT_MODE=false
+# Land on the Workbench IDE, not on the platform's Home launchpad (the 14.16.0+ default is
+# services/web/home/). This is a tooling edition, so the IDE is home.
+DIRIGIBLE_HOME_URL=services/web/shell-ide/
+
DIRIGIBLE_PRODUCT_NAME=${project.title}
DIRIGIBLE_PRODUCT_VERSION=${project.version}
DIRIGIBLE_PRODUCT_COMMIT_ID=${git.commit.id}
diff --git a/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js b/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js
index b3c3507..4d4d756 100644
--- a/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js
+++ b/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js
@@ -9,69 +9,83 @@
* SPDX-FileCopyrightText: 2022 codbex or an codbex affiliate company and contributors
* SPDX-License-Identifier: EPL-2.0
*/
-exports.getMenu = () => ({
- systemMenu: true,
- id: 'help',
- menu: {
- translation: {
- key: 'common:help',
- },
- label: 'Help',
- items: [
- {
- translation: {
- key: 'menu-help:portal',
- },
- label: 'Help Portal',
- action: 'open',
- link: 'https://www.codbex.com/documentation/tooling/',
- separator: false
+import { repository } from "sdk/platform";
+
+export function getMenu() {
+ const hasOpenApi = repository.getResource('/registry/public/view-swagger/project.json').exists();
+ const config = {
+ systemMenu: true,
+ id: 'help',
+ menu: {
+ translation: {
+ key: 'common:help',
},
- {
- translation: {
- key: 'menu-help:support',
+ label: 'Help',
+ items: [
+ {
+ translation: {
+ key: 'menu-help:portal',
+ },
+ label: 'Help Portal',
+ action: 'open',
+ link: 'https://www.codbex.com/documentation/tooling/',
+ separator: false
},
- label: 'Contact Support',
- action: 'open',
- link: 'https://www.codbex.com/contact/',
- separator: false
- },
- {
- translation: {
- key: 'menu-help:pricing',
+ {
+ translation: {
+ key: 'menu-help:support',
+ },
+ label: 'Contact Support',
+ action: 'open',
+ link: 'https://www.codbex.com/contact/',
+ separator: false
},
- label: 'Pricing Plans',
- action: 'open',
- link: 'https://www.codbex.com/pricing/',
- separator: false
- },
- {
- translation: {
- key: 'menu-help:whatsNew',
+ {
+ translation: {
+ key: 'menu-help:pricing',
+ },
+ label: 'Pricing Plans',
+ action: 'open',
+ link: 'https://www.codbex.com/pricing/',
+ separator: false
},
- label: 'What\'s New',
- action: 'open',
- link: 'https://www.codbex.com/technology',
- separator: false
- },
- {
- translation: {
- key: 'menu-help:updates',
+ {
+ translation: {
+ key: 'menu-help:whatsNew',
+ },
+ label: 'What\'s New',
+ action: 'open',
+ link: 'https://www.codbex.com/technology',
+ separator: false
},
- label: 'Check for Updates',
- action: 'open',
- link: 'https://www.codbex.com/products/',
- separator: true
- },
- {
- id: 'about',
- translation: {
- key: 'menu-help:about',
+ {
+ translation: {
+ key: 'menu-help:updates',
+ },
+ label: 'Check for Updates',
+ action: 'open',
+ link: 'https://www.codbex.com/products/',
+ separator: true
},
- label: 'About',
- action: 'openWindow',
- separator: false
- }
- ]
+ {
+ id: 'about',
+ translation: {
+ key: 'menu-help:about',
+ },
+ label: 'About',
+ action: 'openWindow',
+ separator: false
+ }
+ ]
+ }
+ };
+ if (hasOpenApi) {
+ config.menu.items.splice(5, 0, {
+ label: 'OpenAPI',
+ action: 'open',
+ link: '/services/web/view-swagger/ui/',
+ separator: true
+ });
}
-});
\ No newline at end of file
+ return config;
+};
diff --git a/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/bg-BG/translation.json b/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/bg-BG/translation.json
similarity index 100%
rename from components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/bg-BG/translation.json
rename to components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/bg-BG/translation.json
diff --git a/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/en-US/translation.json b/components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/en-US/translation.json
similarity index 100%
rename from components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/en-US/translation.json
rename to components/ui/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/en-US/translation.json
diff --git a/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js b/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js
index 41f0d27..689820f 100644
--- a/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js
+++ b/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js
@@ -65,7 +65,7 @@ welcome.controller('WelcomeController', ($scope, $http, WorkspaceService, Templa
controlType: 'input',
type: 'text',
label: template.parameters[i].label,
- require: true,
+ required: template.parameters[i].required === true,
};
}
return form;
diff --git a/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html b/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html
index 0c5bb43..49f5818 100644
--- a/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html
+++ b/components/ui/view-welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html
@@ -12,8 +12,8 @@
@@ -64,7 +64,7 @@ Welcome to Iapetus
All source code is licensed under the
Eclipse Public License - v 2.0
and maintained at
- GitHub.
+ GitHub.
diff --git a/integration-tests/src/test/java/com/codbex/iapetus/integration/tests/DirigibleCommonTestSuiteIT.java b/integration-tests/src/test/java/com/codbex/iapetus/integration/tests/DirigibleCommonTestSuiteIT.java
index 68c7744..33cf2fb 100644
--- a/integration-tests/src/test/java/com/codbex/iapetus/integration/tests/DirigibleCommonTestSuiteIT.java
+++ b/integration-tests/src/test/java/com/codbex/iapetus/integration/tests/DirigibleCommonTestSuiteIT.java
@@ -32,7 +32,6 @@
CustomSecurityIT.class, //
DatabasePerspectiveIT.class, //
GitPerspectiveIT.class, //
- HomepageRedirectIT.class, //
MailIT.class, //
MessagingFacadeIT.class, //
SecurityIT.class, //
diff --git a/pom.xml b/pom.xml
index 41888c3..6d7b9d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.codbex.platform
codbex-platform-parent
- 13.6.0
+ 14.17.0
codbex-iapetus-parent