in src/main/java/org/apache/sling/installer/factory/model/impl/InstallModelTask.java [288:335]
private Map<Traceable, String> collectArtifacts(final Model effectiveModel,
final List<ArtifactDescription> files,
final File baseDir) {
final RepositoryAccess repo = new RepositoryAccess();
final Map<Traceable, String> errors = new HashMap<>();
for(final Feature f : effectiveModel.getFeatures()) {
if ( f.isSpecial() ) {
continue;
}
for(final Section section : f.getAdditionalSections()) {
final ArtifactDescription desc = new ArtifactDescription();
desc.section = section;
files.add(desc);
}
for(final RunMode mode : f.getRunModes()) {
if ( mode.isSpecial() ) {
continue;
}
if ( mode.isActive(this.activeRunModes) ) {
for(final ArtifactGroup group : mode.getArtifactGroups()) {
for(final Artifact artifact : group) {
File file = (baseDir == null ? null : new File(baseDir, artifact.getRepositoryPath().replace('/', File.separatorChar)));
if ( file == null || !file.exists() ) {
file = repo.get(artifact);
}
if ( file == null ) {
errors.put(artifact, "Artifact " + artifact.toMvnUrl() + " not found.");
} else {
final ArtifactDescription desc = new ArtifactDescription();
desc.artifactFile = file;
desc.startLevel = group.getStartLevel();
files.add(desc);
}
}
}
for(final Configuration cfg : mode.getConfigurations() ) {
if ( cfg.isSpecial() ) {
continue;
}
final ArtifactDescription desc = new ArtifactDescription();
desc.cfg = cfg;
files.add(desc);
}
}
}
}
return errors.isEmpty() ? null : errors;
}