1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.dependency.utils.translators;
20
21 import java.util.LinkedHashSet;
22 import java.util.Set;
23
24 import org.apache.maven.artifact.Artifact;
25 import org.apache.maven.artifact.handler.ArtifactHandler;
26 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
27 import org.apache.maven.plugin.logging.Log;
28 import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
29 import org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate;
30
31
32
33
34 public class ClassifierTypeTranslator implements ArtifactTranslator {
35 private final ArtifactHandlerManager artifactHandlerManager;
36
37 private String classifier;
38
39 private String type;
40
41
42
43
44
45
46 public ClassifierTypeTranslator(
47 ArtifactHandlerManager artifactHanderManager, String theClassifier, String theType) {
48 this.artifactHandlerManager = artifactHanderManager;
49 this.classifier = theClassifier;
50 this.type = theType;
51 }
52
53
54
55
56
57
58 @Override
59 public Set<ArtifactCoordinate> translate(Set<Artifact> artifacts, Log log) {
60 Set<ArtifactCoordinate> results;
61
62 log.debug("Translating Artifacts using Classifier: " + this.classifier + " and Type: " + this.type);
63 results = new LinkedHashSet<>();
64 for (Artifact artifact : artifacts) {
65
66
67
68 final String useType;
69 if (this.type != null && !this.type.isEmpty()) {
70 useType = this.type;
71 } else {
72 useType = artifact.getType();
73 }
74
75 ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler(useType);
76
77 final String extension;
78 if (artifactHandler != null) {
79 extension = artifactHandler.getExtension();
80 } else {
81 extension = this.type;
82 }
83
84 String useClassifier;
85 if (this.classifier != null && !this.classifier.isEmpty()) {
86 useClassifier = this.classifier;
87 } else {
88 useClassifier = artifact.getClassifier();
89 }
90
91 DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
92 coordinate.setGroupId(artifact.getGroupId());
93 coordinate.setArtifactId(artifact.getArtifactId());
94 coordinate.setVersion(artifact.getVersion());
95 coordinate.setClassifier(useClassifier);
96 coordinate.setExtension(extension);
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 results.add(coordinate);
115 }
116
117 return results;
118 }
119
120
121
122
123 public String getType() {
124 return this.type;
125 }
126
127
128
129
130 public void setType(String theType) {
131 this.type = theType;
132 }
133
134
135
136
137 public String getClassifier() {
138 return this.classifier;
139 }
140
141
142
143
144 public void setClassifier(String theClassifier) {
145 this.classifier = theClassifier;
146 }
147 }