in initializr-web/src/main/java/io/spring/initializr/web/support/DefaultDependencyMetadataProvider.java [41:73]
public DependencyMetadata get(InitializrMetadata metadata, Version bootVersion) {
Map<String, Dependency> dependencies = new LinkedHashMap<>();
for (Dependency d : metadata.getDependencies().getAll()) {
if (d.match(bootVersion)) {
dependencies.put(d.getId(), d.resolve(bootVersion));
}
}
Map<String, Repository> repositories = new LinkedHashMap<>();
for (Dependency d : dependencies.values()) {
if (d.getRepository() != null) {
repositories.put(d.getRepository(), metadata.getConfiguration().getEnv()
.getRepositories().get(d.getRepository()));
}
}
Map<String, BillOfMaterials> boms = new LinkedHashMap<>();
for (Dependency d : dependencies.values()) {
if (d.getBom() != null) {
boms.put(d.getBom(), metadata.getConfiguration().getEnv().getBoms()
.get(d.getBom()).resolve(bootVersion));
}
}
// Each resolved bom may require additional repositories
for (BillOfMaterials b : boms.values()) {
for (String id : b.getRepositories()) {
repositories.put(id,
metadata.getConfiguration().getEnv().getRepositories().get(id));
}
}
return new DependencyMetadata(bootVersion, dependencies, repositories, boms);
}