use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.ParallelResolveArtifactSet in project gradle by gradle.
the class DefaultVisitedFileDependencyResults method select.
@Override
public SelectedFileDependencyResults select(Spec<? super ComponentIdentifier> componentFilter, VariantSelector selector) {
// Wrap each file dependency in a set that performs variant selection and transformation
// Also merge together the artifact sets for each configuration node
ImmutableMap.Builder<Long, ResolvedArtifactSet> filesByConfigBuilder = ImmutableMap.builder();
List<DynamicResolvedArtifactSet> allArtifacts = Lists.newArrayList();
for (Long key : filesByNodeId.keySet()) {
Set<FileDependencyArtifactSet> artifactsForConfiguration = filesByNodeId.get(key);
List<DynamicResolvedArtifactSet> selectedArtifactsForConfiguration = new ArrayList<DynamicResolvedArtifactSet>(artifactsForConfiguration.size());
for (FileDependencyArtifactSet artifactSet : artifactsForConfiguration) {
selectedArtifactsForConfiguration.add(artifactSet.select(componentFilter, selector));
}
filesByConfigBuilder.put(key, CompositeArtifactSet.of(selectedArtifactsForConfiguration));
allArtifacts.addAll(selectedArtifactsForConfiguration);
}
ResolvedArtifactSet allFiles = new ParallelResolveArtifactSet(CompositeDynamicArtifactSet.create(allArtifacts), buildOperationProcessor);
ImmutableMap.Builder<FileCollectionDependency, ResolvedArtifactSet> rootFilesBuilder = ImmutableMap.builder();
for (Map.Entry<FileCollectionDependency, FileDependencyArtifactSet> entry : rootFiles.entrySet()) {
rootFilesBuilder.put(entry.getKey(), entry.getValue().select(componentFilter, selector));
}
ImmutableMap<Long, ResolvedArtifactSet> filesByConfig = filesByConfigBuilder.build();
return new DefaultFileDependencyResults(rootFilesBuilder.build(), allFiles, filesByConfig);
}
use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.ParallelResolveArtifactSet in project gradle by gradle.
the class DependencyResolvingClasspath method getFiles.
@Override
public Set<File> getFiles() {
ensureResolved(true);
final Set<File> result = new LinkedHashSet<File>();
ParallelResolveArtifactSet artifacts = ParallelResolveArtifactSet.wrap(resolveResult.artifactsResults.getArtifacts(), buildOperationExecutor);
artifacts.visit(new ArtifactVisitor() {
@Override
public void visitArtifact(String variantName, AttributeContainer variantAttributes, ResolvableArtifact artifact) {
result.add(artifact.getFile());
}
@Override
public void visitFailure(Throwable failure) {
throw UncheckedException.throwAsUncheckedException(failure);
}
@Override
public boolean includeFiles() {
return true;
}
@Override
public boolean requireArtifactFiles() {
return true;
}
@Override
public void visitFile(ComponentArtifactIdentifier artifactIdentifier, String variantName, AttributeContainer variantAttributes, File file) {
result.add(file);
}
});
return result;
}
Aggregations