final GlobalDependencyResolutionRules metadataHandler,
final ResolverResults results) throws ResolveException {
LOGGER.debug("Resolving {}", configuration);
ivyContextManager.withIvy(new Action<Ivy>() {
public void execute(Ivy ivy) {
RepositoryChain repositoryChain = ivyFactory.create(configuration, repositories, metadataHandler.getComponentMetadataProcessor());
ComponentMetaDataResolver metaDataResolver = new ClientModuleResolver(repositoryChain.getComponentMetaDataResolver(), dependencyDescriptorFactory);
ProjectDependencyResolver projectDependencyResolver = new ProjectDependencyResolver(projectComponentRegistry, localComponentFactory, repositoryChain.getComponentIdResolver());
ResolutionStrategyInternal resolutionStrategy = configuration.getResolutionStrategy();
DependencyToComponentIdResolver idResolver = new VersionForcingDependencyToModuleResolver(projectDependencyResolver, resolutionStrategy.getDependencyResolveRule());
ArtifactResolver artifactResolver = createArtifactResolver(repositoryChain);