Merge branch '2.3.x' into 2.4.x

This commit is contained in:
Stephane Nicoll 2021-04-28 13:57:45 +02:00
commit d98fe36b88
2 changed files with 12 additions and 10 deletions

View File

@ -16,6 +16,7 @@
package org.springframework.boot.configurationprocessor;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata;
@ -73,6 +74,7 @@ class IncrementalBuildMetadataGenerationTests extends AbstractMetadataGeneration
}
@Test
@Disabled("gh-26271")
void incrementalBuildTypeRenamed() throws Exception {
TestProject project = new TestProject(this.tempDir, FooProperties.class, BarProperties.class);
ConfigurationMetadata metadata = project.fullBuild();

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.assertj.core.api.Condition;
import org.hamcrest.collection.IsMapContaining;
@ -132,7 +133,7 @@ public final class Metadata {
@Override
public boolean matches(ConfigurationMetadata value) {
ItemMetadata itemMetadata = getItemWithName(value, this.name);
ItemMetadata itemMetadata = findItem(value, this.name);
if (itemMetadata == null) {
return false;
}
@ -208,15 +209,14 @@ public final class Metadata {
this.description, this.defaultValue, null);
}
private ItemMetadata getItemWithName(ConfigurationMetadata metadata, String name) {
ItemMetadata result = null;
for (ItemMetadata item : metadata.getItems()) {
if (item.isOfItemType(this.itemType) && name.equals(item.getName())) {
Assert.state(result == null, () -> "Duplicate item found for " + name);
result = item;
}
private ItemMetadata findItem(ConfigurationMetadata metadata, String name) {
List<ItemMetadata> candidates = metadata.getItems().stream()
.filter((item) -> item.isOfItemType(this.itemType) && name.equals(item.getName()))
.collect(Collectors.toList());
if (candidates.size() > 1) {
throw new IllegalStateException("More that one metadata item with name '" + name + "': " + candidates);
}
return result;
return (candidates.size() == 1) ? candidates.get(0) : null;
}
}