diff --git a/spring-core/src/main/java/org/springframework/core/type/AnnotatedTypeMetadata.java b/spring-core/src/main/java/org/springframework/core/type/AnnotatedTypeMetadata.java index 73747c0fa4..68028ba5d4 100644 --- a/spring-core/src/main/java/org/springframework/core/type/AnnotatedTypeMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/AnnotatedTypeMetadata.java @@ -276,7 +276,7 @@ public interface AnnotatedTypeMetadata { stream = stream.sorted(reversedMetaDistance()); } - Adapt[] adaptations = Adapt.values(false, true); + Adapt[] adaptations = Adapt.values(classValuesAsString, true); return stream .map(annotation -> annotation.asAnnotationAttributes(adaptations)) .flatMap(attributes -> { diff --git a/spring-core/src/test/java/org/springframework/core/type/AnnotationMetadataTests.java b/spring-core/src/test/java/org/springframework/core/type/AnnotationMetadataTests.java index fef647dae4..c28af174d1 100644 --- a/spring-core/src/test/java/org/springframework/core/type/AnnotationMetadataTests.java +++ b/spring-core/src/test/java/org/springframework/core/type/AnnotationMetadataTests.java @@ -325,11 +325,13 @@ class AnnotationMetadataTests { private static void assertRepeatableAnnotations(AnnotationMetadata metadata) { Set attributesSet = - metadata.getMergedRepeatableAnnotationAttributes(TestComponentScan.class, TestComponentScans.class, false); + metadata.getMergedRepeatableAnnotationAttributes(TestComponentScan.class, TestComponentScans.class, true); assertThat(attributesSet.stream().map(attributes -> attributes.getStringArray("value")).flatMap(Arrays::stream)) .containsExactly("A", "B", "C", "D"); assertThat(attributesSet.stream().map(attributes -> attributes.getStringArray("basePackages")).flatMap(Arrays::stream)) .containsExactly("A", "B", "C", "D"); + assertThat(attributesSet.stream().map(attributes -> attributes.getStringArray("basePackageClasses")).flatMap(Arrays::stream)) + .containsExactly("java.lang.String", "java.lang.Integer"); } private static void assertRepeatableAnnotationsSortedByReversedMetaDistance(AnnotationMetadata metadata) { @@ -693,16 +695,16 @@ class AnnotationMetadataTests { public @interface ScanPackagesCandD { } - @TestComponentScan("A") + @TestComponentScan(basePackages = "A", basePackageClasses = String.class) @ScanPackageC @ScanPackageD - @TestComponentScan("B") + @TestComponentScan(basePackages = "B", basePackageClasses = Integer.class) static class MultipleComposedRepeatableAnnotationsClass { } - @TestComponentScan("A") + @TestComponentScan(basePackages = "A", basePackageClasses = String.class) @ScanPackagesCandD - @TestComponentScans(@TestComponentScan("B")) + @TestComponentScans(@TestComponentScan(basePackages = "B", basePackageClasses = Integer.class)) static class MultipleRepeatableAnnotationsInContainersClass { }