-
Notifications
You must be signed in to change notification settings - Fork 38.9k
Description
Assume an annotation that declares a value() attribute explicitly aliasing an attribute other than @Component(value = "…").
@interface MyAnnotation {
@AliasFor(annotation = Foo.class, attribute = "…")
String value() default "";
}If that annotation gets used with a set value (@MyAnnotation("foo")), I now see a warning:
Support for convention-based stereotype names is deprecated and will \
be removed in a future version of the framework. Please annotate the \
'value' attribute in @MyAnnotation with @AliasFor(annotation=Component.class) \
to declare an explicit alias for @Component's 'value' attribute.
This warning should not be issued if the value() attribute is explicitly aliased to some attribute other than @Component's value.
Also, the phrasing of "convention-based stereotype names" in combination with @Component led me to believe it's about the bean name stereotypically being derived from the class name (which made it particularly puzzling as the warning only appears with a value set, which would not trigger that convention). It turns out this term is actually referring to the default aliasing convention of the annotation attributes (the @MyAnnotation.value() conventionally being considered a redeclaration of @Component.value()). I wonder if the message's wording could be adapted to clarify this.