From f4aa34c52ee35f9003ed99099d1714710c770e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Dinis=20Ferreira?= Date: Wed, 15 Apr 2026 21:46:56 +0200 Subject: [PATCH 1/3] chore: remove stale ANTLR 3.2 references and readme.txt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ddk-parent/readme.txt: stale instruction from initial commit (2016) to download antlr-generator-3.2.0.jar manually - ddk-target/ddk-antlr.target: orphaned target file not referenced by any pom.xml, with stale repo URLs (Orbit 2022, SWTBot 4.0.0). Its only unique dep (de.itemis.xtext.antlr) is unused by any code - GenerateTestLanguage.mwe2.launch: remove broken classpath entry for non-existent antlr-generator jar Note: .gitignore entries in workflow/ and sample.helloworld/ are kept — Xtext's AntlrToolFacade auto-downloads antlr-generator-3.2.0-patch.jar when running MWE2 grammar generation, and the gitignores correctly prevent accidental commits of this auto-downloaded artifact. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../GenerateTestLanguage.mwe2.launch | 1 - ddk-parent/readme.txt | 1 - ddk-target/ddk-antlr.target | 21 ------------------- 3 files changed, 23 deletions(-) delete mode 100644 ddk-parent/readme.txt delete mode 100644 ddk-target/ddk-antlr.target diff --git a/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch b/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch index 8bef09dbbd..303866e781 100644 --- a/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch +++ b/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch @@ -10,7 +10,6 @@ - diff --git a/ddk-parent/readme.txt b/ddk-parent/readme.txt deleted file mode 100644 index 04452d6889..0000000000 --- a/ddk-parent/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Download antlr-generator-3.2.0.jar into this folder. \ No newline at end of file diff --git a/ddk-target/ddk-antlr.target b/ddk-target/ddk-antlr.target deleted file mode 100644 index 68fde2cf39..0000000000 --- a/ddk-target/ddk-antlr.target +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 6be9af13cf7193dbdc07805d75afe815e426ccd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Dinis=20Ferreira?= Date: Wed, 15 Apr 2026 22:13:48 +0200 Subject: [PATCH 2/3] fix: add missing org.eclipse.text dependency to check.runtime.core Fixes access restriction errors for IDocument, IDocumentExtension3, and Region in the quickfix package. The bundle uses these types from org.eclipse.text but didn't declare the dependency in MANIFEST.MF. Co-Authored-By: Claude Opus 4.6 (1M context) --- com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF | 1 + 1 file changed, 1 insertion(+) diff --git a/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF b/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF index 46421808ca..76d3c2bd35 100644 --- a/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF +++ b/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF @@ -7,6 +7,7 @@ Bundle-Vendor: Avaloq Group AG Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime, + org.eclipse.text, org.eclipse.xtext, org.eclipse.xtext.xbase.lib, org.apache.commons.lang3, From ebb94542cd0c95731bf0051b27d401dfdaf0a472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Dinis=20Ferreira?= Date: Wed, 15 Apr 2026 22:15:34 +0200 Subject: [PATCH 3/3] docs: catalog known build infrastructure issues Captured during core-ui-split PoC investigation. Covers: - NPE in EcoreGeneratorFragment2 (#1309) - Missing "run all generators" launch config - Dead itemis ANTLR p2 repository - MWE2 xtend-gen conflicts - Structural issues (no root pom, ddk-target packaging) - Broken -am for Tycho modules - Empty xtextspy modules Co-Authored-By: Claude Opus 4.6 (1M context) --- KNOWN-ISSUES.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 KNOWN-ISSUES.md diff --git a/KNOWN-ISSUES.md b/KNOWN-ISSUES.md new file mode 100644 index 0000000000..4cbc81c706 --- /dev/null +++ b/KNOWN-ISSUES.md @@ -0,0 +1,70 @@ +# Known Issues — Build Infrastructure & Tooling + +*Captured: 2026-04-15, branch `core-ui-split`* + +## 1. NPE in EcoreGeneratorFragment2 when genModel is not configured + +**Issue:** dsldevkit/dsl-devkit#1309 +**File:** `com.avaloq.tools.ddk.xtext.generator/src/.../ecore/EcoreGeneratorFragment2.java:93-94` +**Since:** commit `45aed05d7` (Feb 2022) + +`EcoreGeneratorFragment2.generate()` passes null `genModel` to `CustomClassAwareEcoreGenerator`, which NPEs at `URI.createURI(genModel)`. The fragment is used in `GenerateTestLanguage.mwe2` line 68 with empty config `{}`. The standard `EMFGeneratorFragment2` on line 63 derives genModel automatically — this custom DDK fragment doesn't. + +**Fix options:** Guard against null, derive from language config, or remove the fragment from the MWE2 workflow if redundant. + +--- + +## 2. No "run all generators" launch config or Maven-based generation + +**Files:** `com.avaloq.tools.ddk.workflow/src/.../Ddk.mwe2` (aggregator exists but no launch config) +**Launch configs exist only for:** GenerateCheck, GenerateCheckCfg, GenerateTestLanguage + +`Ddk.mwe2` chains all DDK language generators (Expression, Export, Format, Scope, Check, CheckCfg, Valid, TypeModel, ModelInference) but has no Eclipse launch config. There's also no `xtext-maven-plugin` configured in any pom.xml, so generation can only happen from Eclipse by right-clicking individual `.mwe2` files. This blocks CI-based regeneration and is relevant to the core-ui-split migration (pure Maven modules could use `xtext-maven-plugin`). + +--- + +## 3. itemis ANTLR p2 repository is dead + +**URL:** `https://download.itemis.com/updates/releases/2.1.1/` → HTTP 404 +**Direct jar still works:** `https://download.itemis.com/antlr-generator-3.2.0-patch.jar` → HTTP 200 +**Maven Central alternative:** `org.eclipse.xtext:xtext-antlr-generator:2.1.1` + +Xtext's `AntlrToolFacade` (in `org.eclipse.xtext.xtext.generator`) tries to load `de.itemis.xtext.antlr.toolrunner.AntlrToolRunner` from the classpath. If not found, it auto-downloads the jar to `./.antlr-generator-3.2.0-patch.jar`. The `.gitignore` files in `workflow/` and `sample.helloworld/` correctly hide these auto-downloads. No p2 repository anywhere currently hosts this feature — not Eclipse Orbit, not the Xtext update site (it's declared as `optional='true' greedy='false'`). Source: `github.com/xtext/org.xtext.antlr.generator`. + +--- + +## 4. MWE2 workflow generates .xtend files that conflict with xtend-gen + +Running `GenerateTestLanguage.mwe2` creates `.xtend` stub files in `src/` directories (e.g., `TestLanguageScopeProvider.xtend`, `TestLanguageProposalProvider.xtend`). These conflict with the `.java` files already in `xtend-gen/`, causing "type is already defined" errors. The `.xtend` files are generated by Xtext's `XtextGenerator` as user-editable stubs — but the project already has compiled versions in `xtend-gen/`. Either the `xtend-gen/` files should be cleaned before regeneration, or the `.xtend` stubs should be suppressed if they already exist. + +**Affected modules:** `check.test.runtime`, `check.test.runtime.ui` + +--- + +## 5. dsl-devkit structural issues (build infrastructure) + +### 5a. No root pom.xml +The aggregator POM lives at `ddk-parent/pom.xml` instead of the repo root. All `` entries use `../` relative paths. You must `cd ddk-parent` to build. Standard Maven convention is root pom.xml as aggregator. + +### 5b. ddk-parent is both aggregator and parent +Normally these are separate — a root aggregator POM and a parent POM that child modules inherit. Combining them in a subdirectory creates the `../` path issue and makes `-pl` usage awkward. + +### 5c. ddk-target uses old packaging +Uses `pom` packaging with `build-helper-maven-plugin` to attach the `.target` file. Modern Tycho uses `eclipse-target-definition` packaging natively (as demonstrated in the PoC at `eclipse-maven-split/com.example.target/`). + +--- + +## 6. `-am` (also-make) broken for all Tycho modules + +Not a bug — fundamental to manifest-first builds. All inter-module dependencies are in `MANIFEST.MF` (`Require-Bundle`), not in `pom.xml`. Maven's `-am` only reads POM dependencies, so it can't resolve the build graph. Demonstrated with `check.ui` which has 7 in-project `Require-Bundle` entries but zero `` elements in its pom.xml. + +**Fix:** The core-ui-split migration addresses this — pure Maven `jar` modules declare dependencies in pom.xml, making `-am` work. For Tycho modules that stay Tycho, mirroring `Require-Bundle` entries as POM `` elements would also work. + +--- + +## 7. Empty/orphaned modules + +- `com.avaloq.tools.ddk.xtextspy/` — zero source files, only `bin/` and `target/` directories +- `com.avaloq.tools.ddk.xtextspy.test/` — zero source files, only `bin/` and `target/` directories + +These appear to be leftover from removed functionality. Listed in `ddk-parent/pom.xml` as modules but contain no code.