Skip to content

Support meta-annotation attribute overrides in ASM-based annotation processing [SPR-11574] #16198

Closed
@spring-projects-issues

Description

@spring-projects-issues

Sam Brannen opened SPR-11574 and commented

Status Quo

Recent releases of the Spring Framework have introduced support for meta-annotation attribute overrides in custom composed annotations. This support works as expected with reflection-based annotation processing; however, Spring's ASM-based support for annotation processing completely ignores meta-annotation attribute overrides.


Analysis

By comparing the implementations of getAnnotationAttributes(String, boolean) in StandardAnnotationMetadata (reflection) and AnnotationMetadataReadingVisitor (ASM), we see that StandardAnnotationMetadata delegates to AnnotatedElementUtils which properly supports meta-annotation attribute overrides. Whereas, AnnotationMetadataReadingVisitor performs a simple look-up in a local (linked) hash map with complete disregard for attribute overrides.


Deliverables

  1. Refactor AnnotationMetadataReadingVisitor so that Spring's ASM-based annotation processing supports meta-annotation attribute overrides on par with the support already provided for reflection-based processing in AnnotatedElementUtils.
    • See TODO comments in ConfigurationClassPostProcessorTests.

Affects: 4.0 GA

Issue Links:

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: bugA general bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions