mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-19 01:58:16 +08:00
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:
@@ -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() {
|
||||
|
@@ -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()
|
||||
|
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user