Fix introspection of annotations that use local aliased attributes

Closes gh-28528
This commit is contained in:
Stephane Nicoll
2022-05-26 15:50:41 +02:00
parent 9e1d0057bc
commit 86a85f558c
2 changed files with 39 additions and 9 deletions

View File

@@ -53,6 +53,15 @@ class RuntimeHintsUtilsTests {
assertThat(this.hints.proxies().jdkProxies()).isEmpty();
}
@Test
void registerAnnotationTypeWithLocalUseOfAliasForRegistersProxy() {
RuntimeHintsUtils.registerAnnotation(this.hints, LocalMapping.class);
assertThat(this.hints.reflection().typeHints()).singleElement()
.satisfies(annotationHint(LocalMapping.class));
assertThat(this.hints.proxies().jdkProxies()).singleElement()
.satisfies(annotationProxy(LocalMapping.class));
}
@Test
void registerAnnotationTypeProxyRegistersJdkProxy() {
RuntimeHintsUtils.registerAnnotation(this.hints, RetryInvoker.class);
@@ -108,6 +117,19 @@ class RuntimeHintsUtilsTests {
}
@Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface LocalMapping {
@AliasFor("retries")
int value() default 0;
@AliasFor("value")
int retries() default 0;
}
@Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)