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

   ## What
   
   Housekeeping on `http/jetty12/pom.xml` (no functional/behavioural change):
   
   1. **De-duplicate the `maven-bundle-plugin` executions.** The 
`with-jetty-websockets` and `with-jakarta-websockets` executions each repeated 
~90 lines of `<instructions>` that were identical to the primary bundle. They 
now declare only the two headers that actually differ (`Export-Package`, 
`Import-Package`); everything shared (`Bundle-SymbolicName`, `Bundle-Version`, 
`X-Jetty-Version`, `Bundle-Activator`, `Private-Package`, 
`DynamicImport-Package`, `Provide-Capability`, `Require-Capability`, 
`Include-Resource`, `_removeheaders`) is inherited from the plugin-level 
`<instructions>` via Maven's plugin/execution configuration merge — the same 
mechanism the `light` bundle already relied on.
   2. **Re-enable bnd baselining** (`baseline.skip` `true` → `false`).
   3. **Extract the duplicated slf4j version** into a `<slf4j.version>` 
property, and **document** that `felix.java.version` 17 is the floor (Jetty 
12.1) while the optional virtual-threads support additionally requires Java 21 
at runtime.
   
   ## Why
   
   The four near-identical instruction blocks were a maintenance hazard — 
recent SNI / redirect-compliance / Jetty-version changes all had to be mirrored 
by hand across them, which is easy to get wrong. Re-enabling baselining adds a 
safety net against accidental semantic-version breaks in the exported API.
   
   ## Verification
   
   Because change (1) affects how the manifests are generated, I verified it is 
a no-op by diffing a clean build before and after:
   
   - The generated `MANIFEST.MF` of **all four** artifacts (main, `light`, 
`with-jetty-websockets`, `with-jakarta-websockets`) is **byte-identical** to 
the pre-change build (ignoring only the tool/timestamp headers).
   - Baselining runs and passes: `Baseline analysis complete, 0 error(s), 16 
warning(s)`, against the 2.0.4 release.
   - Unit tests: 13 run, 0 failures.
   
   ## Reviewer notes
   
   - `maven-bundle-plugin` is intentionally kept at **6.0.2** (6.1.0 is not yet 
released).
   - With baselining now active, a future change that alters an exported 
package's API without a version bump will fail the build — that's the intended 
safety net, worth noting before the next release.
   
   🤖 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