diff --git a/CLAUDE.md b/CLAUDE.md index c4338d5..6da9127 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,9 +52,21 @@ Maven reactor modules (see root `pom.xml`): - **application** — the Spring Boot app. `AtlasApplication` is a `@SpringBootApplication` that scans `org.eclipse.dirigible` and excludes Spring's datasource/JPA auto-config (Dirigible manages its own datasources). Its `pom.xml` is the real definition of the edition: it lists every Dirigible component group included (core, security, database, engines, IDE backend/UI, APIs, templates) and the bundled JDBC drivers (Postgres, MongoDB, SAP HANA `ngdbc`, Snowflake, H2). The Spring Boot repackage produces the runnable jar. Also contains the `Dockerfile`. - **branding** — codbex/Atlas logo, favicon, and `project.json` packaged as Dirigible resources under `META-INF/dirigible/atlas-branding/`. -- **components/ui/menu-help** and **components/ui/view-welcome** — custom Dirigible UI components that *override* the stock Dirigible ones (the stock `dirigible-components-ui-menu-help` and `dirigible-components-ui-view-welcome` are explicitly excluded in `application/pom.xml`). These are resource-only modules (HTML/JS + `.extension`/`config` files under `META-INF/dirigible/`), no Java. +- **components/ui/menu-help** and **components/ui/view-welcome** — custom Dirigible UI components that *override* the stock Dirigible ones (the stock `dirigible-components-ui-menu-help` and `dirigible-components-ui-view-welcome` are explicitly excluded in `application/pom.xml`). These are resource-only modules (HTML/JS + `.extension`/`config` files under `META-INF/dirigible/`), no Java. They are **forks of upstream files**, so diff them against the matching Dirigible module on every version bump — they drift silently (translations must live in `i18n//*.json`, the only folder `platform-core/extension-services/locales.js` scans). - **integration-tests** — Selenide-based UI and API integration tests against the assembled application. +## Dirigible version + +The Dirigible version is **not** declared here: `codbex-platform-parent` pins it through the `dirigible.version` property, and parent releases track Dirigible releases 1:1 (parent 14.17.0 -> Dirigible 14.17.0). Bumping the edition therefore means bumping the parent version in the root `pom.xml`. A child pom *can* override `dirigible.version` to reach a Dirigible release whose parent is not published yet, but prefer the parent bump. + +Bumps are not always mechanical - Dirigible removes things: + +- **The OData engine was extracted in 14.16.0.** `dirigible-dependencies` stopped managing `com.codbex.olingo:olingo-odata2-lib`, so the version-less declaration in the root pom failed the build at model-read time, and the CXF / `javax.validation` / `javax.servlet` exclusions on `group-engines` became dead weight (verified with `dependency:tree`). Both were removed. +- **The AngularJS and TypeScript application templates were removed in 14.16.0**, along with the AngularJS form-builder generator. Because Atlas depends on `group-templates` as a whole rather than on individual templates, nothing had to change here - but an edition that names templates one by one would break. +- **`/` now lands on the Home launchpad** (`resources-home`), which carries no IDE perspectives: IDE assertions must go through `ide.openIde()`. + +Since Atlas is the all-in-one edition and depends on the `group-*` aggregators wholesale, a version bump picks up new components automatically - the Intent Driven engine and editor, the Builder and Monitoring shells, the Harmonia + client-Java application stack, document printing and numbering all arrive that way. + ## Configuration model Two layers of config: diff --git a/application/pom.xml b/application/pom.xml index 37f1ca8..3a0fbbc 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -71,26 +71,6 @@ org.eclipse.dirigible dirigible-components-group-engines pom - - - javax.validation - validation-api - - - javax.servlet - javax.servlet-api - - - org.apache.cxf - cxf-rt-frontend-jaxrs - - - org.apache.cxf - - cxf-spring-boot-starter-jaxrs - - - org.eclipse.dirigible 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 3d54034..6182e73 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 @@ @@ -57,7 +57,7 @@

Welcome to Atlas

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 Eclipse Public License - v 2.0 and maintained at GitHub.

diff --git a/integration-tests/src/test/java/com/codbex/atlas/integration/tests/DirigibleCommonTestSuiteIT.java b/integration-tests/src/test/java/com/codbex/atlas/integration/tests/DirigibleCommonTestSuiteIT.java index 2ff317d..e39f3a3 100644 --- a/integration-tests/src/test/java/com/codbex/atlas/integration/tests/DirigibleCommonTestSuiteIT.java +++ b/integration-tests/src/test/java/com/codbex/atlas/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; @@ -40,10 +39,11 @@ DeclineLeaveRequestBpmIT.class, // GitPerspectiveIT.class, // HomepageRedirectIT.class, // + IntentBuilderShellIT.class, // MailIT.class, // MessagingFacadeIT.class, // - MultitenancyIT.class, // - ODataAPIIT.class, // + MonitoringShellIT.class, // + MultitenancyHarmoniaIT.class, // SchemaExportImportIT.class, // SecurityIT.class, // TerminalIT.class// diff --git a/integration-tests/src/test/java/com/codbex/atlas/integration/tests/HomePageIT.java b/integration-tests/src/test/java/com/codbex/atlas/integration/tests/HomePageIT.java index c8b9607..61c6c3c 100644 --- a/integration-tests/src/test/java/com/codbex/atlas/integration/tests/HomePageIT.java +++ b/integration-tests/src/test/java/com/codbex/atlas/integration/tests/HomePageIT.java @@ -15,11 +15,27 @@ class HomePageIT extends AtlasIntegrationTest { + /** + * Static copy on the Home landing page - deterministic, unlike the user-dependent greeting. + */ + private static final String HOME_LANDING_TAGLINE = "Everything starts here. Pick where you want to work today."; + + /** + * The root path lands on the Home launchpad, which carries no IDE perspectives - the Workbench + * welcome view is asserted separately. + */ @Test - void testOpenHomepage() { + void testOpenHomePage() { ide.openHomePage(); browser.assertElementExistsByTypeAndText(HtmlElementType.SPAN, "Atlas"); + browser.assertElementExistsByTypeAndText(HtmlElementType.PARAGRAPH, HOME_LANDING_TAGLINE); + } + + @Test + void testOpenWorkbench() { + ide.openIde(); + browser.assertElementExistsByTypeAndText(HtmlElementType.HEADER3, "Welcome to Atlas"); } } diff --git a/pom.xml b/pom.xml index 439fe8b..9eca65e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.codbex.platform codbex-platform-parent - 14.14.0 + 14.17.0 codbex - atlas - parent @@ -156,13 +156,6 @@ h2
- - - com.codbex.olingo - olingo-odata2-lib - pom - -