in src/main/java/org/apache/cassandra/distributed/shared/Versions.java [132:163]
public static Versions find()
{
final String dtestJarDirectory = System.getProperty(PROPERTY_PREFIX + "test.dtest_jar_path", "build");
final File sourceDirectory = new File(dtestJarDirectory);
logger.info("Looking for dtest jars in " + sourceDirectory.getAbsolutePath());
final Pattern pattern = Pattern.compile("dtest-(?<fullversion>(\\d+)\\.(\\d+)((\\.|-alpha|-beta|-rc)([0-9]+))?(\\.\\d+)?)([~\\-]\\w[.\\w]*(?:\\-\\w[.\\w]*)*)?(\\+[.\\w]+)?\\.jar");
final Map<Semver, List<Version>> versions = new HashMap<>();
if (sourceDirectory.exists())
{
for (File file : sourceDirectory.listFiles())
{
Matcher m = pattern.matcher(file.getName());
if (!m.matches())
continue;
Semver version = new Semver(m.group(1), SemverType.LOOSE);
Semver series = first(version);
versions.putIfAbsent(series, new ArrayList<>());
versions.get(series).add(new Version(version, new URL[]{ toURL(file) }));
}
}
for (Map.Entry<Semver, List<Version>> e : versions.entrySet())
{
if (e.getValue().isEmpty())
continue;
Collections.sort(e.getValue(), Collections.reverseOrder());
System.out.println("Found " + e.getValue().stream().map(v -> v.version.getOriginalValue()).collect(Collectors.joining(", ")));
}
return new Versions(versions);
}