From 1cafc8793050222ad40f67c6512fd3f7cc3ff4db Mon Sep 17 00:00:00 2001 From: delchev Date: Sun, 9 Aug 2026 00:05:42 +0300 Subject: [PATCH] feat: Dirigible 14.17.0 with the OData v2 engine from dirigiblelabs/dirigible-odata The OData v2 engine left the platform in 14.16.0 (eclipse-dirigible/dirigible#6567) and is published separately from dirigiblelabs/dirigible-odata. Kronos's XSODATA engine builds on it (xs/components/engine-xsodata depends on dirigible-odata-core and dirigible-components-engine-odata), so the edition has to pin it - and Olingo - itself. Version - codbex-platform-parent 13.6.0 -> 14.17.0 (parents track Dirigible releases 1:1). - New dirigible.odata.version and olingo.version properties, with dependencyManagement entries for olingo-odata2-lib, olingo-odata2-core, dirigible-odata-core and dirigible-components-engine-odata. Without them the version-less declarations fail at model-read time: dirigible-dependencies stopped managing all four in 14.16.0. - Drop template-form-builder-angularjs - removed upstream in 14.16.0 with the rest of the AngularJS/TypeScript application stack. Home is the Workbench - DIRIGIBLE_HOME_URL=services/web/shell-ide/, overriding the 14.16.0+ default of services/web/home/. Kronos is a migration/tooling edition, so the IDE is home. - Consequence: upstream's HomepageRedirectIT asserts the platform default and cannot pass here, so it leaves the common suite; the edition's own HomePageIT guards the override. - ODataAPIIT also leaves the suite: it moved into the extracted OData project. 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-kronos instead of codbex-hyperion, and use the BlimpKit theme variables. Verified locally: the full reactor builds green, the fat jar carries engine-odata, odata-core, olingo-odata2-core and the Kronos XSODATA engine, and on a running instance /odata/v2/ and /odata/v2/$metadata both answer 200 while / redirects to the Workbench. Blocked on publication: dirigible.odata.version is 14.17.0-SNAPSHOT, resolved from a local install, because dirigiblelabs/dirigible-odata has no releases and did not build at all before dirigiblelabs/dirigible-odata#2. Flip this one property to the released version once that lands. Co-Authored-By: Claude Opus 5 --- application/pom.xml | 4 - .../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 | 3 - pom.xml | 32 ++++- 9 files changed, 112 insertions(+), 71 deletions(-) rename core/menu-help/src/main/resources/META-INF/dirigible/menu-help/{translations => i18n}/bg-BG/translation.json (100%) rename core/menu-help/src/main/resources/META-INF/dirigible/menu-help/{translations => i18n}/en-US/translation.json (100%) diff --git a/application/pom.xml b/application/pom.xml index 340defa07..44cce195c 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -281,10 +281,6 @@ org.eclipse.dirigible dirigible-components-ui-menu-form-builder - - org.eclipse.dirigible - dirigible-components-template-form-builder-angularjs - org.eclipse.dirigible diff --git a/application/src/main/resources/dirigible.properties b/application/src/main/resources/dirigible.properties index 3c745cdea..8102abd64 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/). Kronos is a migration/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/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js b/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js index b3c35072e..4d4d756c6 100644 --- a/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/configs/help.js +++ b/core/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/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/bg-BG/translation.json b/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/bg-BG/translation.json similarity index 100% rename from core/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/bg-BG/translation.json rename to core/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/bg-BG/translation.json diff --git a/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/en-US/translation.json b/core/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/en-US/translation.json similarity index 100% rename from core/menu-help/src/main/resources/META-INF/dirigible/menu-help/translations/en-US/translation.json rename to core/menu-help/src/main/resources/META-INF/dirigible/menu-help/i18n/en-US/translation.json diff --git a/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js b/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js index c0d02528c..b4f3d29b6 100644 --- a/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/js/welcome.js +++ b/core/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/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html b/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html index c137f9721..38aeaac3d 100644 --- a/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html +++ b/core/welcome/src/main/resources/META-INF/dirigible/view-welcome/welcome.html @@ -12,8 +12,8 @@ @@ -65,7 +65,7 @@

Welcome to Kronos

You can create server-side scripting services by using the Enterprise Javascript API or just design your web pages in HTML5 by using your favorite client-side framework.
- All source code is licensed under the Eclipse Public License - v 2.0 and maintained at GitHub. + All source code is licensed under the Eclipse Public License - v 2.0 and maintained at GitHub.

diff --git a/integration-tests/src/test/java/com/codbex/kronos/integration/tests/DirigibleCommonTestSuiteIT.java b/integration-tests/src/test/java/com/codbex/kronos/integration/tests/DirigibleCommonTestSuiteIT.java index 68ebea3fa..3180bf2c1 100644 --- a/integration-tests/src/test/java/com/codbex/kronos/integration/tests/DirigibleCommonTestSuiteIT.java +++ b/integration-tests/src/test/java/com/codbex/kronos/integration/tests/DirigibleCommonTestSuiteIT.java @@ -14,7 +14,6 @@ import org.eclipse.dirigible.integration.tests.api.java.db.SchemaExportImportIT; import org.eclipse.dirigible.integration.tests.api.java.messaging.MessagingFacadeIT; import org.eclipse.dirigible.integration.tests.api.javascript.cms.CmsSuiteIT; -import org.eclipse.dirigible.integration.tests.api.rest.ODataAPIIT; import org.eclipse.dirigible.integration.tests.ui.tests.*; import org.eclipse.dirigible.integration.tests.ui.tests.camel.*; import org.junit.platform.suite.api.SelectClasses; @@ -39,10 +38,8 @@ DatabasePerspectiveIT.class, // DeclineLeaveRequestBpmIT.class, // GitPerspectiveIT.class, // - HomepageRedirectIT.class, // MailIT.class, // MessagingFacadeIT.class, // - ODataAPIIT.class, // SchemaExportImportIT.class, // SecurityIT.class, // TerminalIT.class// diff --git a/pom.xml b/pom.xml index e7c345cd9..278c52b35 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.codbex.platform codbex-platform-parent - 13.6.0 + 14.17.0 codbex - kronos - parent @@ -34,6 +34,13 @@ + + 14.17.0-SNAPSHOT + 3.1.4 Kronos by codbex branch @@ -161,6 +168,29 @@ + + + com.codbex.olingo + olingo-odata2-lib + ${olingo.version} + pom + + + com.codbex.olingo + olingo-odata2-core + ${olingo.version} + + + org.eclipse.dirigible + dirigible-odata-core + ${dirigible.odata.version} + + + org.eclipse.dirigible + dirigible-components-engine-odata + ${dirigible.odata.version} + + com.codbex.kronos codbex-kronos-application