List of usage examples for org.apache.maven RepositoryUtils toRepos
public static List<RemoteRepository> toRepos(List<ArtifactRepository> repos)
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; }