paulrutter opened a new pull request, #573: URL: https://github.com/apache/felix-dev/pull/573
Fixes [FELIX-6870](https://issues.apache.org/jira/browse/FELIX-6870). Stacked on #433, so it targets `feature/FELIX-6759-Java-25-LTS` rather than `master`. See *Why not master* below. ## The problem Modules across the repository pin released Felix sibling bundles as dependencies of their tests, so pax-exam and the bnd resolver exercise released artifacts instead of the code in this repository. A regression introduced here can pass CI unnoticed — which is exactly how the `FilterImpl.WrapperCapability` bug fixed in #554 survived on master until the HTTP tests were pointed at the local build in #571. ## The change Every such pin becomes a property that still defaults to the latest release, so each module keeps building on its own. CI builds and installs a producing module whenever it *or one of its consumers* changed, and overrides the property with the version built here: | producer | consumers | pin was | |---|---|---| | `framework` | `configadmin`, `scr`, `http`, `gogo` itests | 7.0.5 / 7.0.1 / 6.0.1 | | `configadmin` | `scr` | 1.9.0 | | `utils` | `resolver` | 1.8.0 | | `gogo` bundles | `gogo/jline`, `itest-shell`, `itest-jline` | 1.1.2 / 1.1.4 / 1.1.8 | Two findings beyond the original survey: - **`http/itest` still pinned framework 7.0.5** — missed by #571, which only covered `jetty` and `jetty12`. - **The `gogo` itest modules resolved against none of the code in this repository.** They take their versions from an imported BOM that pins released bundles, and the import is itself stale (`gogo.bom:1.0.3-SNAPSHOT` against `1.0.7-SNAPSHOT` in the reactor). They now carry explicit, overridable versions. The version-resolving step evaluates the gogo modules inside the gogo reactor, because `gogo-parent:7-SNAPSHOT` is not published anywhere (verified: 404 on `repository.apache.org/snapshots`) and a standalone `help:evaluate` would fail on a clean runner. ## Deliberately left alone - **`framework.security`** stays pinned at 2.8.3: it is no longer built here (removed in the 8.0.0 framework line, FELIX-6807) and its only consumer, `ConfigAdminSecurityTest`, is already excluded. - **ipojo**, since its removal is already proposed separately. ## Why not master `resolver` and `configadmin` **cannot compile on JDK 21 or 25 on master** — `felix.java.version` 6 and felix-parent 6 (release 7) respectively. CI hides this because those steps only run when the module itself changed, and neither has changed in a long time. Touching their poms makes CI run them and go red on two of the three matrix JDKs. #433 already raises both baselines, so stacking there is what makes this ticket implementable at all. ## Verification Run locally on JDK 25 against the in-repo bundles: | check | result | |---|---| | `http` reactor on framework 8.0.0-SNAPSHOT | ✅ all 13 modules, **162 itest tests pass** (was 7.0.5) | | `gogo` reactor, all overrides incl. framework 8.0.0-SNAPSHOT | ✅ BUILD SUCCESS; bnd resolver resolves both itest modules | | `resolver` on utils 1.11.11-SNAPSHOT | ✅ BUILD SUCCESS, 28 tests | | `help:evaluate` for all 7 producer poms | ✅ reactor-scoped form resolves every one | `configadmin` and `scr` integration tests could not be verified locally: on Windows they fail in pax-tinybundles with `IOException: Access is denied` from `File.createTempFile`, and **control runs on the original pins fail identically** (configadmin: 44 errors either way). That is a harness limitation of this machine, not a result of these overrides — CI on Linux is the real verdict for those two. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
