diff --git a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/main/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessor.java b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/main/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessor.java index e9bd2700f0a..7db8761ec08 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/main/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessor.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/main/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessor.java @@ -166,17 +166,24 @@ public class AutoConfigureAnnotationProcessor extends AbstractProcessor { Object value = entry.getValue().getValue(); if (value instanceof List) { for (AnnotationValue annotationValue : (List) value) { - result.add(annotationValue.getValue()); + result.add(processValue(annotationValue.getValue())); } } else { - result.add(value); + result.add(processValue(value)); } } } return result; } + private Object processValue(Object value) { + if (value instanceof DeclaredType) { + return getQualifiedName(((DeclaredType) value).asElement()); + } + return value; + } + private String getQualifiedName(Element element) { if (element != null) { TypeElement enclosingElement = getEnclosingTypeElement(element.asType()); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessorTests.java b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessorTests.java index d0965ab7c47..929960d087f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessorTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/AutoConfigureAnnotationProcessorTests.java @@ -50,12 +50,12 @@ public class AutoConfigureAnnotationProcessorTests { @Test public void annotatedClass() throws Exception { Properties properties = compile(TestClassConfiguration.class); - System.out.println(properties); assertThat(properties).hasSize(3); assertThat(properties).containsEntry( "org.springframework.boot.autoconfigureprocessor." + "TestClassConfiguration.ConditionalOnClass", - "java.io.InputStream,java.io.OutputStream"); + "java.io.InputStream,org.springframework.boot.autoconfigureprocessor." + + "TestClassConfiguration$Nested"); assertThat(properties).containsKey( "org.springframework.boot.autoconfigureprocessor.TestClassConfiguration"); assertThat(properties).containsKey( diff --git a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/TestClassConfiguration.java b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/TestClassConfiguration.java index 7ca07f4323e..3bc346b1ecb 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/TestClassConfiguration.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-autoconfigure-processor/src/test/java/org/springframework/boot/autoconfigureprocessor/TestClassConfiguration.java @@ -16,15 +16,13 @@ package org.springframework.boot.autoconfigureprocessor; -import java.io.OutputStream; - /** * Test configuration with an annotated class. * * @author Madhura Bhave */ @TestConfiguration -@TestConditionalOnClass(name = "java.io.InputStream", value = OutputStream.class) +@TestConditionalOnClass(name = "java.io.InputStream", value = TestClassConfiguration.Nested.class) public class TestClassConfiguration { @TestAutoConfigureOrder