spring-framework
spring-framework copied to clipboard
Support repeatable annotations for condition evaluation [SPR-17207]
Stéphane Nicoll opened SPR-17207 and commented
Condition evaluation currently doesn't support @Repeatable. The first thing I found is ConditionEvaluator#shouldSkip calls !metadata.isAnnotated(Conditional.class.getName()) which returns true for some reason when it is invoked with a modified version of @Profile that is @Repeatable.
I am not entirely sold on the idea as, for instance, adding @Profile would probably be over the top considering the profile expression we've introduced in Spring Framework 5.1. It might be useful for others, though (support for repeatable @ConfigurationProperty is quite popular on the Spring Boot issue tracker).
Affects: 5.0.8
0 votes, 5 watchers
Juergen Hoeller commented
As for the existing behavior, a repeatable annotation is technically a container annotation with nested conditions inside... and unless we specifically check for that through the corresponding AnnotatedElementUtis variant, our common meta-annotation check is only going to search the container annotation, not the nested ones.
The related issue has been fixed differently so there's no demand for this anymore. I'd rather not add the extra complexity.