Don't generate empty configuration meta-data

Update ConfigurationMetadataAnnotationProcessor to only write non-empty
meta-data files.

Fixes gh-1858
This commit is contained in:
Phillip Webb 2014-11-10 22:01:15 -08:00
parent 3e1841a53b
commit 7b09cbee35
1 changed files with 13 additions and 11 deletions

View File

@ -253,21 +253,23 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
protected void writeMetaData(ConfigurationMetadata metadata) {
metadata = mergeManualMetadata(metadata);
try {
FileObject resource = this.processingEnv.getFiler().createResource(
StandardLocation.CLASS_OUTPUT, "",
"META-INF/spring-configuration-metadata.json");
OutputStream outputStream = resource.openOutputStream();
if (!metadata.getItems().isEmpty()) {
try {
new JsonMarshaller().write(metadata, outputStream);
FileObject resource = this.processingEnv.getFiler().createResource(
StandardLocation.CLASS_OUTPUT, "",
"META-INF/spring-configuration-metadata.json");
OutputStream outputStream = resource.openOutputStream();
try {
new JsonMarshaller().write(metadata, outputStream);
}
finally {
outputStream.close();
}
}
finally {
outputStream.close();
catch (Exception ex) {
throw new IllegalStateException(ex);
}
}
catch (Exception ex) {
throw new IllegalStateException(ex);
}
}
private ConfigurationMetadata mergeManualMetadata(ConfigurationMetadata metadata) {