Example usage for org.apache.maven.artifact.resolver ArtifactResolutionRequest setCollectionFilter

List of usage examples for org.apache.maven.artifact.resolver ArtifactResolutionRequest setCollectionFilter

Introduction

In this page you can find the example usage for org.apache.maven.artifact.resolver ArtifactResolutionRequest setCollectionFilter.

Prototype

public ArtifactResolutionRequest setCollectionFilter(ArtifactFilter filter) 

Source Link

Usage

From source file:org.sonatype.gshell.commands.artifact.ResolveCommand.java

License:Apache License

public Object execute(final CommandContext context) throws Exception {
    assert context != null;
    IO io = context.getIo();/*ww  w . j a v a2  s  . c o  m*/

    RepositorySystem rsys = plexus.lookup(RepositorySystem.class);

    ArtifactResolutionRequest request = new ArtifactResolutionRequest();

    String[] items = resolveId.split(":", 3);
    if (items.length != 3) {
        io.error("Invalid artifact resolution id: {}", resolveId); // TODO: i18n
        return Result.FAILURE;
    }

    String groupId = items[0];
    String artifactId = items[1];
    String version = items[2];

    Artifact artifact;
    if (classifier != null) {
        artifact = rsys.createArtifactWithClassifier(groupId, artifactId, version, type, classifier);
    } else {
        artifact = rsys.createArtifact(groupId, artifactId, version, type);
    }
    io.println("Resolving artifact: {}", artifact); // TODO: i18n

    //
    // TODO: Bring the ArtifactManager/ArtifactRepsitoryManager back to manage these components

    request.setLocalRepository(rsys.createDefaultLocalRepository());
    request.setRemoteRepositories(Collections.singletonList(rsys.createDefaultRemoteRepository()));

    request.setResolveRoot(true);
    request.setResolveTransitively(transitive);
    request.setArtifact(artifact);

    if (scope != null) {
        io.debug("Using scope: {}", scope);
        request.setCollectionFilter(new ScopeArtifactFilter(scope));
    }

    request.setOffline(offline);
    request.setTransferListener(new ProgressSpinnerMonitor(io));
    ArtifactResolutionResult result = rsys.resolve(request);

    Set<Artifact> artifacts = result.getArtifacts();
    io.println("Resolved artifacts:"); // TODO: i18n
    for (Artifact a : artifacts) {
        io.println("    {}", a);
    }

    return Result.SUCCESS;
}

From source file:org.sourcepit.maven.bootstrap.core.AbstractBootstrapper.java

License:Apache License

private ArtifactResolutionResult resolve(MavenSession session, MavenProject project, Dependency dependency) {
    final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setResolveRoot(true);// w ww.j  av a2s.  co m
    request.setResolveTransitively(true);

    final AndArtifactFilter artifactFilter = new AndArtifactFilter();
    artifactFilter.add(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME_PLUS_SYSTEM));
    artifactFilter.add(new ExclusionSetFilter(artifactFilterManager.getCoreArtifactExcludes()));

    request.setResolutionFilter(artifactFilter);
    request.setCollectionFilter(artifactFilter);

    final MavenExecutionRequest executionRequest = session.getRequest();
    request.setForceUpdate(executionRequest.isUpdateSnapshots());
    request.setServers(executionRequest.getServers());
    request.setMirrors(executionRequest.getMirrors());
    request.setProxies(executionRequest.getProxies());

    request.setOffline(session.isOffline());
    request.setLocalRepository(session.getLocalRepository());

    // project specific
    request.setRemoteRepositories(project.getRemoteArtifactRepositories());

    // important to NOT apply dep management here, leeds to unexpected side effects, e.g. when osgifier is managed in
    // project which is build. So separate deps from project which is build and build system is a good thing.
    // Note: we must explicitly set an empty map to prevent managed version resolution via maven session
    request.setManagedVersionMap(new HashMap<String, Artifact>());

    request.setArtifact(repositorySystem.createDependencyArtifact(dependency));

    final ArtifactResolutionResult result = repositorySystem.resolve(request);
    try {
        resolutionErrorHandler.throwErrors(request, result);
    } catch (ArtifactResolutionException e) {
        throw new IllegalStateException(e);
    }
    return result;
}

From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java

License:Apache License

private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext,
        boolean resolveRoot, List<Dependency> dependencies) {
    final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(artifact);/*from  www .jav a 2s  .c o  m*/
    request.setResolveRoot(resolveRoot);
    request.setResolveTransitively(!resolveRoot);

    if (dependencies != null) {
        final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>();
        for (Dependency dependency : dependencies) {
            artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(),
                    dependency.getArtifactId(), dependency.getVersion(), dependency.getType(),
                    dependency.getClassifier()));
        }
        request.setArtifactDependencies(artifactDependencies);
    }

    request.setLocalRepository(walkerRequest.getLocalRepository());

    final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>();
    final Set<String> repoIds = new HashSet<String>();
    final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories();
    if (requestRepos != null) {
        for (ArtifactRepository artifactRepository : requestRepos) {
            repoIds.add(artifactRepository.getId());
            remoteRepositories.add(artifactRepository);
        }
    }

    if (resolutionContext != null) {
        for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) {
            if (repoIds.add(artifactRepository.getId())) {
                remoteRepositories.add(artifactRepository);
            }
        }
        request.setManagedVersionMap(resolutionContext.getManagedVersionMap());
    }

    request.setRemoteRepositories(remoteRepositories);

    final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter();

    request.setCollectionFilter(artifactFilter);
    request.setResolutionFilter(artifactFilter);

    ArtifactResolutionResult result = repositorySystem.resolve(request);

    final Exception ex;
    if (result.hasExceptions()) {
        ex = result.getExceptions().get(0);
    } else if (result.hasCircularDependencyExceptions()) {
        ex = result.getCircularDependencyException(0);
    } else if (result.hasErrorArtifactExceptions()) {
        ex = result.getErrorArtifactExceptions().get(0);
    } else if (result.hasMetadataResolutionExceptions()) {
        ex = result.getMetadataResolutionException(0);
    } else {
        ex = null;
    }
    if (ex != null) {
        throw new IllegalStateException(ex);
    }

    for (Artifact missingArtifact : result.getMissingArtifacts()) {
        throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact));
    }

    return result.getArtifacts();
}