paulrutter opened a new pull request, #555:
URL: https://github.com/apache/felix-dev/pull/555

   Split out of #433, where these changes were scope creep: they are about 
repairing module builds, not about Java 25 support.
   
   Several modules cannot be built on a current JDK at all. Each declares a 
`felix-parent` version that does not match the local `pom/pom.xml`, so the 
`relativePath` is ignored and Maven **silently resolves an old released 
`felix-parent` from Maven Central** instead. Those parents hardcode 
`felix.java.version` 6 or 7, and javac rejects release levels below 8 from JDK 
20 onward:
   
   ```
   error: release version 7 not supported
   ```
   
   They also pin `maven-surefire-plugin` 2.x, which cannot parse the JDK 25 
version string and dies before running a single test:
   
   ```
   Cannot invoke "...JavaVersion.atLeast(...)" because
   "...SystemUtils.JAVA_SPECIFICATION_VERSION_AS_ENUM" is null
   ```
   
   Moving each to `felix-parent 9` fixes both at once, rather than overriding 
compiler and plugin configuration module by module.
   
   | module | parent |
   |---|---|
   | `bundlerepository` | 2.1 → 9 |
   | `connect`, `log.extension`, `resolver`, `utils` | 5 → 9 |
   
   Alongside that:
   
   - `source`/`target` levels below 8 raised to 8 in `connect`, 
`bundlerepository` and the three `examples/extenderbased.*` modules.
   - `bundlerepository` declares junit and mockito explicitly — `felix-parent` 
2.1 supplied them to every module and `felix-parent` 9 does not. `mockito-all` 
1.x is replaced by `mockito-core`, since its bundled cglib cannot generate 
classes for recent class file versions.
   - `resolver` moves off `mockito-all` for the same reason.
   
   **No production code is changed in any of these modules, so no versions are 
bumped.** Repairing the parent does raise each module's `osgi.ee` (1.5/1.6/1.7 
→ 1.8), but those levels were themselves accidental — a consequence of 
resolving a stale parent rather than a deliberate choice — and the version of 
the next release is better decided by whoever prepares it, against everything 
that lands before then.
   
   The modules are added to the CI matrix so these builds are actually 
exercised rather than assumed.
   
   🤖 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