Skip to content

Commit 7e5bb96

Browse files
committed
Call meta-data processor regardless of annotations
Update ConfigurationMetadataAnnotationProcessor so that it gets called even if the source code doesn't include any @ConfigurationProperties items. See spring-projectsgh-1830
1 parent ba0dd60 commit 7e5bb96

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessor.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import javax.lang.model.element.TypeElement;
4040
import javax.lang.model.element.VariableElement;
4141
import javax.lang.model.type.TypeKind;
42+
import javax.lang.model.util.Elements;
4243
import javax.tools.Diagnostic.Kind;
4344
import javax.tools.FileObject;
4445
import javax.tools.StandardLocation;
@@ -57,7 +58,7 @@
5758
* @author Phillip Webb
5859
* @since 1.2.0
5960
*/
60-
@SupportedAnnotationTypes({ ConfigurationMetadataAnnotationProcessor.CONFIGURATION_PROPERTIES_ANNOTATION })
61+
@SupportedAnnotationTypes({ "*" })
6162
@SupportedSourceVersion(SourceVersion.RELEASE_6)
6263
public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor {
6364

@@ -103,10 +104,10 @@ private void logWarning(String msg) {
103104
@Override
104105
public boolean process(Set<? extends TypeElement> annotations,
105106
RoundEnvironment roundEnv) {
106-
for (TypeElement annotation : annotations) {
107-
for (Element element : roundEnv.getElementsAnnotatedWith(annotation)) {
108-
processElement(element);
109-
}
107+
Elements elementUtils = this.processingEnv.getElementUtils();
108+
for (Element element : roundEnv.getElementsAnnotatedWith(elementUtils
109+
.getTypeElement(configurationPropertiesAnnotation()))) {
110+
processElement(element);
110111
}
111112
if (roundEnv.processingOver()) {
112113
writeMetaData(this.metadata);
@@ -290,7 +291,6 @@ private ConfigurationMetadata mergeManualMetadata(ConfigurationMetadata metadata
290291
}
291292
}
292293
catch (IOException ex) {
293-
ex.printStackTrace();
294294
return metadata;
295295
}
296296
}

spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
import org.springframework.boot.configurationsample.specific.InnerClassRootConfig;
4242
import org.springframework.boot.configurationsample.specific.SimplePojo;
4343

44+
import static org.hamcrest.Matchers.empty;
4445
import static org.hamcrest.Matchers.equalTo;
4546
import static org.hamcrest.Matchers.not;
46-
import static org.hamcrest.Matchers.nullValue;
4747
import static org.junit.Assert.assertThat;
4848
import static org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.containsGroup;
4949
import static org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.containsProperty;
@@ -63,7 +63,7 @@ public class ConfigurationMetadataAnnotationProcessorTests {
6363
public void notAnnotated() throws Exception {
6464
ConfigurationMetadata metadata = compile(NotAnnotated.class);
6565
assertThat("No config metadata file should have been generated when "
66-
+ "no metadata is discovered", metadata, nullValue());
66+
+ "no metadata is discovered", metadata.getItems(), empty());
6767
}
6868

6969
@Test
@@ -173,8 +173,7 @@ public void parseCollectionConfig() throws Exception {
173173
@Test
174174
public void simpleMethodConfig() throws Exception {
175175
ConfigurationMetadata metadata = compile(SimpleMethodConfig.class);
176-
assertThat(metadata, containsGroup("foo")
177-
.fromSource(SimpleMethodConfig.class));
176+
assertThat(metadata, containsGroup("foo").fromSource(SimpleMethodConfig.class));
178177
assertThat(
179178
metadata,
180179
containsProperty("foo.name", String.class).fromSource(
@@ -258,7 +257,7 @@ private ConfigurationMetadata compile(Class<?>... types) throws IOException {
258257
return processor.getMetadata();
259258
}
260259

261-
@SupportedAnnotationTypes({ TestConfigurationMetadataAnnotationProcessor.CONFIGURATION_PROPERTIES_ANNOTATION })
260+
@SupportedAnnotationTypes({ "*" })
262261
@SupportedSourceVersion(SourceVersion.RELEASE_6)
263262
private static class TestConfigurationMetadataAnnotationProcessor extends
264263
ConfigurationMetadataAnnotationProcessor {

0 commit comments

Comments
 (0)