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.apache.maven.plugins.gpg;
20  
21  import java.io.File;
22  import java.util.ArrayList;
23  import java.util.Collection;
24  import java.util.List;
25  
26  import org.apache.maven.artifact.Artifact;
27  import org.apache.maven.artifact.handler.ArtifactHandler;
28  import org.apache.maven.artifact.metadata.ArtifactMetadata;
29  import org.apache.maven.artifact.repository.ArtifactRepository;
30  import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
31  import org.apache.maven.artifact.versioning.ArtifactVersion;
32  import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
33  import org.apache.maven.artifact.versioning.VersionRange;
34  
35  /**
36   * A wrapper class for attached artifacts which have a GPG signature. Needed as attached artifacts in general do not
37   * have metadata.
38   */
39  public class AttachedSignedArtifact implements Artifact {
40      private final Artifact delegate;
41  
42      private final AscArtifactMetadata signature;
43  
44      public AttachedSignedArtifact(Artifact delegate, AscArtifactMetadata signature) {
45          this.delegate = delegate;
46          this.signature = signature;
47      }
48  
49      @Override
50      public void setArtifactId(String artifactId) {
51          delegate.setArtifactId(artifactId);
52      }
53  
54      @Override
55      public List<ArtifactVersion> getAvailableVersions() {
56          return delegate.getAvailableVersions();
57      }
58  
59      @Override
60      public void setAvailableVersions(List<ArtifactVersion> availableVersions) {
61          delegate.setAvailableVersions(availableVersions);
62      }
63  
64      @Override
65      public String getBaseVersion() {
66          return delegate.getBaseVersion();
67      }
68  
69      @Override
70      public void setBaseVersion(String baseVersion) {
71          delegate.setBaseVersion(baseVersion);
72      }
73  
74      @Override
75      public String getDownloadUrl() {
76          return delegate.getDownloadUrl();
77      }
78  
79      @Override
80      public void setDownloadUrl(String downloadUrl) {
81          delegate.setDownloadUrl(downloadUrl);
82      }
83  
84      @Override
85      public void setGroupId(String groupId) {
86          delegate.setGroupId(groupId);
87      }
88  
89      @Override
90      public ArtifactRepository getRepository() {
91          return delegate.getRepository();
92      }
93  
94      @Override
95      public void setRepository(ArtifactRepository repository) {
96          delegate.setRepository(repository);
97      }
98  
99      @Override
100     public String getScope() {
101         return delegate.getScope();
102     }
103 
104     @Override
105     public void setScope(String scope) {
106         delegate.setScope(scope);
107     }
108 
109     @Override
110     public String getVersion() {
111         return delegate.getVersion();
112     }
113 
114     @Override
115     public void setVersion(String version) {
116         delegate.setVersion(version);
117     }
118 
119     @Override
120     public VersionRange getVersionRange() {
121         return delegate.getVersionRange();
122     }
123 
124     @Override
125     public void setVersionRange(VersionRange range) {
126         delegate.setVersionRange(range);
127     }
128 
129     @Override
130     public boolean isRelease() {
131         return delegate.isRelease();
132     }
133 
134     @Override
135     public void setRelease(boolean release) {
136         delegate.setRelease(release);
137     }
138 
139     @Override
140     public boolean isSnapshot() {
141         return delegate.isSnapshot();
142     }
143 
144     @Override
145     public void addMetadata(ArtifactMetadata metadata) {
146         delegate.addMetadata(metadata);
147     }
148 
149     @Override
150     public String getClassifier() {
151         return delegate.getClassifier();
152     }
153 
154     @Override
155     public boolean hasClassifier() {
156         return delegate.hasClassifier();
157     }
158 
159     @Override
160     public String getGroupId() {
161         return delegate.getGroupId();
162     }
163 
164     @Override
165     public String getArtifactId() {
166         return delegate.getArtifactId();
167     }
168 
169     @Override
170     public String getType() {
171         return delegate.getType();
172     }
173 
174     @Override
175     public void setFile(File file) {
176         delegate.setFile(file);
177     }
178 
179     @Override
180     public File getFile() {
181         return delegate.getFile();
182     }
183 
184     @Override
185     public String getId() {
186         return delegate.getId();
187     }
188 
189     @Override
190     public String getDependencyConflictId() {
191         return delegate.getDependencyConflictId();
192     }
193 
194     @Override
195     public String toString() {
196         return delegate.toString();
197     }
198 
199     @Override
200     public int hashCode() {
201         return delegate.hashCode();
202     }
203 
204     @Override
205     public boolean equals(Object o) {
206         return delegate.equals(o);
207     }
208 
209     @Override
210     public void updateVersion(String version, ArtifactRepository localRepository) {
211         delegate.updateVersion(version, localRepository);
212     }
213 
214     @Override
215     public ArtifactFilter getDependencyFilter() {
216         return delegate.getDependencyFilter();
217     }
218 
219     @Override
220     public void setDependencyFilter(ArtifactFilter artifactFilter) {
221         delegate.setDependencyFilter(artifactFilter);
222     }
223 
224     @Override
225     public ArtifactHandler getArtifactHandler() {
226         return delegate.getArtifactHandler();
227     }
228 
229     @Override
230     public List<String> getDependencyTrail() {
231         return delegate.getDependencyTrail();
232     }
233 
234     @Override
235     public void setDependencyTrail(List<String> dependencyTrail) {
236         delegate.setDependencyTrail(dependencyTrail);
237     }
238 
239     @Override
240     public void selectVersion(String version) {
241         delegate.selectVersion(version);
242     }
243 
244     @Override
245     public void setResolved(boolean resolved) {
246         delegate.setResolved(resolved);
247     }
248 
249     @Override
250     public boolean isResolved() {
251         return delegate.isResolved();
252     }
253 
254     @Override
255     public void setResolvedVersion(String version) {
256         delegate.setResolvedVersion(version);
257     }
258 
259     @Override
260     public void setArtifactHandler(ArtifactHandler artifactHandler) {
261         delegate.setArtifactHandler(artifactHandler);
262     }
263 
264     @Override
265     public boolean isOptional() {
266         return delegate.isOptional();
267     }
268 
269     @Override
270     public ArtifactVersion getSelectedVersion() throws OverConstrainedVersionException {
271         return delegate.getSelectedVersion();
272     }
273 
274     @Override
275     public boolean isSelectedVersionKnown() throws OverConstrainedVersionException {
276         return delegate.isSelectedVersionKnown();
277     }
278 
279     @Override
280     public void setOptional(boolean optional) {
281         delegate.setOptional(optional);
282     }
283 
284     @Override
285     public Collection<ArtifactMetadata> getMetadataList() {
286         List<ArtifactMetadata> result = new ArrayList<>(delegate.getMetadataList());
287 
288         for (ArtifactMetadata metadata : result) {
289             if (signature.getKey().equals(metadata.getKey())) {
290                 // already signed
291                 return result;
292             }
293         }
294 
295         result.add(signature);
296 
297         return result;
298     }
299 
300     @Override
301     public int compareTo(Artifact o) {
302         return delegate.compareTo(o);
303     }
304 }