Skip to content

Commit 2e61c59

Browse files
committed
Correctly mark checksums as optional
This makes the checksums available for packages and installers optional. It updates the parser to correctly return an optional string, rather than defaulting to an always-present empty string. Fix: #5
1 parent 7295ba6 commit 2e61c59

File tree

5 files changed

+7078
-5
lines changed

5 files changed

+7078
-5
lines changed

net.adoptopenjdk.v3.api/src/main/java/net/adoptopenjdk/v3/api/AOV3InstallerType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public interface AOV3InstallerType
3333
* @return The checksum of the data
3434
*/
3535

36-
String checksum();
36+
Optional<String> checksum();
3737

3838
/**
3939
* @return A link to the checksum of the data

net.adoptopenjdk.v3.tests/src/test/java/net/adoptopenjdk/v3/tests/AOV3ResponseParsersTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import net.adoptopenjdk.v3.api.AOV3Error;
1818
import net.adoptopenjdk.v3.api.AOV3ExceptionParseFailed;
19+
import net.adoptopenjdk.v3.api.AOV3Installer;
1920
import net.adoptopenjdk.v3.vanilla.AOV3ResponseParsers;
2021
import net.adoptopenjdk.v3.vanilla.AOV3ResponseParsersType;
2122
import org.apache.commons.io.input.BrokenInputStream;
@@ -274,6 +275,37 @@ public void testAssetsForLatest()
274275
Assertions.assertEquals(0, this.errors.size());
275276
}
276277

278+
@Test
279+
public void testAssetsForReleases8()
280+
throws Exception
281+
{
282+
final var stream = resource("releases8.json");
283+
final var parser =
284+
this.parsers.createParser(this::logError, URI.create("urn:test"), stream);
285+
final var releases = parser.parseAssetsForRelease();
286+
287+
for (final var release : releases) {
288+
LOG.debug("release {}", release.id());
289+
for (final var binary : release.binaries()) {
290+
LOG.debug("release {} binary {}", release.id(), binary.package_().name());
291+
final var packChecksumOpt = binary.package_().checksum();
292+
if (packChecksumOpt.isPresent()) {
293+
final var checksum = packChecksumOpt.get();
294+
Assertions.assertFalse(checksum.isBlank());
295+
}
296+
297+
final var instChecksumOpt =
298+
binary.installer().flatMap(AOV3Installer::checksum);
299+
if (instChecksumOpt.isPresent()) {
300+
final var checksum = instChecksumOpt.get();
301+
Assertions.assertFalse(checksum.isBlank());
302+
}
303+
}
304+
}
305+
306+
Assertions.assertEquals(0, this.errors.size());
307+
}
308+
277309
private void testAssetsForReleaseFuzzOnce(
278310
final Integer index)
279311
throws Exception

0 commit comments

Comments
 (0)