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.exposers;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.util.jar.Attributes;
25 import java.util.jar.Manifest;
26
27 import org.apache.maven.shared.jar.JarAnalyzer;
28 import org.apache.maven.shared.jar.identification.JarIdentification;
29 import org.apache.maven.shared.jar.identification.JarIdentificationExposer;
30
31
32
33
34 @Singleton
35 @Named("manifest")
36 public class ManifestExposer implements JarIdentificationExposer {
37 @Override
38 public void expose(JarIdentification identification, JarAnalyzer jarAnalyzer) {
39 Manifest manifest = jarAnalyzer.getJarData().getManifest();
40 if (manifest != null) {
41 addManifestAttributeValues(manifest.getMainAttributes(), identification);
42
43 for (Attributes attribs : manifest.getEntries().values()) {
44 addManifestAttributeValues(attribs, identification);
45 }
46 }
47 }
48
49 private void addManifestAttributeValues(Attributes attribs, JarIdentification identification) {
50 identification.addName(attribs.getValue(Attributes.Name.IMPLEMENTATION_TITLE));
51 identification.addVersion(attribs.getValue(Attributes.Name.IMPLEMENTATION_VERSION));
52 identification.addVendor(attribs.getValue(Attributes.Name.IMPLEMENTATION_VENDOR));
53
54 identification.addName(attribs.getValue(Attributes.Name.SPECIFICATION_TITLE));
55 identification.addVersion(attribs.getValue(Attributes.Name.SPECIFICATION_VERSION));
56 identification.addVendor(attribs.getValue(Attributes.Name.SPECIFICATION_VENDOR));
57
58 identification.addGroupId(attribs.getValue(Attributes.Name.EXTENSION_NAME));
59 }
60 }