/** * Returns the latest available distribution * * @return */ private Dependency getLatestAvailableDistribution() { final String runtimeVersion = environment.getRuntimeVersion(); DependencyQuery query = DependencyQueryBuilder.create(DependencyBuilder .create("org.jboss.forge:forge-distribution:::zip")).setFilter( new CompositeDependencyFilter( new NonSnapshotDependencyFilter(), new DependencyFilter() { @Override public boolean accept(Dependency dependency) { // We are only interested in 1.x Final versions higher than the current version // TODO: Consider the version string for 2.x and higher releases when porting. String version = dependency.getVersion(); return version.compareTo(runtimeVersion) > 0 && version.startsWith("1.") && version.endsWith(".Final"); } } )).setRepositories(new DependencyRepositoryImpl(DependencyFacet.KnownRepository.JBOSS_NEXUS)); List<Dependency> versions = resolver.resolveVersions(query); return versions.isEmpty() ? null : versions.get(versions.size() - 1); }