1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.release.phase;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Map;
26
27 import org.apache.maven.model.Model;
28 import org.apache.maven.model.Scm;
29 import org.apache.maven.project.MavenProject;
30 import org.apache.maven.scm.repository.ScmRepository;
31 import org.apache.maven.shared.release.ReleaseResult;
32 import org.apache.maven.shared.release.config.ReleaseDescriptor;
33 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
34 import org.apache.maven.shared.release.scm.ScmTranslator;
35 import org.apache.maven.shared.release.transform.ModelETLFactory;
36
37
38
39
40
41
42 @Singleton
43 @Named("rewrite-poms-for-development")
44 public class RewritePomsForDevelopmentPhase extends AbstractRewritePomsPhase {
45 @Inject
46 public RewritePomsForDevelopmentPhase(
47 ScmRepositoryConfigurator scmRepositoryConfigurator,
48 Map<String, ModelETLFactory> modelETLFactories,
49 Map<String, ScmTranslator> scmTranslators) {
50 super(scmRepositoryConfigurator, modelETLFactories, scmTranslators);
51 }
52
53 @Override
54 protected final String getPomSuffix() {
55 return "next";
56 }
57
58 @Override
59 protected void transformScm(
60 MavenProject project,
61 Model modelTarget,
62 ReleaseDescriptor releaseDescriptor,
63 String projectId,
64 ScmRepository scmRepository,
65 ReleaseResult result) {
66
67 if (project.getScm() != null) {
68 Scm scmRoot = modelTarget.getScm();
69 if (scmRoot != null) {
70 ScmTranslator translator = getScmTranslators().get(scmRepository.getProvider());
71 if (translator != null) {
72 Scm scm = releaseDescriptor.getOriginalScmInfo(projectId);
73
74 if (scm != null) {
75 scmRoot.setConnection(scm.getConnection());
76 scmRoot.setDeveloperConnection(scm.getDeveloperConnection());
77 scmRoot.setUrl(scm.getUrl());
78 String tag = translator.resolveTag(scm.getTag());
79
80 if (tag == null) {
81 tag = scm.getTag();
82
83
84 if ("HEAD".equals(tag)) {
85 tag = null;
86 }
87 }
88 scmRoot.setTag(tag);
89 } else {
90
91 modelTarget.setScm(null);
92 }
93 } else {
94 String message = "No SCM translator found - skipping rewrite";
95 result.appendDebug(message);
96 getLogger().debug(message);
97 }
98 }
99 }
100 }
101
102 @Override
103 protected String getOriginalVersion(ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate) {
104 return simulate
105 ? releaseDescriptor.getProjectOriginalVersion(projectKey)
106 : releaseDescriptor.getProjectReleaseVersion(projectKey);
107 }
108
109 @Override
110 protected String getNextVersion(ReleaseDescriptor releaseDescriptor, String key) {
111 return releaseDescriptor.getProjectDevelopmentVersion(key);
112 }
113
114 @Override
115 protected String getResolvedSnapshotVersion(String artifactVersionlessKey, ReleaseDescriptor releaseDescriptor) {
116 return releaseDescriptor.getDependencyDevelopmentVersion(artifactVersionlessKey);
117 }
118 }