1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.legacy.resolver.transform;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import org.apache.maven.artifact.Artifact;
25 import org.apache.maven.artifact.metadata.ArtifactMetadata;
26 import org.apache.maven.artifact.repository.ArtifactRepository;
27 import org.apache.maven.artifact.repository.RepositoryRequest;
28 import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
29 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException;
30 import org.apache.maven.artifact.repository.metadata.Versioning;
31 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
32 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
33
34
35
36
37
38 @Named("release")
39 @Singleton
40 @Deprecated
41 public class ReleaseArtifactTransformation extends AbstractVersionTransformation {
42
43 public void transformForResolve(Artifact artifact, RepositoryRequest request)
44 throws ArtifactResolutionException, ArtifactNotFoundException {
45 if (Artifact.RELEASE_VERSION.equals(artifact.getVersion())) {
46 try {
47 String version = resolveVersion(artifact, request);
48
49 if (Artifact.RELEASE_VERSION.equals(version)) {
50 throw new ArtifactNotFoundException("Unable to determine the release version", artifact);
51 }
52
53 artifact.setBaseVersion(version);
54 artifact.updateVersion(version, request.getLocalRepository());
55 } catch (RepositoryMetadataResolutionException e) {
56 throw new ArtifactResolutionException(e.getMessage(), artifact, e);
57 }
58 }
59 }
60
61 public void transformForInstall(Artifact artifact, ArtifactRepository localRepository) {
62 ArtifactMetadata metadata = createMetadata(artifact);
63
64 artifact.addMetadata(metadata);
65 }
66
67 public void transformForDeployment(
68 Artifact artifact, ArtifactRepository remoteRepository, ArtifactRepository localRepository) {
69 ArtifactMetadata metadata = createMetadata(artifact);
70
71 artifact.addMetadata(metadata);
72 }
73
74 private ArtifactMetadata createMetadata(Artifact artifact) {
75 Versioning versioning = new Versioning();
76
77 versioning.updateTimestamp();
78 versioning.addVersion(artifact.getVersion());
79
80 if (artifact.isRelease()) {
81 versioning.setRelease(artifact.getVersion());
82 }
83
84 return new ArtifactRepositoryMetadata(artifact, versioning);
85 }
86
87 protected String constructVersion(Versioning versioning, String baseVersion) {
88 return versioning.getRelease();
89 }
90 }