1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  package org.eclipse.aether.internal.impl;
20  
21  import org.eclipse.aether.spi.connector.checksum.ChecksumPolicy;
22  import org.eclipse.aether.transfer.ChecksumFailureException;
23  import org.eclipse.aether.transfer.TransferResource;
24  import org.slf4j.Logger;
25  import org.slf4j.LoggerFactory;
26  
27  import static java.util.Objects.requireNonNull;
28  
29  abstract class AbstractChecksumPolicy implements ChecksumPolicy {
30  
31      protected final Logger logger = LoggerFactory.getLogger(getClass());
32  
33      protected final TransferResource resource;
34  
35      protected AbstractChecksumPolicy(TransferResource resource) {
36          this.resource = resource;
37      }
38  
39      @Override
40      public boolean onChecksumMatch(String algorithm, ChecksumKind kind) {
41          requireNonNull(algorithm, "algorithm cannot be null");
42          return true;
43      }
44  
45      @Override
46      public void onChecksumMismatch(String algorithm, ChecksumKind kind, ChecksumFailureException exception)
47              throws ChecksumFailureException {
48          requireNonNull(algorithm, "algorithm cannot be null");
49          requireNonNull(exception, "exception cannot be null");
50          throw exception;
51      }
52  
53      @Override
54      public void onChecksumError(String algorithm, ChecksumKind kind, ChecksumFailureException exception)
55              throws ChecksumFailureException {
56          requireNonNull(algorithm, "algorithm cannot be null");
57          requireNonNull(exception, "exception cannot be null");
58          logger.debug("Could not validate {} checksum for {}", algorithm, resource.getResourceName(), exception);
59      }
60  
61      @Override
62      public void onNoMoreChecksums() throws ChecksumFailureException {
63          throw new ChecksumFailureException("Checksum validation failed, no checksums available");
64      }
65  
66      @Override
67      public void onTransferRetry() {}
68  }