Fix duplication of dependencies with alias

This commit fixes `getAllDependencies()` to stop returning duplicates
when a dependency declares an alias.

Closes gh-772
This commit is contained in:
Stephane Nicoll
2018-11-20 17:54:05 +01:00
parent 614280d287
commit d5b616cdb2
3 changed files with 19 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.spring.initializr.util.VersionParser;
@@ -64,7 +65,8 @@ public class DependenciesCapability extends ServiceCapability<List<DependencyGro
* @return all dependencies
*/
public Collection<Dependency> getAll() {
return Collections.unmodifiableCollection(this.indexedDependencies.values());
return Collections.unmodifiableCollection(this.indexedDependencies.values()
.stream().distinct().collect(Collectors.toList()));
}
public void validate() {

View File

@@ -16,6 +16,8 @@
package io.spring.initializr.generator;
import java.util.Arrays;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Type;
@@ -69,6 +71,19 @@ public class CommandLineHelpGeneratorTests {
assertThat(content).contains("| foo-desc");
}
@Test
public void generateCapabilitiesWithAlias() {
Dependency dependency = createDependency("dep", "some description");
dependency.setAliases(Arrays.asList("legacy", "another"));
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
.addDependencyGroup("test", dependency).build();
String content = this.generator.generateGenericCapabilities(metadata,
"https://fake-service");
assertCommandLineCapabilities(content);
assertThat(content).contains("dep | some description |");
assertThat(content).doesNotContain("legacy").doesNotContain("another");
}
@Test
public void generateCurlCapabilities() {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()

View File

@@ -215,7 +215,7 @@ public class InitializrMetadataBuilderTests {
private static void assertDefaultConfig(InitializrMetadata metadata) {
assertThat(metadata).isNotNull();
assertThat(metadata.getDependencies().getAll()).hasSize(9);
assertThat(metadata.getDependencies().getAll()).hasSize(8);
assertThat(metadata.getDependencies().getContent()).hasSize(2);
assertThat(metadata.getTypes().getContent()).hasSize(4);
}