Example usage for org.apache.maven.repository RepositorySystem resolve

List of usage examples for org.apache.maven.repository RepositorySystem resolve

Introduction

In this page you can find the example usage for org.apache.maven.repository RepositorySystem resolve.

Prototype

ArtifactResolutionResult resolve(ArtifactResolutionRequest request);

Source Link

Usage

From source file:com.yelbota.plugins.nd.DependencyHelper.java

License:Apache License

/**
 * Resolves native dependency artifact. First it checks plugin dependencies
 * compares they with getDefaultArtifactId() and getDefaultGroupId(), then method
 * tries to resolve from repositories using also getDefaultVersion(), getDefaultPackaging()
 * and getDefaultClassifier()./*from  ww  w. ja  va2s.c om*/
 *
 * @param pluginArtifacts    list of plugin dependencies (inject this with @parameter)
 * @param repositorySystem   inject this with @parameter
 * @param localRepository    inject this with @parameter
 * @param remoteRepositories inject this with @parameter
 * @return Native dependency artifact
 * @throws MojoFailureException
 */
public Artifact resolve(List<Artifact> pluginArtifacts, RepositorySystem repositorySystem,
        ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories)
        throws MojoFailureException {

    Artifact artifact = null;

    if (pluginArtifacts != null) {

        // Lookup plugin artifacts.
        for (Artifact pluginArtifact : pluginArtifacts) {

            boolean eqGroupId = pluginArtifact.getGroupId().equals(getDefaultGroupId());
            boolean eqArtifactId = pluginArtifact.getArtifactId().equals(getDefaultArtifactId());

            if (eqGroupId && eqArtifactId) {

                artifact = pluginArtifact;
                break;
            }
        }
    }

    if (artifact != null) {
        return artifact;
    } else {
        // Okay. Lets download sdk
        if (repositorySystem != null) {
            artifact = repositorySystem.createArtifactWithClassifier(

                    getDefaultGroupId(), getDefaultArtifactId(), getDefaultVersion(), getDefaultPackaging(),
                    getDefaultClassifier());

            ArtifactResolutionRequest request = new ArtifactResolutionRequest();

            request.setArtifact(artifact);
            request.setLocalRepository(localRepository);
            request.setRemoteRepositories(remoteRepositories);

            ArtifactResolutionResult resolutionResult = repositorySystem.resolve(request);

            if (!resolutionResult.isSuccess()) {

                String message = "Failed to resolve artifact " + artifact;
                throw new ArtifactResolutionException(message, resolutionResult);
            }
        }

        return artifact;
    }
}

From source file:guru.nidi.maven.tools.MavenUtil.java

License:Apache License

public static ArtifactResolutionResult resolveArtifact(MavenSession session, RepositorySystem repository,
        Artifact artifact, boolean transitive, ArtifactFilter resolutionFilter) {
    artifact.setArtifactHandler(new DefaultArtifactHandler(artifact.getType()));
    ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact(artifact)
            .setResolveRoot(true).setServers(session.getRequest().getServers())
            .setMirrors(session.getRequest().getMirrors()).setProxies(session.getRequest().getProxies())
            .setLocalRepository(session.getLocalRepository())
            .setRemoteRepositories(session.getRequest().getRemoteRepositories())
            .setResolveTransitively(transitive).setCollectionFilter(resolutionFilter)
            .setResolutionFilter(resolutionFilter);
    //.setListeners(Arrays.<ResolutionListener>asList(new DebugResolutionListener(new ConsoleLogger())));
    return repository.resolve(request);
}

From source file:org.ebayopensource.turmeric.eclipse.mavenapi.internal.util.MavenApiUtil.java

License:Open Source License

/**
 * Tries to resolve the given artifact in the given local/remote
 * repositories./*from w  w w.  ja v a2 s.c  o  m*/
 *
 * @param embedder the embedder
 * @param artifact the artifact
 * @param localRepository the local repository
 * @param remoteRepositories the remote repositories
 * @param resolveDependencies the resolve dependencies
 * @return the artifact resolution result
 * @throws MavenEclipseApiException the maven eclipse api exception
 */
public static ArtifactResolutionResult resolveArtifact(RepositorySystem embedder, Artifact artifact,
        ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
        boolean resolveDependencies) throws MavenEclipseApiException {
    if (embedder == null) {
        return null;
    }

    ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(artifact);
    request.setLocalRepository(localRepository);
    request.setRemoteRepositories(remoteRepositories);
    request.setResolveTransitively(resolveDependencies);

    return embedder.resolve(request);
}

From source file:org.fusesource.mop.MOPRepository.java

License:Open Source License

public Set<Artifact> resolveArtifacts(ArtifactFilter filter, final ArtifactId id)
        throws Exception, InvalidRepositoryException {
    debug("Resolving artifact " + id);

    RepositorySystem repositorySystem = (RepositorySystem) getContainer().lookup(RepositorySystem.class);

    List<ArtifactRepository> remoteRepositories = createRemoteRepositories(repositorySystem);
    ArtifactRepository localRepository = createLocalRepository(repositorySystem, "mop.local",
            getLocalRepo().getAbsolutePath(), false);

    // If group id is not set.. we can still look it up in the db
    // of installed artifacs.
    if (id.getGroupId() == null) {
        database(true, new DBCallback() {
            public void execute(Database database) throws Exception {

                // Makes groupId includeOptional.. we look it up in the database.
                if (id.getGroupId() == null) {
                    Map<String, Set<String>> rc = Database
                            .groupByGroupId(database.findByArtifactId(id.getArtifactId()));
                    if (rc.isEmpty()) {
                        throw new Exception(
                                "Please qualify a group id: No local artifacts match: " + id.getArtifactId());
                    }//from  ww  w  .  j a  v a 2s . co  m
                    if (rc.size() > 1) {
                        System.out.println("Local artifacts that match:");
                        for (String s : rc.keySet()) {
                            System.out.println("   " + s + ":" + id.getArtifactId());
                        }
                        throw new Exception("Please qualify a group id: Multiple local artifacts match: " + id);
                    }
                    id.setGroupId(rc.keySet().iterator().next());
                    debug("Resolving artifact " + id);
                }

            }
        });
    }

    if (online) {

        // Keep track that we are trying an install..
        // If an install dies midway.. the repo will have partlly installed dependencies...
        // we may want to continue the install??
        // database.beginInstall(id.toString());

    }

    Artifact artifact = repositorySystem.createArtifactWithClassifier(id.getGroupId(), id.getArtifactId(),
            id.getVersion(), id.getType(), id.getClassifier());

    // Setup the filters which will constrain the resulting dependencies..
    List<ArtifactFilter> constraints = new ArrayList<ArtifactFilter>();
    constraints.add(new ScopeArtifactFilter(scope));
    if (!includeOptional) {
        constraints.add(new ArtifactFilter() {
            public boolean include(Artifact artifact) {
                return !artifact.isOptional();
            }
        });
    }
    if (filter != null) {
        constraints.add(filter);
    }

    ArtifactFilter filters = new AndArtifactFilter(constraints);

    ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact(artifact)
            .setResolveRoot(true).setResolveTransitively(isTransitive()).setLocalRepository(localRepository)
            .setRemoteRepositories(remoteRepositories).setOffline(!online).setCollectionFilter(filters);

    ArtifactResolutionResult result = repositorySystem.resolve(request);

    List<Artifact> list = result.getMissingArtifacts();
    if (!list.isEmpty()) {
        throw new Exception("The following artifacts could not be downloaded: " + list);
    }

    if (/* result.getArtifacts().isEmpty() && */!result.getExceptions().isEmpty()) {
        throw new Exception("Error resolving artifact " + artifact, result.getExceptions().get(0));
    }

    Set<Artifact> rc = result.getArtifacts();
    if (online) {
        // Have the DB index the installed the artifacts.
        final LinkedHashSet<String> installed = new LinkedHashSet<String>();
        for (Artifact a : rc) {
            installed.add(a.getId());
        }
        database(false, new DBCallback() {
            public void execute(Database database) throws Exception {
                database.install(installed);
            }
        });
    }

    debug("  Resolved: " + id);
    for (Artifact a : rc) {
        debug("    depends on: " + a.getId() + ", scope: " + a.getScope() + ", optional: " + a.isOptional()
                + ", file: " + a.getFile());
    }

    return rc;

}

From source file:org.jboss.tools.maven.core.internal.resolution.ArtifactResolutionService.java

License:Open Source License

boolean isResolved(Artifact artifact, List<ArtifactRepository> repositories, IProgressMonitor monitor)
        throws CoreException {
    try {// w  ww  .  ja  v a 2 s .c  o m
        RepositorySystem mavenRepositorySystem = MavenUtil.getRepositorySystem();
        IMaven maven = MavenPlugin.getMaven();
        ArtifactResolutionRequest request = new ArtifactResolutionRequest();
        request.setArtifact(artifact);
        request.setLocalRepository(maven.getLocalRepository());
        request.setOffline(MavenPlugin.getMavenConfiguration().isOffline());
        request.setRemoteRepositories(repositories);
        request.setResolveTransitively(false);
        ArtifactResolutionResult resolution = mavenRepositorySystem.resolve(request);
        return resolution.isSuccess();
    } catch (Exception e) {
        throw toCoreException(e);
    }
}

From source file:org.onos.yangtools.yang2sources.plugin.Util.java

License:Open Source License

/**
 * Read transitive dependencies of given plugin and store them in map.
 *
 * @param plugin//w w  w .  j ava  2s.  co m
 *            plugin to read
 * @param map
 *            map, where founded transitive dependencies will be stored
 * @param repoSystem
 *            repository system
 * @param localRepository
 *            local repository
 * @param remoteRepos
 *            list of remote repositories
 * @param log
 *            logger
 */
private static void getPluginTransitiveDependencies(Plugin plugin, Map<Artifact, Collection<Artifact>> map,
        RepositorySystem repoSystem, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepos,
        Log log) {

    List<Dependency> pluginDependencies = plugin.getDependencies();
    for (Dependency dep : pluginDependencies) {
        Artifact artifact = repoSystem.createDependencyArtifact(dep);

        ArtifactResolutionRequest request = new ArtifactResolutionRequest();
        request.setArtifact(artifact);
        request.setResolveTransitively(true);
        request.setLocalRepository(localRepository);
        request.setRemoteRepositories(remoteRepos);

        ArtifactResolutionResult result = repoSystem.resolve(request);
        Set<Artifact> pluginDependencyDependencies = result.getArtifacts();
        map.put(artifact, pluginDependencyDependencies);
    }
}

From source file:org.opendaylight.yangtools.yang2sources.plugin.Util.java

License:Open Source License

/**
 * Read transitive dependencies of given plugin and store them in map.
 *
 * @param plugin/*from  ww w  . j  a  v  a2  s  .  co  m*/
 *            plugin to read
 * @param map
 *            map, where founded transitive dependencies will be stored
 * @param repoSystem
 *            repository system
 * @param localRepository
 *            local repository
 * @param remoteRepos
 *            list of remote repositories
 */
private static void getPluginTransitiveDependencies(final Plugin plugin,
        final Map<Artifact, Collection<Artifact>> map, final RepositorySystem repoSystem,
        final ArtifactRepository localRepository, final List<ArtifactRepository> remoteRepos) {

    List<Dependency> pluginDependencies = plugin.getDependencies();
    for (Dependency dep : pluginDependencies) {
        Artifact artifact = repoSystem.createDependencyArtifact(dep);

        ArtifactResolutionRequest request = new ArtifactResolutionRequest();
        request.setArtifact(artifact);
        request.setResolveTransitively(true);
        request.setLocalRepository(localRepository);
        request.setRemoteRepositories(remoteRepos);

        ArtifactResolutionResult result = repoSystem.resolve(request);
        Set<Artifact> pluginDependencyDependencies = result.getArtifacts();
        map.put(artifact, pluginDependencyDependencies);
    }
}

From source file:org.phpmaven.project.impl.DependencyHelper.java

License:Apache License

/**
  * Resolves the artifact./* w  w w .ja  v  a  2  s  . com*/
  * @param groupId group id
  * @param artifactId artifact id
  * @param version version
  * @param type type
  * @param classifier classifier
  * @return the resolved artifact
  * @throws PhpException thrown on resolve errors
  */
private static Artifact resolveArtifact(String groupId, String artifactId, String version, String type,
        String classifier, RepositorySystem reposSystem, MavenSession session) throws MojoExecutionException {
    final Artifact artifact = reposSystem.createArtifactWithClassifier(groupId, artifactId, version, type,
            classifier);
    final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(artifact);
    request.setLocalRepository(session.getLocalRepository());
    request.setOffline(session.isOffline());
    final Set<ArtifactRepository> setRepos = new HashSet<ArtifactRepository>(
            session.getRequest().getRemoteRepositories());
    setRepos.addAll(session.getCurrentProject().getRemoteArtifactRepositories());
    request.setRemoteRepositories(new ArrayList<ArtifactRepository>(setRepos));
    final ArtifactResolutionResult result = reposSystem.resolve(request);
    if (!result.isSuccess()) {
        throw new MojoExecutionException(
                "dependency resolution failed for " + groupId + ":" + artifactId + ":" + version);
    }

    final Artifact resultArtifact = result.getArtifacts().iterator().next();
    return resultArtifact;
}

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();//from w  ww. jav  a 2  s.  com

    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.wso2.maven.p2.utils.MavenUtils.java

License:Open Source License

/**
 * Returns an artifact which represented by a the given CarbonArtifact.
 *
 * @param groupId {@code String} group id of the maven artifact
 * @param artifactId {@code String} artifact id of the maven artifact
 * @param version {@code String} version of the maven artifact
 * @param repositorySystem {@link RepositorySystem}
 * @param remoteRepositories {@code List<ArtifactRepository>}
 * @param localRepository {@link ArtifactRepository}
 * @param type {@code String}// w  w w .j a va 2 s. c  o  m
 * @return {@link Artifact}
 */
private static Artifact getResolvedArtifact(String groupId, String artifactId, String version,
        RepositorySystem repositorySystem, List<ArtifactRepository> remoteRepositories,
        ArtifactRepository localRepository, String type) {

    Artifact artifact = repositorySystem.createArtifact(groupId, artifactId, version, Artifact.SCOPE_RUNTIME,
            type);

    ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(artifact);
    request.setLocalRepository(localRepository);
    request.setRemoteRepositories(remoteRepositories);
    repositorySystem.resolve(request);

    return artifact;
}