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]

Reply via email to