package org.jfrog.bamboo.util.generic;
import com.atlassian.bamboo.task.TaskContext;
import org.jfrog.build.api.Dependency;
import org.jfrog.build.api.dependency.BuildDependency;
import org.jfrog.build.api.util.Log;
import org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryDependenciesClient;
import org.jfrog.build.extractor.clientConfiguration.util.BuildDependenciesHelper;
import org.jfrog.build.extractor.clientConfiguration.util.DependenciesDownloader;
import org.jfrog.build.extractor.clientConfiguration.util.DependenciesHelper;
import org.jfrog.build.extractor.clientConfiguration.util.AntPatternsDependenciesHelper;
import java.io.IOException;
import java.util.List;
/**
* Resolver that knows how to bring the dependencies from the resolve pattern.
*
* @author Lior Hasson
*/
public class GenericArtifactsResolver {
private final ArtifactoryDependenciesClient client;
private String resolvePattern;
private Log log;
private TaskContext context;
public GenericArtifactsResolver(TaskContext context, ArtifactoryDependenciesClient client,
String resolvePattern, Log log) throws IOException, InterruptedException {
this.context = context;
this.client = client;
this.resolvePattern = resolvePattern;
this.log = log;
}
public List<Dependency> retrievePublishedDependencies() throws IOException, InterruptedException {
DependenciesHelper helper = new AntPatternsDependenciesHelper(createDependenciesDownloader(), log);
return helper.retrievePublishedDependencies(resolvePattern);
}
public List<BuildDependency> retrieveBuildDependencies() throws IOException, InterruptedException {
BuildDependenciesHelper helper = new BuildDependenciesHelper(createDependenciesDownloader(), log);
return helper.retrieveBuildDependencies(resolvePattern);
}
private DependenciesDownloader createDependenciesDownloader() {
return new DependenciesDownloaderImpl(client, context.getWorkingDirectory(), log);
}
}