use of io.fabric8.maven.core.model.Dependency in project fabric8-maven-plugin by fabric8io.
the class DependencyEnricherTest method getDummyArtifacts.
private List<Dependency> getDummyArtifacts() {
List<Dependency> artifacts = new ArrayList<>();
File aFile = new File(getClass().getResource(artifactFilePath).getFile());
Dependency artifact = new Dependency(new GroupArtifactVersion("g1", "a1", "v1"), "jar", "compile", aFile);
artifacts.add(artifact);
return artifacts;
}
use of io.fabric8.maven.core.model.Dependency in project fabric8-maven-plugin by fabric8io.
the class MavenEnricherContext method getDependencies.
@Override
public List<Dependency> getDependencies(boolean transitive) {
final Set<Artifact> artifacts = transitive ? getProject().getArtifacts() : getProject().getDependencyArtifacts();
final List<Dependency> dependencies = new ArrayList<>();
for (Artifact artifact : artifacts) {
dependencies.add(new Dependency(new GroupArtifactVersion(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()), artifact.getType(), artifact.getScope(), artifact.getFile()));
}
return dependencies;
}
use of io.fabric8.maven.core.model.Dependency in project fabric8 by jboss-fuse.
the class AetherBasedResolver method collectDependencies.
protected DependencyNode collectDependencies(Artifact root, String pomVersion, final Filter<Dependency> excludeDependencyFilter) throws RepositoryException, IOException {
final DefaultRepositorySystemSession session = newSession();
try {
List<RemoteRepository> repos = selectRepositories();
assignProxyAndMirrors(repos);
ArtifactDescriptorResult artifactDescriptorResult = m_repoSystem.readArtifactDescriptor(session, new ArtifactDescriptorRequest(root, repos, null));
repos.addAll(artifactDescriptorResult.getRepositories());
Dependency rootDependency = new Dependency(root, null);
List<Dependency> dependencies = artifactDescriptorResult.getDependencies();
final DefaultDependencyNode rootNode = new DefaultDependencyNode(rootDependency);
GenericVersionScheme versionScheme = new GenericVersionScheme();
rootNode.setVersion(versionScheme.parseVersion(pomVersion));
rootNode.setVersionConstraint(versionScheme.parseVersionConstraint(pomVersion));
DependencyNode pomNode = rootNode;
// final Filter<Dependency> shouldExclude = Filters.or(DependencyFilters.testScopeFilter, excludeDependencyFilter, new NewerVersionExistsFilter(rootNode));
final Filter<Dependency> shouldExclude = Filters.or(Arrays.asList(DependencyFilters.testScopeFilter, excludeDependencyFilter));
DependencySelector dependencySelector = new AndDependencySelector(new ScopeDependencySelector("test"), new ExclusionDependencySelector(), new DependencySelector() {
@Override
public DependencySelector deriveChildSelector(DependencyCollectionContext context) {
return this;
}
@Override
public boolean selectDependency(Dependency dependency) {
try {
return !DependencyFilters.matches(dependency, shouldExclude);
} catch (Exception e) {
failedToMakeDependencyTree(dependency, e);
return false;
}
}
});
session.setDependencySelector(dependencySelector);
// work on the root dependency directly?
if (true) {
for (Dependency dependency : dependencies) {
DependencyNode node = resolveDependencies(session, repos, pomNode, dependency, shouldExclude);
if (node != null) {
pomNode.getChildren().add(node);
}
}
} else {
DependencyNode node = resolveDependencies(session, repos, pomNode, rootDependency, shouldExclude);
if (node != null) {
pomNode = node;
}
}
// now lets transform the dependency tree to remove different versions for the same artifact
final DependencyGraphTransformationContext tranformContext = new DependencyGraphTransformationContext() {
Map<Object, Object> map = new HashMap<>();
public RepositorySystemSession getSession() {
return session;
}
public Object get(Object key) {
return map.get(key);
}
public Object put(Object key, Object value) {
return map.put(key, value);
}
};
DependencyGraphTransformer transformer = new ReplaceConflictingVersionResolver();
pomNode = transformer.transformGraph(pomNode, tranformContext);
transformer = new DuplicateTransformer();
pomNode = transformer.transformGraph(pomNode, tranformContext);
return pomNode;
} finally {
releaseSession(session);
}
}
use of io.fabric8.maven.core.model.Dependency in project fabric8 by jboss-fuse.
the class AetherBasedResolver method handleDependencyResolveFailure.
protected void handleDependencyResolveFailure(DependencyNode pomNode, Dependency dependency, Exception e) throws FailedToResolveDependency {
FailedToResolveDependency exception = new FailedToResolveDependency(dependency, e);
if (throwExceptionsOnResolveDependencyFailure) {
throw exception;
} else {
LOGGER.warn(exception.getMessage(), e);
// lets just add the current dependency without its full dependency tree
DefaultDependencyNode node = new DefaultDependencyNode(dependency);
pomNode.getChildren().add(node);
}
}
use of io.fabric8.maven.core.model.Dependency in project fabric8 by jboss-fuse.
the class JavaContainers method addMavenDependencies.
protected static void addMavenDependencies(Map<String, Parser> artifacts, DependencyDTO dependency) throws MalformedURLException {
String url = dependency.toBundleUrlWithType();
Parser parser = Parser.parsePathWithSchemePrefix(url);
String scope = dependency.getScope();
if (!artifacts.containsKey(url) && !artifacts.containsValue(parser) && !(Objects.equal("test", scope))) {
LOGGER.debug("Adding url: " + url + " parser: " + parser);
artifacts.put(url, parser);
}
List<DependencyDTO> children = dependency.getChildren();
if (children != null) {
for (DependencyDTO child : children) {
addMavenDependencies(artifacts, child);
}
}
}
Aggregations