Skip to content

Commit 17d84c7

Browse files
authored
Truncate parsed version to X.Y.Z (#26)
Fixes #25
1 parent 3b80dbb commit 17d84c7

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/Download.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,19 @@ default Path computeArchivePath(String uri) {
293293
default Optional<String> parseVersion(String uri) {
294294
for (var versionPattern : parseVersionPatterns()) {
295295
var matcher = versionPattern.matcher(uri);
296-
if (matcher.matches()) return Optional.of(matcher.group(1));
296+
if (matcher.matches()) {
297+
// "$FEATURE.$INTERIM.$UPDATE.$PATCH"
298+
var version = Runtime.Version.parse(matcher.group(1));
299+
var joiner = new StringJoiner(".");
300+
joiner.add(String.valueOf(version.feature()));
301+
if (version.interim() != 0) {
302+
joiner.add(String.valueOf(version.interim()));
303+
if (version.update() != 0) {
304+
joiner.add(String.valueOf(version.update()));
305+
}
306+
}
307+
return Optional.of(joiner.toString());
308+
}
297309
}
298310
return Optional.empty();
299311
}

test/Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ static void checkAllOracleJDKs() {
3434

3535
System.out.println();
3636
System.out.println("// oracle.com - archive");
37-
Stream.of("18").forEach(version -> checkOracleJDK("18", version));
37+
Stream.of("18", "18.0.1", "18.0.1.1").forEach(version -> checkOracleJDK("18", version));
3838
Stream.of("17", "17.0.1", "17.0.2").forEach(version -> checkOracleJDK("17", version));
3939
}
4040

0 commit comments

Comments
 (0)