1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.jar.identification.hash;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.nio.file.Files;
27
28 import org.apache.commons.codec.digest.DigestUtils;
29 import org.apache.maven.shared.jar.JarAnalyzer;
30 import org.apache.maven.shared.jar.JarData;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33
34
35
36
37 @Singleton
38 @Named("file")
39 public class JarFileHashAnalyzer implements JarHashAnalyzer {
40 private final Logger logger = LoggerFactory.getLogger(getClass());
41
42 @Override
43 public String computeHash(JarAnalyzer jarAnalyzer) {
44 JarData jarData = jarAnalyzer.getJarData();
45
46 String result = jarData.getFileHash();
47 if (result == null) {
48 try {
49 try (InputStream inputStream =
50 Files.newInputStream(jarData.getFile().toPath())) {
51 jarData.setFileHash(DigestUtils.sha1Hex(inputStream));
52 }
53 } catch (IOException e) {
54 logger.warn("Unable to calculate the hashcode.", e);
55 }
56 }
57 return result;
58 }
59 }