in initializr-generator/src/main/java/io/spring/initializr/generator/ProjectRequest.java [136:208]
public void resolve(InitializrMetadata metadata) {
List<String> depIds = (!getStyle().isEmpty() ? getStyle() : getDependencies());
String actualBootVersion = (getBootVersion() != null) ? getBootVersion()
: metadata.getBootVersions().getDefault().getId();
Version requestedVersion = Version.parse(actualBootVersion);
this.resolvedDependencies = depIds.stream().map((it) -> {
Dependency dependency = metadata.getDependencies().get(it);
if (dependency == null) {
throw new InvalidProjectRequestException(
"Unknown dependency '" + it + "' check project metadata");
}
return dependency.resolve(requestedVersion);
}).collect(Collectors.toList());
this.resolvedDependencies.forEach((it) -> {
it.getFacets().forEach((facet) -> {
if (!this.facets.contains(facet)) {
this.facets.add(facet);
}
});
if (!it.match(requestedVersion)) {
throw new InvalidProjectRequestException(
"Dependency '" + it.getId() + "' is not compatible "
+ "with Spring Boot " + requestedVersion);
}
if (it.getBom() != null) {
resolveBom(metadata, it.getBom(), requestedVersion);
}
if (it.getRepository() != null) {
String repositoryId = it.getRepository();
this.repositories.computeIfAbsent(repositoryId, (s) -> metadata
.getConfiguration().getEnv().getRepositories().get(s));
}
});
if (getType() != null) {
Type type = metadata.getTypes().get(getType());
if (type == null) {
throw new InvalidProjectRequestException(
"Unknown type '" + getType() + "' check project metadata");
}
String buildTag = type.getTags().get("build");
if (buildTag != null) {
this.build = buildTag;
}
}
if (getPackaging() != null) {
DefaultMetadataElement packaging = metadata.getPackagings()
.get(getPackaging());
if (packaging == null) {
throw new InvalidProjectRequestException("Unknown packaging '"
+ getPackaging() + "' check project metadata");
}
}
if (getLanguage() != null) {
DefaultMetadataElement language = metadata.getLanguages().get(getLanguage());
if (language == null) {
throw new InvalidProjectRequestException("Unknown language '"
+ getLanguage() + "' check project metadata");
}
}
if (!StringUtils.hasText(getApplicationName())) {
setApplicationName(
metadata.getConfiguration().generateApplicationName(getName()));
}
setPackageName(metadata.getConfiguration().cleanPackageName(getPackageName(),
metadata.getPackageName().getContent()));
initializeRepositories(metadata, requestedVersion);
initializeProperties(metadata, requestedVersion);
afterResolution(metadata);
}