|
|
|
@ -366,11 +366,12 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
|
|
|
|
assertThat(metadata, containsProperty("config.second.bar.name"));
|
|
|
|
|
assertThat(metadata, containsGroup("config.third").ofType(SimpleLombokPojo.class)
|
|
|
|
|
.fromSource(LombokInnerClassProperties.class));
|
|
|
|
|
// For some reason the annotation processor resolves a type for SimpleLombokPojo that
|
|
|
|
|
// is resolved (compiled) and the source annotations are gone. Because we don't see the
|
|
|
|
|
// @Data annotation anymore, no field is harvested. What is crazy is that a sample project
|
|
|
|
|
// works fine so this seem to be related to the unit test environment for some reason.
|
|
|
|
|
//assertThat(metadata, containsProperty("config.third.value"));
|
|
|
|
|
// For some reason the annotation processor resolves a type for SimpleLombokPojo
|
|
|
|
|
// that is resolved (compiled) and the source annotations are gone. Because we
|
|
|
|
|
// don't see the @Data annotation anymore, no field is harvested. What is crazy is
|
|
|
|
|
// that a sample project works fine so this seem to be related to the unit test
|
|
|
|
|
// environment for some reason. assertThat(metadata,
|
|
|
|
|
// containsProperty("config.third.value"));
|
|
|
|
|
assertThat(metadata, containsProperty("config.fourth"));
|
|
|
|
|
assertThat(metadata, not(containsGroup("config.fourth")));
|
|
|
|
|
}
|
|
|
|
@ -507,34 +508,52 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
|
|
|
|
.withDeprecation("Lame name.", "simple.the-name"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void mergingOfAdditionalMetadata() throws Exception {
|
|
|
|
|
File metaInfFolder = new File(this.compiler.getOutputLocation(), "META-INF");
|
|
|
|
|
metaInfFolder.mkdirs();
|
|
|
|
|
File additionalMetadataFile = new File(metaInfFolder,
|
|
|
|
|
"additional-spring-configuration-metadata.json");
|
|
|
|
|
additionalMetadataFile.createNewFile();
|
|
|
|
|
JSONObject property = new JSONObject();
|
|
|
|
|
property.put("name", "foo");
|
|
|
|
|
property.put("type", "java.lang.String");
|
|
|
|
|
property.put("sourceType", AdditionalMetadata.class.getName());
|
|
|
|
|
JSONArray properties = new JSONArray();
|
|
|
|
|
properties.put(property);
|
|
|
|
|
JSONObject additionalMetadata = new JSONObject();
|
|
|
|
|
additionalMetadata.put("properties", properties);
|
|
|
|
|
FileWriter writer = new FileWriter(additionalMetadataFile);
|
|
|
|
|
additionalMetadata.write(writer);
|
|
|
|
|
writer.flush();
|
|
|
|
|
ConfigurationMetadata metadata = compile(SimpleProperties.class);
|
|
|
|
|
assertThat(metadata, containsProperty("simple.comparator"));
|
|
|
|
|
assertThat(metadata, containsProperty("foo", String.class)
|
|
|
|
|
.fromSource(AdditionalMetadata.class));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void incrementalBuild() throws Exception {
|
|
|
|
|
TestProject project = new TestProject(this.temporaryFolder, FooProperties.class,
|
|
|
|
|
BarProperties.class);
|
|
|
|
|
assertFalse(project.getOutputFile(MetadataStore.METADATA_PATH).exists());
|
|
|
|
|
|
|
|
|
|
ConfigurationMetadata metadata = project.fullBuild();
|
|
|
|
|
assertTrue(project.getOutputFile(MetadataStore.METADATA_PATH).exists());
|
|
|
|
|
|
|
|
|
|
assertThat(metadata,
|
|
|
|
|
containsProperty("foo.counter").fromSource(FooProperties.class));
|
|
|
|
|
assertThat(metadata,
|
|
|
|
|
containsProperty("bar.counter").fromSource(BarProperties.class));
|
|
|
|
|
|
|
|
|
|
metadata = project.incrementalBuild(BarProperties.class);
|
|
|
|
|
|
|
|
|
|
assertThat(metadata,
|
|
|
|
|
containsProperty("foo.counter").fromSource(FooProperties.class));
|
|
|
|
|
assertThat(metadata,
|
|
|
|
|
containsProperty("bar.counter").fromSource(BarProperties.class));
|
|
|
|
|
|
|
|
|
|
project.addSourceCode(BarProperties.class,
|
|
|
|
|
BarProperties.class.getResourceAsStream("BarProperties.snippet"));
|
|
|
|
|
metadata = project.incrementalBuild(BarProperties.class);
|
|
|
|
|
assertThat(metadata, containsProperty("bar.extra"));
|
|
|
|
|
assertThat(metadata, containsProperty("foo.counter"));
|
|
|
|
|
assertThat(metadata, containsProperty("bar.counter"));
|
|
|
|
|
|
|
|
|
|
project.revert(BarProperties.class);
|
|
|
|
|
metadata = project.incrementalBuild(BarProperties.class);
|
|
|
|
|
assertThat(metadata, not(containsProperty("bar.extra")));
|
|
|
|
@ -549,7 +568,6 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
|
|
|
|
ConfigurationMetadata metadata = project.fullBuild();
|
|
|
|
|
assertThat(metadata, containsProperty("foo.counter"));
|
|
|
|
|
assertThat(metadata, containsProperty("bar.counter"));
|
|
|
|
|
|
|
|
|
|
project.replaceText(BarProperties.class, "@ConfigurationProperties",
|
|
|
|
|
"//@ConfigurationProperties");
|
|
|
|
|
metadata = project.incrementalBuild(BarProperties.class);
|
|
|
|
@ -568,7 +586,6 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
|
|
|
|
containsProperty("bar.counter").fromSource(BarProperties.class));
|
|
|
|
|
assertThat(metadata, not(
|
|
|
|
|
containsProperty("bar.counter").fromSource(RenamedBarProperties.class)));
|
|
|
|
|
|
|
|
|
|
project.delete(BarProperties.class);
|
|
|
|
|
project.add(RenamedBarProperties.class);
|
|
|
|
|
metadata = project.incrementalBuild(RenamedBarProperties.class);
|
|
|
|
|