Retain inner-class data on incremental compile
Ensure that metadata sourced from inner-types is not deleted when performing an incremental compile. Prior to this commit, the source type was searched using the `Outer$Inner` format. This is not supported `Elements.getTypeElement` so we now convert the names to `Outer.Inner`. Closes gh-10886
This commit is contained in:
parent
9b4ccf4ac6
commit
cf09451ffb
|
@ -111,7 +111,7 @@ public class MetadataCollector {
|
|||
}
|
||||
|
||||
private boolean deletedInCurrentBuild(String sourceType) {
|
||||
return this.processingEnvironment.getElementUtils().getTypeElement(sourceType) == null;
|
||||
return this.processingEnvironment.getElementUtils().getTypeElement(sourceType.replace('$', '.')) == null;
|
||||
}
|
||||
|
||||
private boolean processedInCurrentBuild(String sourceType) {
|
||||
|
|
|
@ -23,6 +23,7 @@ import org.springframework.boot.configurationprocessor.metadata.Metadata;
|
|||
import org.springframework.boot.configurationsample.incremental.BarProperties;
|
||||
import org.springframework.boot.configurationsample.incremental.FooProperties;
|
||||
import org.springframework.boot.configurationsample.incremental.RenamedBarProperties;
|
||||
import org.springframework.boot.configurationsample.simple.ClassWithNestedProperties;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
|
@ -92,4 +93,12 @@ class IncrementalBuildMetadataGenerationTests extends AbstractMetadataGeneration
|
|||
.has(Metadata.withProperty("bar.counter").withDefaultValue(0).fromSource(RenamedBarProperties.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void incrementalBuildDoesNotDeleteItems() throws Exception {
|
||||
TestProject project = new TestProject(this.tempDir, ClassWithNestedProperties.class, FooProperties.class);
|
||||
ConfigurationMetadata initialMetadata = project.fullBuild();
|
||||
ConfigurationMetadata updatedMetadata = project.incrementalBuild(FooProperties.class);
|
||||
assertThat(initialMetadata.getItems()).isEqualTo(updatedMetadata.getItems());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue