gnodet opened a new pull request, #1163:
URL: https://github.com/apache/maven-compiler-plugin/pull/1163

   ## Summary
   
   Adds ABI fingerprint tracking to the graph incremental build engine (step 2 
of 4 splitting [PR 
#1157](https://github.com/apache/maven-compiler-plugin/pull/1157) per the 
[review 
comment](https://github.com/apache/maven-compiler-plugin/pull/1144#issuecomment-5984536369)).
   
   > **Stacked on [PR 
#1162](https://github.com/apache/maven-compiler-plugin/pull/1162)** — 
review/merge that first. This PR's diff is only the incremental commit on top.
   
   ### Changes
   
   - **ABI fingerprint computation**: When `abi` tracking is enabled, the 
engine computes per-type ABI fingerprints and a human-readable canonical form 
from the class file's public API surface (non-private fields/methods, 
supertypes, interfaces, generic signatures, constant values).
   - **Fine-grained dependency sets**: Types classified into `signatureDeps` 
(public API surface) and `implementationDeps` (method bodies/private members), 
enabling more precise cascade decisions.
   - **`AbiTypeInfo` state variant**: Extends `GraphTypeInfo` with 
signature/implementation dependency sets and an ABI fingerprint. Tagged binary 
serialization format (version 2, backward compatible with version 1).
   - **`abi` strategy parameter**: Accepted as an `incrementalStrategy` value 
alongside `graph` and `timestamp`.
   - **`BytecodeAnalyzer.isAvailable()`**: Multi-release JAR method, `true` on 
JDK 24+, `false` otherwise.
   - **Module-info ABI**: Module declarations get canonical form covering 
requires, exports, opens, uses, and provides directives.
   
   ### What's excluded (separate PRs)
   
   - Cross-module ABI manifest writing (step 3)
   - Annotation processor classification (step 4)
   
   ## Test plan
   
   - [x] `IncrementalStateTest` — ABI type info serialization round-trip, 
consumer indexing
   - [x] `BytecodeAnalyzerTest` — ABI fingerprint stability, generic 
signatures, module-info
   - [x] `GraphIncrementalBuildTest` — ABI cascade behavior, config hash
   - [x] Full local build with `mvn clean verify -B` passes (JDK 24+ test 
failures pre-existing)
   
   🤖 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