GROOVY-12030: Graduate PropertyHandler from incubating to stable#2554
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses GROOVY-12030 by promoting groovy.transform.options.PropertyHandler from incubating to a stable API surface, strengthening its contract via clearer Javadoc and adding focused regression tests to lock in compile-time behavior.
Changes:
- Removed
@IncubatingfromPropertyHandlerand expanded its Javadoc to describe lifecycle/ordering and instantiation semantics. - Fixed attribute-validation behavior by having
isValidAttributecheckAnnotationNode.getMember(...)(so non-ConstantExpressionmembers like list-valued attributes are detected). - Added a dedicated JUnit test verifying custom handler loading, initialization control, attribute rejection, and default-handler fallback.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/test/groovy/groovy/transform/options/PropertyHandlerTest.groovy |
New tests that exercise compile-time loading/validation of custom PropertyHandler implementations. |
src/main/java/groovy/transform/options/PropertyHandler.java |
Graduates API to stable, improves Javadoc contract, and fixes isValidAttribute to detect non-constant members. |
src/main/java/groovy/transform/options/DefaultPropertyHandler.java |
Simplifies validateAttributes implementation to return true directly. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2554 +/- ##
==================================================
+ Coverage 68.1844% 68.1945% +0.0101%
- Complexity 33086 33098 +12
==================================================
Files 1508 1508
Lines 126130 126145 +15
Branches 22878 22886 +8
==================================================
+ Hits 86001 86024 +23
+ Misses 32490 32485 -5
+ Partials 7639 7636 -3
🚀 New features to boost your workflow:
|
✅ All tests passed ✅🏷️ Commit: 310251d Learn more about TestLens at testlens.app. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.