use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.projectresult.ResolvedLocalComponentsResultGraphVisitor in project gradle by gradle.
the class ShortCircuitEmptyConfigurationResolver method emptyGraph.
private void emptyGraph(ConfigurationInternal configuration, ResolverResults results) {
Module module = configuration.getModule();
ModuleVersionIdentifier id = moduleIdentifierFactory.moduleWithVersion(module);
ComponentIdentifier componentIdentifier = componentIdentifierFactory.createComponentIdentifier(module);
ResolutionResult emptyResult = DefaultResolutionResultBuilder.empty(id, componentIdentifier);
ResolvedLocalComponentsResult emptyProjectResult = new ResolvedLocalComponentsResultGraphVisitor(thisBuild.getCurrentBuild());
results.graphResolved(emptyResult, emptyProjectResult, new EmptyResults());
}
use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.projectresult.ResolvedLocalComponentsResultGraphVisitor in project gradle by gradle.
the class DefaultConfigurationResolver method resolveBuildDependencies.
@Override
public void resolveBuildDependencies(ConfigurationInternal configuration, ResolverResults result) {
ResolutionStrategyInternal resolutionStrategy = configuration.getResolutionStrategy();
ResolutionFailureCollector failureCollector = new ResolutionFailureCollector(componentSelectorConverter);
InMemoryResolutionResultBuilder resolutionResultBuilder = new InMemoryResolutionResultBuilder();
ResolvedLocalComponentsResultGraphVisitor localComponentsVisitor = new ResolvedLocalComponentsResultGraphVisitor(currentBuild);
CompositeDependencyGraphVisitor graphVisitor = new CompositeDependencyGraphVisitor(failureCollector, resolutionResultBuilder, localComponentsVisitor);
DefaultResolvedArtifactsBuilder artifactsVisitor = new DefaultResolvedArtifactsBuilder(buildProjectDependencies, resolutionStrategy.getSortOrder());
resolver.resolve(configuration, ImmutableList.of(), metadataHandler, IS_LOCAL_EDGE, graphVisitor, artifactsVisitor, attributesSchema, artifactTypeRegistry, false);
result.graphResolved(resolutionResultBuilder.getResolutionResult(), localComponentsVisitor, new BuildDependenciesOnlyVisitedArtifactSet(failureCollector.complete(Collections.emptySet()), artifactsVisitor.complete(), artifactTransforms, configuration.getDependenciesResolver()));
}
use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.projectresult.ResolvedLocalComponentsResultGraphVisitor in project gradle by gradle.
the class DefaultConfigurationResolver method resolveGraph.
@Override
public void resolveGraph(ConfigurationInternal configuration, ResolverResults results) {
List<ResolutionAwareRepository> resolutionAwareRepositories = getRepositories();
StoreSet stores = storeFactory.createStoreSet();
BinaryStore oldModelStore = stores.nextBinaryStore();
Store<TransientConfigurationResults> oldModelCache = stores.oldModelCache();
TransientConfigurationResultsBuilder oldTransientModelBuilder = new TransientConfigurationResultsBuilder(oldModelStore, oldModelCache, moduleIdentifierFactory, buildOperationExecutor);
DefaultResolvedConfigurationBuilder oldModelBuilder = new DefaultResolvedConfigurationBuilder(oldTransientModelBuilder);
ResolvedConfigurationDependencyGraphVisitor oldModelVisitor = new ResolvedConfigurationDependencyGraphVisitor(oldModelBuilder);
BinaryStore newModelStore = stores.nextBinaryStore();
Store<ResolvedComponentResult> newModelCache = stores.newModelCache();
StreamingResolutionResultBuilder newModelBuilder = new StreamingResolutionResultBuilder(newModelStore, newModelCache, moduleIdentifierFactory, attributeContainerSerializer, attributeDesugaring, componentSelectionDescriptorFactory);
ResolvedLocalComponentsResultGraphVisitor localComponentsVisitor = new ResolvedLocalComponentsResultGraphVisitor(currentBuild);
ResolutionStrategyInternal resolutionStrategy = configuration.getResolutionStrategy();
DefaultResolvedArtifactsBuilder artifactsBuilder = new DefaultResolvedArtifactsBuilder(buildProjectDependencies, resolutionStrategy.getSortOrder());
FileDependencyCollectingGraphVisitor fileDependencyVisitor = new FileDependencyCollectingGraphVisitor();
ResolutionFailureCollector failureCollector = new ResolutionFailureCollector(componentSelectorConverter);
DependencyGraphVisitor graphVisitor = new CompositeDependencyGraphVisitor(newModelBuilder, localComponentsVisitor, failureCollector);
ImmutableList.Builder<DependencyArtifactsVisitor> visitors = new ImmutableList.Builder<>();
visitors.add(oldModelVisitor);
visitors.add(fileDependencyVisitor);
visitors.add(artifactsBuilder);
if (resolutionStrategy.getConflictResolution() == ConflictResolution.strict) {
ProjectComponentIdentifier projectId = configuration.getModule().getProjectId();
// projectId is null for DefaultModule used in settings
String projectPath = projectId != null ? projectId.getProjectPath() : "";
visitors.add(new FailOnVersionConflictArtifactsVisitor(projectPath, configuration.getName()));
}
DependencyLockingArtifactVisitor lockingVisitor = null;
if (resolutionStrategy.isDependencyLockingEnabled()) {
lockingVisitor = new DependencyLockingArtifactVisitor(configuration.getName(), resolutionStrategy.getDependencyLockingProvider());
visitors.add(lockingVisitor);
} else {
resolutionStrategy.confirmUnlockedConfigurationResolved(configuration.getName());
}
ImmutableList<DependencyArtifactsVisitor> allVisitors = visitors.build();
CompositeDependencyArtifactsVisitor artifactsVisitor = new CompositeDependencyArtifactsVisitor(allVisitors);
resolver.resolve(configuration, resolutionAwareRepositories, metadataHandler, Specs.satisfyAll(), graphVisitor, artifactsVisitor, attributesSchema, artifactTypeRegistry, true);
VisitedArtifactsResults artifactsResults = artifactsBuilder.complete();
VisitedFileDependencyResults fileDependencyResults = fileDependencyVisitor.complete();
ResolvedGraphResults graphResults = oldModelBuilder.complete();
// Append to failures for locking and fail on version conflict
Set<UnresolvedDependency> extraFailures = lockingVisitor == null ? Collections.emptySet() : lockingVisitor.collectLockingFailures();
Set<UnresolvedDependency> failures = failureCollector.complete(extraFailures);
results.graphResolved(newModelBuilder.complete(extraFailures), localComponentsVisitor, new BuildDependenciesOnlyVisitedArtifactSet(failures, artifactsResults, artifactTransforms, configuration.getDependenciesResolver()));
results.retainState(new ArtifactResolveState(graphResults, artifactsResults, fileDependencyResults, failures, oldTransientModelBuilder));
if (!results.hasError() && failures.isEmpty()) {
artifactsVisitor.complete();
}
}
use of org.gradle.api.internal.artifacts.ivyservice.resolveengine.projectresult.ResolvedLocalComponentsResultGraphVisitor in project gradle by gradle.
the class ShortCircuitEmptyConfigurationResolver method emptyGraph.
private void emptyGraph(ConfigurationInternal configuration, ResolverResults results, boolean verifyLocking) {
if (verifyLocking && configuration.getResolutionStrategy().isDependencyLockingEnabled()) {
DependencyLockingProvider dependencyLockingProvider = configuration.getResolutionStrategy().getDependencyLockingProvider();
DependencyLockingState lockingState = dependencyLockingProvider.loadLockState(configuration.getName());
if (lockingState.mustValidateLockState() && !lockingState.getLockedDependencies().isEmpty()) {
// Invalid lock state, need to do a real resolution to gather locking failures
delegate.resolveGraph(configuration, results);
return;
}
dependencyLockingProvider.persistResolvedDependencies(configuration.getName(), Collections.emptySet(), Collections.emptySet());
}
Module module = configuration.getModule();
ModuleVersionIdentifier id = moduleIdentifierFactory.moduleWithVersion(module);
ComponentIdentifier componentIdentifier = componentIdentifierFactory.createComponentIdentifier(module);
ResolutionResult emptyResult = DefaultResolutionResultBuilder.empty(id, componentIdentifier, configuration.getAttributes());
ResolvedLocalComponentsResult emptyProjectResult = new ResolvedLocalComponentsResultGraphVisitor(thisBuild);
results.graphResolved(emptyResult, emptyProjectResult, EmptyResults.INSTANCE);
}
Aggregations