@@ -488,6 +488,20 @@ public void getMergedAnnotationWithImplicitAliasesInMetaAnnotationOnComposedAnno
488
488
assertTrue (isAnnotated (element , name ));
489
489
}
490
490
491
+ @ Test
492
+ public void getMergedAnnotationWithImplicitAliasesWithDefaultsInMetaAnnotationOnComposedAnnotation () {
493
+ Class <?> element = ImplicitAliasesWithDefaultsClass .class ;
494
+ String name = AliasesWithDefaults .class .getName ();
495
+ AliasesWithDefaults annotation = getMergedAnnotation (element , AliasesWithDefaults .class );
496
+
497
+ assertNotNull ("Should find @AliasesWithDefaults on " + element .getSimpleName (), annotation );
498
+ assertEquals ("a1" , "ImplicitAliasesWithDefaults" , annotation .a1 ());
499
+ assertEquals ("a2" , "ImplicitAliasesWithDefaults" , annotation .a2 ());
500
+
501
+ // Verify contracts between utility methods:
502
+ assertTrue (isAnnotated (element , name ));
503
+ }
504
+
491
505
@ Test
492
506
public void getMergedAnnotationAttributesWithInvalidConventionBasedComposedAnnotation () {
493
507
Class <?> element = InvalidConventionBasedComposedContextConfigClass .class ;
@@ -958,7 +972,6 @@ static class MetaCycleAnnotatedClass {
958
972
String [] xmlConfigFiles () default {};
959
973
}
960
974
961
-
962
975
@ ContextConfig
963
976
@ Retention (RetentionPolicy .RUNTIME )
964
977
@interface AliasedComposedContextConfig {
@@ -999,6 +1012,27 @@ static class MetaCycleAnnotatedClass {
999
1012
@interface ComposedImplicitAliasesContextConfig {
1000
1013
}
1001
1014
1015
+ @ Retention (RetentionPolicy .RUNTIME )
1016
+ @interface AliasesWithDefaults {
1017
+
1018
+ @ AliasFor ("a2" )
1019
+ String a1 () default "AliasesWithDefaults" ;
1020
+
1021
+ @ AliasFor ("a1" )
1022
+ String a2 () default "AliasesWithDefaults" ;
1023
+ }
1024
+
1025
+ @ Retention (RetentionPolicy .RUNTIME )
1026
+ @ AliasesWithDefaults
1027
+ @interface ImplicitAliasesWithDefaults {
1028
+
1029
+ @ AliasFor (annotation = AliasesWithDefaults .class , attribute = "a1" )
1030
+ String b1 () default "ImplicitAliasesWithDefaults" ;
1031
+
1032
+ @ AliasFor (annotation = AliasesWithDefaults .class , attribute = "a2" )
1033
+ String b2 () default "ImplicitAliasesWithDefaults" ;
1034
+ }
1035
+
1002
1036
@ ImplicitAliasesContextConfig
1003
1037
@ Retention (RetentionPolicy .RUNTIME )
1004
1038
@interface TransitiveImplicitAliasesContextConfig {
@@ -1296,6 +1330,10 @@ static class ImplicitAliasesContextConfigClass2 {
1296
1330
static class ImplicitAliasesContextConfigClass3 {
1297
1331
}
1298
1332
1333
+ @ ImplicitAliasesWithDefaults
1334
+ static class ImplicitAliasesWithDefaultsClass {
1335
+ }
1336
+
1299
1337
@ TransitiveImplicitAliasesContextConfig (groovy = "test.groovy" )
1300
1338
static class TransitiveImplicitAliasesContextConfigClass {
1301
1339
}
0 commit comments