This is an automated email from the ASF dual-hosted git repository.
paulk-asert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new f1a4483fe4 GROOVY-12040: restore @Builder retention to RUNTIME in 5.0.x
f1a4483fe4 is described below
commit f1a4483fe4bab0f6cd9511fad0abb7016059e557
Author: Paul King <[email protected]>
AuthorDate: Tue May 26 20:09:43 2026 +1000
GROOVY-12040: restore @Builder retention to RUNTIME in 5.0.x
---
src/main/java/groovy/transform/builder/Builder.java | 2 +-
.../codehaus/groovy/transform/BuilderTransformTest.groovy | 15 +++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/main/java/groovy/transform/builder/Builder.java
b/src/main/java/groovy/transform/builder/Builder.java
index 9e8b3ff2b6..4561635350 100644
--- a/src/main/java/groovy/transform/builder/Builder.java
+++ b/src/main/java/groovy/transform/builder/Builder.java
@@ -75,7 +75,7 @@ import static
org.codehaus.groovy.transform.BuilderASTTransformation.BuilderStra
* @see groovy.transform.builder.InitializerStrategy
*/
@Documented
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD})
@GroovyASTTransformationClass({
"groovy.transform.builder.BuilderASTStubber",
diff --git
a/src/test/groovy/org/codehaus/groovy/transform/BuilderTransformTest.groovy
b/src/test/groovy/org/codehaus/groovy/transform/BuilderTransformTest.groovy
index 75870242dc..b9ae10e80a 100644
--- a/src/test/groovy/org/codehaus/groovy/transform/BuilderTransformTest.groovy
+++ b/src/test/groovy/org/codehaus/groovy/transform/BuilderTransformTest.groovy
@@ -839,4 +839,19 @@ final class BuilderTransformTest {
assert new
Captain(Captain.createInitializer().first('Kathryn').last('Janeway')).toString()
== 'Kathryn Janeway'
'''
}
+
+ @Test // GROOVY-12040
+ void testBuilderAnnotationVisibleAtRuntime() {
+ assertScript shell, '''
+ @Builder(builderStrategy=SimpleStrategy, prefix='')
+ class ConnectionSettings {
+ String host = 'localhost'
+ }
+
+ Builder ann = ConnectionSettings.getAnnotation(Builder)
+ assert ann != null
+ assert ann.builderStrategy() == SimpleStrategy
+ assert ann.prefix() == ''
+ '''
+ }
}