public interface ChecksumPolicy
void validateChecksums() throws ChecksumFailureException { for (checksum : checksums) { switch (checksum.state) { case MATCH: if (policy.onChecksumMatch(...)) { return; } break; case MISMATCH: policy.onChecksumMismatch(...); break; case ERROR: policy.onChecksumError(...); break; } } policy.onNoMoreChecksums(); } void downloadFile() throws Exception { ... policy = newChecksumPolicy(); try { validateChecksums(); } catch (ChecksumFailureException e) { if (!policy.onTransferChecksumFailure(...)) { throw e; } } }
Checksum policies might be stateful and are generally not thread-safe.
Modifier and Type | Interface and Description |
---|---|
static class |
ChecksumPolicy.ChecksumKind
Enum denoting origin of checksum.
|
Modifier and Type | Method and Description |
---|---|
void |
onChecksumError(String algorithm,
ChecksumPolicy.ChecksumKind kind,
org.eclipse.aether.transfer.ChecksumFailureException exception)
Signals an error while computing the local checksum value or retrieving the checksum value from the remote
repository.
|
boolean |
onChecksumMatch(String algorithm,
ChecksumPolicy.ChecksumKind kind)
Signals a match between the locally computed checksum value and the checksum value declared by the remote
repository.
|
void |
onChecksumMismatch(String algorithm,
ChecksumPolicy.ChecksumKind kind,
org.eclipse.aether.transfer.ChecksumFailureException exception)
Signals a mismatch between the locally computed checksum value and the checksum value declared by the remote
repository.
|
void |
onNoMoreChecksums()
Signals that all available checksums have been processed.
|
boolean |
onTransferChecksumFailure(org.eclipse.aether.transfer.ChecksumFailureException exception)
Signals that (even after a potential retry) checksum validation has failed.
|
void |
onTransferRetry()
Signals that the download is being retried after a previously thrown
ChecksumFailureException that is
retry-worthy . |
boolean onChecksumMatch(String algorithm, ChecksumPolicy.ChecksumKind kind)
algorithm
- The name of the checksum algorithm being used, must not be null
.kind
- A field providing further details about the checksum.true
to accept the download as valid and stop further validation, false
to continue
validation with the next checksum.void onChecksumMismatch(String algorithm, ChecksumPolicy.ChecksumKind kind, org.eclipse.aether.transfer.ChecksumFailureException exception) throws org.eclipse.aether.transfer.ChecksumFailureException
algorithm
- The name of the checksum algorithm being used, must not be null
.kind
- A field providing further details about the checksum.exception
- The exception describing the checksum mismatch, must not be null
.org.eclipse.aether.transfer.ChecksumFailureException
- If the checksum validation is to be failed. If the method returns normally,
validation continues with the next checksum.void onChecksumError(String algorithm, ChecksumPolicy.ChecksumKind kind, org.eclipse.aether.transfer.ChecksumFailureException exception) throws org.eclipse.aether.transfer.ChecksumFailureException
algorithm
- The name of the checksum algorithm being used, must not be null
.kind
- A field providing further details about the checksum.exception
- The exception describing the checksum error, must not be null
.org.eclipse.aether.transfer.ChecksumFailureException
- If the checksum validation is to be failed. If the method returns normally,
validation continues with the next checksum.void onNoMoreChecksums() throws org.eclipse.aether.transfer.ChecksumFailureException
org.eclipse.aether.transfer.ChecksumFailureException
- If the checksum validation is to be failed. If the method returns normally, the
download is assumed to be valid.void onTransferRetry()
ChecksumFailureException
that is
retry-worthy
. Policies that maintain internal state will usually
have to reset some of this state at this point to prepare for a new round of validation.boolean onTransferChecksumFailure(org.eclipse.aether.transfer.ChecksumFailureException exception)
exception
- The exception that was thrown from a prior call to
onChecksumMismatch(String, ChecksumKind, ChecksumFailureException)
,
onChecksumError(String, ChecksumKind, ChecksumFailureException)
or onNoMoreChecksums()
.true
to accept the download nevertheless and let artifact resolution succeed, false
to
reject the transferred file as unusable.Copyright © 2010–2022 The Apache Software Foundation. All rights reserved.