public Iterator<MavenPluginVersion> iterateAllVersions() { Artifact artifact = new DefaultArtifact(groupId, artifactId, null, "[0,)"); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(artifact); rangeRequest.setRepositories(mavenPluginRepository.getRepositories()); try { VersionRangeResult rangeResult = mavenPluginRepository.getSystem().resolveVersionRange(mavenPluginRepository.getSession(), rangeRequest); List<Version> versions = rangeResult.getVersions(); if (!versions.isEmpty()) { Iterator<Version> versionIterator = Lists.reverse(versions).iterator(); return Iterators.transform(versionIterator, new Function<Version, MavenPluginVersion>() { @Override public MavenPluginVersion apply(Version version) { try { MavenPluginVersion mavenPluginVersion = createMavenVersion(version); return mavenPluginVersion; } catch (ArtifactDescriptorException | ArtifactResolutionException | IOException | XmlPullParserException e) { LOGGER.error("", e); } return null; } }); } } catch (VersionRangeResolutionException e) { LOGGER.error("", e); } return Collections.emptyIterator(); }
final Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), "", "pom", dependency.getVersion() ); final VersionRangeRequest versionRangeRequest = new VersionRangeRequest( artifact, repositories, context ); versionRangeRequest.setTrace( trace ); if ( versionRangeResult.getHighestVersion() == null ) if ( versionRangeResult.getVersionConstraint() != null && versionRangeResult.getVersionConstraint().getRange() != null && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null ) dependency.setVersion( versionRangeResult.getHighestVersion().toString() ); throw new UnresolvableModelException( e.getMessage(), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), e );
public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request ) throws VersionRangeResolutionException VersionRangeResult result = new VersionRangeResult( request ); try versionConstraint = versionScheme.parseVersionConstraint( request.getArtifact().getVersion() ); result.addException( e ); throw new VersionRangeResolutionException( result ); result.setVersionConstraint( versionConstraint ); result.addVersion( versionConstraint.getVersion() ); result.setRepository( ver, v.getValue() ); result.addException( e ); result.setVersions( versions );
private static String determineNewestVersion(RepositorySystem repoSystem, RepositorySystemSession repoSession, List<RemoteRepository>[] repos) throws MojoExecutionException { String version; VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(new DefaultArtifact(SDK_GROUP_ID + ":" + SDK_ARTIFACT_ID + ":[0,)")); for (List<RemoteRepository> repoList : repos) { for (RemoteRepository repo : repoList) { rangeRequest.addRepository(repo); } } VersionRangeResult rangeResult; try { rangeResult = repoSystem.resolveVersionRange(repoSession, rangeRequest); } catch (VersionRangeResolutionException e) { throw new MojoExecutionException("Could not resolve latest version of the App Engine Java SDK", e); } List<Version> versions = rangeResult.getVersions(); Collections.sort(versions); Version newest = Iterables.getLast(versions); version = newest.toString(); return version; }
VersionRangeRequest request = new VersionRangeRequest(); request.setArtifact(new DefaultArtifact("groupId", "artifactId", "jar", "(0,]")); VersionRangeResult result = repositorySystem.resolveVersionRange(session, request); Version highestVersion = result.getHighestVersion();
public static void main( String[] args ) throws Exception { System.out.println( "------------------------------------------------------------" ); System.out.println( FindNewestVersion.class.getSimpleName() ); RepositorySystem system = Booter.newRepositorySystem(); RepositorySystemSession session = Booter.newRepositorySystemSession( system ); Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:[0,)" ); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact( artifact ); rangeRequest.setRepositories( Booter.newRepositories( system, session ) ); VersionRangeResult rangeResult = system.resolveVersionRange( session, rangeRequest ); Version newestVersion = rangeResult.getHighestVersion(); System.out.println( "Newest version " + newestVersion + " from repository " + rangeResult.getRepository( newestVersion ) ); }
Artifact artifact = new DefaultArtifact(gav); artifact = artifact.setVersion(upToVersion == null ? "[,)" : "[," + upToVersion + (upToInclusive ? "]" : ")")); VersionRangeRequest rangeRequest = new VersionRangeRequest(artifact, repositories, null); List<Version> versions = new ArrayList<>(result.getVersions()); Collections.reverse(versions); if (versionMatcher.matcher(v.toString()).matches()) { return resolveArtifact(artifact.setVersion(v.toString()), session);
RepositoryHolder repositoryHolder) throws IOException, VersionRangeResolutionException, VersionResolutionException { Artifact artifact = new DefaultArtifact(groupId, artifactId, classifier, extension, version); RepositorySystemSession session = booter.newRepositorySystemSession(system); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(artifact); List<RemoteRepository> newRepositories = booter.newRepositories(system, session); if (repositories == null || repositories.size() == 0) { rangeRequest.setRepositories(newRepositories); Version lowestVersion = rangeResult.getLowestVersion(); Version newestVersion = rangeResult.getHighestVersion(); throw new VersionRangeResolutionException(rangeResult); repositoryHolder.repositoryId = rangeResult.getRepository(newestVersion).getId(); for (RemoteRepository remoteRepository : newRepositories) { if (remoteRepository.getId().equals(repositoryHolder.repositoryId)) { if (newestVersion.toString().endsWith("SNAPSHOT")) { VersionRequest versionRequest = new VersionRequest(); ret = new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getClassifier(), artifact.getExtension(), newestVersion.toString()); versionRequest.setArtifact(ret); versionRequest.addRepository(repositoryHolder.remoteRepository);
@Override public String getHighestVersion(ArtifactCoords coords, String range) throws ArtifactException { Artifact artifact = new DefaultArtifact(coords.getGroupId(), coords.getArtifactId(), coords.getExtension(), range); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(artifact); VersionRangeResult rangeResult; try { rangeResult = repoSystem.resolveVersionRange(session, rangeRequest); } catch (VersionRangeResolutionException ex) { throw new ArtifactException(ex.getLocalizedMessage(), ex); } String version = null; if (rangeResult != null && rangeResult.getHighestVersion() != null) { version = rangeResult.getHighestVersion().toString(); } return version; }
private String resolveHighestArtifactVersion(String stubsGroup, String stubsModule, String classifier, String version) { Artifact artifact = new DefaultArtifact(stubsGroup, stubsModule, classifier, ARTIFACT_EXTENSION, version); VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, this.remoteRepos, null); VersionRangeResult rangeResult; try { rangeResult = this.repositorySystem.resolveVersionRange(this.session, versionRangeRequest); if (log.isDebugEnabled()) { log.debug("Resolved version range is [" + rangeResult + "]"); } } catch (VersionRangeResolutionException e) { throw new IllegalStateException("Cannot resolve version range", e); } if (rangeResult.getHighestVersion() == null) { throw new IllegalArgumentException("For groupId [" + stubsGroup + "] artifactId [" + stubsModule + "] " + "and classifier [" + classifier + "] the version was not resolved! The following exceptions took place " + rangeResult.getExceptions()); } return rangeResult.getHighestVersion() == null ? null : rangeResult.getHighestVersion().toString(); }
public static List<Version> getVersions(final String groupId, final String artifactId, final String versionExpr, final List<RemoteRepository> repos, final RepositorySystem repositorySystem, final RepositorySystemSession session) throws VersionRangeResolutionException { Artifact artifact = new DefaultArtifact(groupId, artifactId, null, null, versionExpr); VersionRangeRequest request = new VersionRangeRequest(artifact, repos, null); VersionRangeResult versionResult = repositorySystem.resolveVersionRange(session, request); return versionResult.getVersions(); }
@Override public List<String> getAllVersions(MavenArtifact mavenArtifact) throws MavenUniverseException { Artifact artifact = new DefaultArtifact(mavenArtifact.getGroupId(), mavenArtifact.getArtifactId(), mavenArtifact.getExtension(), mavenArtifact.getVersionRange()); VersionRangeResult rangeResult = getVersionRange(artifact, mavenArtifact.getCoordsAsString()); List<String> versions = new ArrayList<>(); for (Version v : rangeResult.getVersions()) { versions.add(v.toString()); } return versions; }
String upper = upperInclusive ? "]" : ")"; String range = lower + lowerBound + ", " + upperBound + upper; Artifact artifact = new DefaultArtifact(groupId, artifactId, classifier, packaging, range); try { VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, MavenRepositoryUtilities.getEffectiveRepositories(session), null); VersionRangeResult result = repositorySystem.resolveVersionRange(session, versionRangeRequest); return result.getVersions().stream().map(Version::toString); } catch (SettingsBuildingException e) { throw new MavenException(e); } catch (VersionRangeResolutionException e) { e.printStackTrace();
protected Version highestVersion(Artifact artifact) throws MojoExecutionException { VersionRangeRequest request = new VersionRangeRequest(artifact, repositories, null); VersionRangeResult v = resolve(request); if (!includeSnapshots) { List<Version> filtered = new ArrayList<Version>(); for (Version aVersion : v.getVersions()) { if (!aVersion.toString().endsWith("SNAPSHOT")) { filtered.add(aVersion); } } v.setVersions(filtered); } if (v.getHighestVersion() == null) { throw (v.getExceptions().isEmpty()) ? new MojoExecutionException("Failed to resolve " + artifact.toString()) : new MojoExecutionException("Failed to resolve " + artifact.toString(), v.getExceptions().get(0)); } return v.getHighestVersion(); }
public List<String> requestArtifactVersions(Artifact artifact) { List<String> versions = Lists.newArrayList(); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(artifact); rangeRequest.setRepositories(repositories); try { VersionRangeResult versionResult = system.resolveVersionRange(session, rangeRequest); if (!versionResult.getVersions().isEmpty()) { String highest = versionResult.getHighestVersion().toString(); versions.add(highest); for (Version version : versionResult.getVersions()) { if (!highest.equals(version.toString())) versions.add(version.toString()); } } } catch (VersionRangeResolutionException e) { LOG.error("Can't create version request: {}", e); } return versions; }
public static void main(String[] args) { RemoteRepository central = new RemoteRepository.Builder("central", "default", "http://repo1.maven.org/maven2/").build(); RepositorySystem repoSystem = newRepositorySystem(); RepositorySystemSession session = newSession(repoSystem); Artifact artifact = new DefaultArtifact("groupId:artifactId:(0,]"); VersionRangeRequest request = new VersionRangeRequest(artifact, Arrays.asList(central), null); try { VersionRangeResult versionResult = repoSystem.resolveVersionRange(session, request); System.out.println(versionResult.getHighestVersion()); } catch (VersionRangeResolutionException e) { e.printStackTrace(); } } private static RepositorySystem newRepositorySystem() { DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class); locator.addService(TransporterFactory.class, FileTransporterFactory.class); locator.addService(TransporterFactory.class, HttpTransporterFactory.class); return locator.getService(RepositorySystem.class); } private static RepositorySystemSession newSession(RepositorySystem system) { DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); LocalRepository localRepo = new LocalRepository("target/local-repo"); session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); return session; }
new VersionRangeRequest( root.getArtifact(), request.getRepositories(), request.getRequestContext() ); rangeRequest.setTrace( trace ); rangeResult = versionRangeResolver.resolveVersionRange( session, rangeRequest ); versions = filterVersions( root, rangeResult, verFilter, new DefaultVersionFilterContext( session ) ); throw new DependencyCollectionException( result, e.getMessage() ); root = root.setArtifact( root.getArtifact().setVersion( version.toString() ) ); node.setRequestContext( request.getRequestContext() ); node.setRelocations( descriptorResult.getRelocations() ); node.setVersionConstraint( rangeResult.getVersionConstraint() ); node.setVersion( version ); node.setAliases( descriptorResult.getAliases() );
/** @return Latest version field from metadata.xml of the repository that was last modified. Never null */ public String latestVersion(Artifact artifact) throws VersionRangeResolutionException, VersionResolutionException { Artifact range; VersionRangeRequest request; VersionRangeResult result; List<Version> versions; String version; // CAUTION: do not use version "LATEST" because the respective field in metadata.xml is not set reliably: range = artifact.setVersion("[,]"); request = new VersionRangeRequest(range, remote, null); result = repositorySystem.resolveVersionRange(repositorySession, request); versions = result.getVersions(); if (versions.size() == 0) { throw new VersionRangeResolutionException(result, "no version found"); } version = versions.get(versions.size() - 1).toString(); if (version.endsWith("-SNAPSHOT")) { version = latestSnapshot(artifact.setVersion(version)); } return version; }
private Version resolveLatestVersion(Artifact artifact) throws VersionRangeResolutionException { VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact(artifact); rangeRequest.setRepositories(repositories); VersionRangeResult rangeResult = system.resolveVersionRange(session, rangeRequest); return rangeResult.getHighestVersion(); }
new VersionRangeRequest( artifact, remoteRepos, null ) ); if( versionResult != null ) { Version v = versionResult.getHighestVersion(); if( v != null ) { artifact = artifact.setVersion( v.toString() ); throw new VersionRangeResolutionException( versionResult, "No highest version found for " + artifact );