Example usage for org.apache.maven RepositoryUtils toRepos

List of usage examples for org.apache.maven RepositoryUtils toRepos

Introduction

In this page you can find the example usage for org.apache.maven RepositoryUtils toRepos.

Prototype

public static List<RemoteRepository> toRepos(List<ArtifactRepository> repos) 

Source Link

Usage

From source file:com.coderplus.apacheutils.translators.resolvers.DefaultArtifactsResolver.java

License:Apache License

public Set<Artifact> resolve(Set<Artifact> artifacts, org.eclipse.aether.RepositorySystem repoSystem)
        throws MojoExecutionException {

    Set<Artifact> resolvedArtifacts = new HashSet<Artifact>();
    for (Artifact artifact : artifacts) {
        try {//from www  .  j a  v  a  2  s  . c  o m
            ArtifactRequest request = new ArtifactRequest(RepositoryUtils.toArtifact(artifact),
                    RepositoryUtils.toRepos(remoteRepositories), "");
            ArtifactResult result = repoSystem
                    .resolveArtifact(LegacyLocalRepositoryManager.overlay(local, null, null), request);
            if (result.getArtifact() != null) {
                resolvedArtifacts.add(RepositoryUtils.toArtifact(result.getArtifact()));
            } else {
                throw new Exception("No valid artifact resolved");
            }
        } catch (Exception ex) {
            // an error occurred during resolution, log it an continue
            if (stopOnFailure) {
                throw new MojoExecutionException("error resolving: " + artifact.getId(), ex);
            }
        }

    }
    return resolvedArtifacts;
}

From source file:net.oneandone.maven.embedded.Maven.java

License:Apache License

public static Maven withSettings(World world, FileNode localRepository, FileNode globalSettings,
        FileNode userSettings, DefaultPlexusContainer container, TransferListener transferListener,
        RepositoryListener repositoryListener) throws IOException {
    RepositorySystem system;/*from w  w  w .  ja  v a  2 s  .  co  m*/
    DefaultRepositorySystemSession session;
    Settings settings;
    LegacyRepositorySystem legacySystem;
    List<ArtifactRepository> repositoriesLegacy;

    try {
        try {
            settings = loadSettings(world, globalSettings, userSettings, container);
        } catch (XmlPullParserException e) {
            throw new IOException("cannot load settings: " + e.getMessage(), e);
        }
        system = container.lookup(RepositorySystem.class);
        session = createSession(transferListener, repositoryListener, system,
                createLocalRepository(world, localRepository, settings), settings);
        legacySystem = (LegacyRepositorySystem) container
                .lookup(org.apache.maven.repository.RepositorySystem.class, "default");
        repositoriesLegacy = repositoriesLegacy(legacySystem, settings);
        legacySystem.injectAuthentication(session, repositoriesLegacy);
        legacySystem.injectMirror(session, repositoriesLegacy);
        legacySystem.injectProxy(session, repositoriesLegacy);
        return new Maven(world, system, session, container.lookup(ProjectBuilder.class),
                RepositoryUtils.toRepos(repositoriesLegacy), repositoriesLegacy);
    } catch (InvalidRepositoryException | ComponentLookupException e) {
        throw new IllegalStateException(e);
    }
}

From source file:org.eclipse.che.maven.CheArtifactResolver.java

License:Apache License

private void resolveOrig(Artifact artifact, List<ArtifactRepository> remoteRepositories,
        RepositorySystemSession session) throws ArtifactResolutionException, ArtifactNotFoundException {
    if (artifact == null) {
        return;/*  w w w  .jav  a 2 s. c  o m*/
    }

    if (Artifact.SCOPE_SYSTEM.equals(artifact.getScope())) {
        File systemFile = artifact.getFile();

        if (systemFile == null) {
            throw new ArtifactNotFoundException("System artifact: " + artifact + " has no file attached",
                    artifact);
        }

        if (!systemFile.exists()) {
            throw new ArtifactNotFoundException(
                    "System artifact: " + artifact + " not found in path: " + systemFile, artifact);
        }

        if (!systemFile.isFile()) {
            throw new ArtifactNotFoundException(
                    "System artifact: " + artifact + " is not a file: " + systemFile, artifact);
        }

        artifact.setResolved(true);

        return;
    }

    if (!artifact.isResolved()) {
        ArtifactResult result;

        try {
            ArtifactRequest artifactRequest = new ArtifactRequest();
            artifactRequest.setArtifact(RepositoryUtils.toArtifact(artifact));
            artifactRequest.setRepositories(RepositoryUtils.toRepos(remoteRepositories));

            // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
            LocalRepositoryManager lrm = session.getLocalRepositoryManager();
            String path = lrm.getPathForLocalArtifact(artifactRequest.getArtifact());
            artifact.setFile(new File(lrm.getRepository().getBasedir(), path));

            result = repoSystem.resolveArtifact(session, artifactRequest);
        } catch (org.eclipse.aether.resolution.ArtifactResolutionException e) {
            if (e.getCause() instanceof org.eclipse.aether.transfer.ArtifactNotFoundException) {
                throw new ArtifactNotFoundException(e.getMessage(), artifact.getGroupId(),
                        artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
                        artifact.getClassifier(), remoteRepositories, artifact.getDownloadUrl(),
                        artifact.getDependencyTrail(), e);
            } else {
                throw new ArtifactResolutionException(e.getMessage(), artifact, remoteRepositories, e);
            }
        }

        artifact.selectVersion(result.getArtifact().getVersion());
        artifact.setFile(result.getArtifact().getFile());
        artifact.setResolved(true);

        if (artifact.isSnapshot()) {
            Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher(artifact.getVersion());
            if (matcher.matches()) {
                Snapshot snapshot = new Snapshot();
                snapshot.setTimestamp(matcher.group(2));
                try {
                    snapshot.setBuildNumber(Integer.parseInt(matcher.group(3)));
                    artifact.addMetadata(new SnapshotArtifactRepositoryMetadata(artifact, snapshot));
                } catch (NumberFormatException e) {
                    logger.warn("Invalid artifact version " + artifact.getVersion() + ": " + e.getMessage());
                }
            }
        }
    }
}

From source file:org.eclipse.che.maven.server.MavenServerImpl.java

License:Open Source License

@Override
public MavenArtifact resolveArtifact(MavenArtifactKey artifactKey, List<MavenRemoteRepository> repositories)
        throws RemoteException {
    Artifact artifact = getMavenComponent(ArtifactFactory.class).createArtifactWithClassifier(
            artifactKey.getGroupId(), artifactKey.getArtifactId(), artifactKey.getVersion(),
            artifactKey.getPackaging(), artifactKey.getClassifier());

    List<ArtifactRepository> repos = new ArrayList<>();
    ArtifactRepositoryFactory factory = getMavenComponent(ArtifactRepositoryFactory.class);
    for (MavenRemoteRepository repository : repositories) {
        try {// w  w w.  ja va  2s  .  c o  m
            ArtifactRepository artifactRepository = ProjectUtils.buildArtifactRepository(
                    MavenModelUtil.convertToMavenRepository(repository), factory, container);
            repos.add(artifactRepository);
        } catch (InvalidRepositoryException e) {
            MavenServerContext.getLogger().error(e);
        }

    }

    MavenExecutionRequest request = newMavenRequest(null, Collections.emptyList(), Collections.emptyList(),
            Collections.emptyList());
    repos.forEach(request::addRemoteRepository);

    DefaultMaven maven = (DefaultMaven) getMavenComponent(Maven.class);
    RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request);

    org.eclipse.aether.impl.ArtifactResolver artifactResolver = getMavenComponent(
            org.eclipse.aether.impl.ArtifactResolver.class);
    InternalLoggerFactory loggerFactory = new InternalLoggerFactory();
    if (artifactResolver instanceof DefaultArtifactResolver) {
        ((DefaultArtifactResolver) artifactResolver).setLoggerFactory(loggerFactory);
    }

    org.eclipse.aether.RepositorySystem repositorySystem = getMavenComponent(
            org.eclipse.aether.RepositorySystem.class);
    if (repositorySystem instanceof DefaultRepositorySystem) {
        ((DefaultRepositorySystem) repositorySystem).setLoggerFactory(loggerFactory);
    }

    List<RemoteRepository> remoteRepositories = RepositoryUtils.toRepos(request.getRemoteRepositories());
    remoteRepositories = repositorySystem.newResolutionRepositories(repositorySystemSession,
            remoteRepositories);

    try {
        ArtifactResult artifactResult = repositorySystem.resolveArtifact(repositorySystemSession,
                new ArtifactRequest(RepositoryUtils.toArtifact(artifact), remoteRepositories, null));
        return MavenModelUtil.convertArtifact(RepositoryUtils.toArtifact(artifactResult.getArtifact()),
                localRepository);
    } catch (ArtifactResolutionException e) {
        MavenServerContext.getLogger().info(e);
    }
    return MavenModelUtil.convertArtifact(artifact, localRepository);
}

From source file:org.eclipse.m2e.core.internal.embedder.MavenImpl.java

License:Open Source License

public Artifact resolve(final Artifact artifact, List<ArtifactRepository> remoteRepositories,
        IProgressMonitor monitor) throws CoreException {
    if (remoteRepositories == null) {
        try {//from w ww.  j  av a2 s  .c o m
            remoteRepositories = getArtifactRepositories();
        } catch (CoreException e) {
            // we've tried
            remoteRepositories = Collections.emptyList();
        }
    }
    final List<ArtifactRepository> _remoteRepositories = remoteRepositories;

    return context().execute(new ICallable<Artifact>() {
        public Artifact call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
            org.sonatype.aether.RepositorySystem repoSystem = lookup(
                    org.sonatype.aether.RepositorySystem.class);

            ArtifactRequest request = new ArtifactRequest();
            request.setArtifact(RepositoryUtils.toArtifact(artifact));
            request.setRepositories(RepositoryUtils.toRepos(_remoteRepositories));

            ArtifactResult result;
            try {
                result = repoSystem.resolveArtifact(context.getRepositorySession(), request);
            } catch (ArtifactResolutionException ex) {
                result = ex.getResults().get(0);
            }

            setLastUpdated(context.getLocalRepository(), _remoteRepositories, artifact);

            if (result.isResolved()) {
                artifact.selectVersion(result.getArtifact().getVersion());
                artifact.setFile(result.getArtifact().getFile());
                artifact.setResolved(true);
            } else {
                ArrayList<IStatus> members = new ArrayList<IStatus>();
                for (Exception e : result.getExceptions()) {
                    if (!(e instanceof ArtifactNotFoundException)) {
                        members.add(
                                new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1, e.getMessage(), e));
                    }
                }
                if (members.isEmpty()) {
                    members.add(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1,
                            NLS.bind(Messages.MavenImpl_error_missing, artifact), null));
                }
                IStatus[] newMembers = members.toArray(new IStatus[members.size()]);
                throw new CoreException(new MultiStatus(IMavenConstants.PLUGIN_ID, -1, newMembers,
                        NLS.bind(Messages.MavenImpl_error_resolve, artifact.toString()), null));
            }

            return artifact;
        }
    }, monitor);
}

From source file:org.jetbrains.idea.maven.server.embedder.CustomMaven32ArtifactResolver.java

License:Apache License

private void resolveOld(Artifact artifact, List<ArtifactRepository> remoteRepositories,
        RepositorySystemSession session) throws ArtifactResolutionException, ArtifactNotFoundException {
    if (artifact == null) {
        return;// w  ww .  ja  v  a2  s. c o m
    }

    if (Artifact.SCOPE_SYSTEM.equals(artifact.getScope())) {
        File systemFile = artifact.getFile();

        if (systemFile == null) {
            throw new ArtifactNotFoundException("System artifact: " + artifact + " has no file attached",
                    artifact);
        }

        if (!systemFile.exists()) {
            throw new ArtifactNotFoundException(
                    "System artifact: " + artifact + " not found in path: " + systemFile, artifact);
        }

        if (!systemFile.isFile()) {
            throw new ArtifactNotFoundException(
                    "System artifact: " + artifact + " is not a file: " + systemFile, artifact);
        }

        artifact.setResolved(true);

        return;
    }

    if (!artifact.isResolved()) {
        ArtifactResult result;

        try {
            ArtifactRequest artifactRequest = new ArtifactRequest();
            artifactRequest.setArtifact(RepositoryUtils.toArtifact(artifact));
            artifactRequest.setRepositories(RepositoryUtils.toRepos(remoteRepositories));

            // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
            LocalRepositoryManager lrm = session.getLocalRepositoryManager();
            String path = lrm.getPathForLocalArtifact(artifactRequest.getArtifact());
            artifact.setFile(new File(lrm.getRepository().getBasedir(), path));

            result = repoSystem.resolveArtifact(session, artifactRequest);
        } catch (org.eclipse.aether.resolution.ArtifactResolutionException e) {
            if (e.getCause() instanceof org.eclipse.aether.transfer.ArtifactNotFoundException) {
                throw new ArtifactNotFoundException(e.getMessage(), artifact.getGroupId(),
                        artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
                        artifact.getClassifier(), remoteRepositories, artifact.getDownloadUrl(),
                        artifact.getDependencyTrail(), e);
            } else {
                throw new ArtifactResolutionException(e.getMessage(), artifact, remoteRepositories, e);
            }
        }

        artifact.selectVersion(result.getArtifact().getVersion());
        artifact.setFile(result.getArtifact().getFile());
        artifact.setResolved(true);

        if (artifact.isSnapshot()) {
            Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher(artifact.getVersion());
            if (matcher.matches()) {
                Snapshot snapshot = new Snapshot();
                snapshot.setTimestamp(matcher.group(2));
                try {
                    snapshot.setBuildNumber(Integer.parseInt(matcher.group(3)));
                    artifact.addMetadata(new SnapshotArtifactRepositoryMetadata(artifact, snapshot));
                } catch (NumberFormatException e) {
                    logger.warn("Invalid artifact version " + artifact.getVersion() + ": " + e.getMessage());
                }
            }
        }
    }
}

From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java

License:Apache License

private Artifact resolve(@Nonnull final Artifact artifact, @Nonnull final List<ArtifactRepository> repos)
        throws ArtifactResolutionException, ArtifactNotFoundException, RemoteException,
        org.eclipse.aether.resolution.ArtifactResolutionException {

    final String mavenVersion = getMavenVersion();
    // org.eclipse.aether.RepositorySystem.newResolutionRepositories() method doesn't exist in aether-api-0.9.0.M2.jar used before maven 3.2.5
    // see https://youtrack.jetbrains.com/issue/IDEA-140208 for details
    if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING
            || MavenStringUtil.compareVersionNumbers(mavenVersion, "3.2.5") < 0) {
        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
        request.setRemoteRepositories(repos);
        try {/*  www .jav  a 2 s. c om*/
            getComponent(MavenExecutionRequestPopulator.class).populateFromSettings(request, myMavenSettings);
            getComponent(MavenExecutionRequestPopulator.class).populateDefaults(request);
        } catch (MavenExecutionRequestPopulationException e) {
            throw new RuntimeException(e);
        }

        getComponent(ArtifactResolver.class).resolve(artifact, request.getRemoteRepositories(),
                myLocalRepository);
        return artifact;
    } else {
        final MavenExecutionRequest request = createRequest(null, Collections.<String>emptyList(),
                Collections.<String>emptyList(), Collections.<String>emptyList());
        for (ArtifactRepository artifactRepository : repos) {
            request.addRemoteRepository(artifactRepository);
        }

        DefaultMaven maven = (DefaultMaven) getComponent(Maven.class);
        RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request);

        final org.eclipse.aether.impl.ArtifactResolver artifactResolver = getComponent(
                org.eclipse.aether.impl.ArtifactResolver.class);
        final MyLoggerFactory loggerFactory = new MyLoggerFactory();
        if (artifactResolver instanceof DefaultArtifactResolver) {
            ((DefaultArtifactResolver) artifactResolver).setLoggerFactory(loggerFactory);
        }

        final org.eclipse.aether.RepositorySystem repositorySystem = getComponent(
                org.eclipse.aether.RepositorySystem.class);
        if (repositorySystem instanceof DefaultRepositorySystem) {
            ((DefaultRepositorySystem) repositorySystem).setLoggerFactory(loggerFactory);
        }

        List<RemoteRepository> repositories = RepositoryUtils.toRepos(request.getRemoteRepositories());
        repositories = repositorySystem.newResolutionRepositories(repositorySystemSession, repositories);

        final ArtifactResult artifactResult = repositorySystem.resolveArtifact(repositorySystemSession,
                new ArtifactRequest(RepositoryUtils.toArtifact(artifact), repositories, null));

        return RepositoryUtils.toArtifact(artifactResult.getArtifact());
    }
}

From source file:org.sonatype.plugins.p2.bridge.WithinEclipseRunningMojo.java

License:Open Source License

protected List<RemoteRepository> getRemoteProjectRepositories() {
    return RepositoryUtils.toRepos(session.getProjectBuildingRequest().getRemoteRepositories());
}

From source file:org.springframework.ide.vscode.commons.maven.MavenBridge.java

License:Open Source License

public Artifact resolve(final Artifact artifact, List<ArtifactRepository> remoteRepositories,
        MavenExecutionRequest executionRequest) throws MavenException {
    if (remoteRepositories == null) {
        try {/*www .j a  v  a2  s.c  om*/
            remoteRepositories = getArtifactRepositories();
        } catch (MavenException e) {
            // we've tried
            remoteRepositories = Collections.emptyList();
        }
    }
    final List<ArtifactRepository> _remoteRepositories = remoteRepositories;

    org.eclipse.aether.RepositorySystem repoSystem = lookup(org.eclipse.aether.RepositorySystem.class);

    ArtifactRequest request = new ArtifactRequest();
    request.setArtifact(RepositoryUtils.toArtifact(artifact));
    request.setRepositories(RepositoryUtils.toRepos(_remoteRepositories));

    ArtifactResult result;
    try {
        result = repoSystem.resolveArtifact(createRepositorySession(executionRequest), request);
    } catch (ArtifactResolutionException ex) {
        result = ex.getResults().get(0);
    }

    setLastUpdated(executionRequest.getLocalRepository(), _remoteRepositories, artifact);

    if (result.isResolved()) {
        artifact.selectVersion(result.getArtifact().getVersion());
        artifact.setFile(result.getArtifact().getFile());
        artifact.setResolved(true);
    } else {
        throw new MavenException(result.getExceptions().toArray(new Exception[result.getExceptions().size()]));
    }

    return artifact;
}