/** * Creates a {@link DependencyQueryBuilder} based on a {@link DependencyQuery} */ public static DependencyQueryBuilder create(DependencyQuery query) { DependencyQueryBuilder builder = new DependencyQueryBuilder(); builder.setCoordinate(query.getCoordinate()); builder.setFilter(query.getDependencyFilter()); builder.setRepositories(query.getDependencyRepositories()); builder.setScopeType(query.getScopeType()); return builder; }
Coordinate dep = query.getCoordinate(); try List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings));
@Override public List<Coordinate> resolveVersions(DependencyQuery query) { VersionRangeResult r = getVersions(query); List<Coordinate> result = new ArrayList<>(); Predicate<Dependency> filter = query.getDependencyFilter(); for (Version v : r.getVersions()) { CoordinateBuilder coord = CoordinateBuilder.create(query.getCoordinate()).setVersion(v.toString()); DependencyBuilder versionedDep = DependencyBuilder.create().setCoordinate(coord); if (filter == null || filter.accept(versionedDep)) { result.add(coord); } } return result; }
@Override public boolean traverseDependency(org.eclipse.aether.graph.Dependency dependency) { if (query.getScopeType() != null) return query.getScopeType().equals(dependency.getScope()); else return !"test".equals(dependency.getScope()); }
@Override public DependencyMetadata resolveDependencyMetadata(final DependencyQuery query) { try { if (Strings.isNullOrEmpty(query.getCoordinate().getVersion())) { throw new IllegalArgumentException("Dependency query coordinate version must be specified."); } RepositorySystem system = container.getRepositorySystem(); Settings settings = container.getSettings(); DefaultRepositorySystemSession session = container.setupRepoSession(system, settings); Artifact artifact = MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate()); List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings)); ArtifactDescriptorRequest ar = new ArtifactDescriptorRequest(artifact, remoteRepos, null); ArtifactDescriptorResult results = system.readArtifactDescriptor(session, ar); Artifact a = results.getArtifact(); Dependency d = DependencyBuilder.create().setArtifactId(a.getArtifactId()).setGroupId(a.getGroupId()) .setVersion(a.getBaseVersion()); return new DependencyMetadataImpl(d, results); } catch (Exception e) { throw new DependencyException("Unable to resolve any artifacts for query [" + query + "]", e); } }
Predicate<Dependency> filter = query.getDependencyFilter(); RepositorySystem system = container.getRepositorySystem(); Settings settings = container.getSettings(); Artifact queryArtifact = MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate()); List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings)); query.getScopeType()), remoteRepos);
session.setDependencySelector(new ScopeDependencySelector("test")); final CoordinateBuilder coord = CoordinateBuilder.create(query.getCoordinate()); Artifact queryArtifact = MavenConvertUtils.coordinateToMavenArtifact(coord); List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings)); throw new DependencyException("Could not resolve dependencies for addon [" + query.getCoordinate() + "]", e);
@Override public Dependency resolveArtifact(DependencyQuery query) { RepositorySystem system = container.getRepositorySystem(); Settings settings = container.getSettings(); List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings)); DefaultRepositorySystemSession session = container.setupRepoSession(system, settings); Artifact queryArtifact = MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate()); ArtifactRequest request = new ArtifactRequest(queryArtifact, remoteRepos, null); try { ArtifactResult resolvedArtifact = system.resolveArtifact(session, request); Artifact artifact = resolvedArtifact.getArtifact(); @SuppressWarnings("unchecked") FileResource<?> artifactResource = getResourceFactory().create(FileResource.class, artifact.getFile()); return DependencyBuilder.create() .setArtifact(artifactResource) .setGroupId(artifact.getGroupId()) .setArtifactId(artifact.getArtifactId()) .setClassifier(artifact.getClassifier()) .setPackaging(artifact.getExtension()) .setVersion(artifact.getBaseVersion()); } catch (ArtifactResolutionException e) { throw new MavenOperationException(e); } }