View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
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  }