1 package org.apache.maven.shared.release.phase;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.List;
23 import java.util.Map;
24
25 import org.apache.maven.model.Scm;
26 import org.apache.maven.project.MavenProject;
27 import org.apache.maven.scm.repository.ScmRepository;
28 import org.apache.maven.shared.release.ReleaseExecutionException;
29 import org.apache.maven.shared.release.ReleaseResult;
30 import org.apache.maven.shared.release.config.ReleaseDescriptor;
31 import org.apache.maven.shared.release.scm.ScmTranslator;
32 import org.jdom.Element;
33 import org.jdom.Namespace;
34
35
36
37
38
39
40 public class RewritePomsForDevelopmentPhase
41 extends AbstractRewritePomsPhase
42 {
43 @Override
44 protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
45 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
46 ReleaseResult result, String commonBasedir )
47 throws ReleaseExecutionException
48 {
49
50 if ( project.getScm() != null )
51 {
52 Element scmRoot = rootElement.getChild( "scm", namespace );
53 if ( scmRoot != null )
54 {
55 @SuppressWarnings( "unchecked" )
56 Map<String, Scm> originalScmInfo = releaseDescriptor.getOriginalScmInfo();
57
58 if ( !originalScmInfo.containsKey( projectId ) )
59 {
60 throw new ReleaseExecutionException(
61 "Unable to find original SCM info for '" + project.getName() + "'" );
62 }
63
64 ScmTranslator translator = getScmTranslators().get( scmRepository.getProvider() );
65 if ( translator != null )
66 {
67 Scm scm = originalScmInfo.get( projectId );
68
69 if ( scm != null )
70 {
71 rewriteElement( "connection", scm.getConnection(), scmRoot, namespace );
72 rewriteElement( "developerConnection", scm.getDeveloperConnection(), scmRoot, namespace );
73 rewriteElement( "url", scm.getUrl(), scmRoot, namespace );
74 rewriteElement( "tag", translator.resolveTag( scm.getTag() ), scmRoot, namespace );
75 }
76 else
77 {
78
79 rewriteElement( "scm", null, rootElement, namespace );
80 }
81 }
82 else
83 {
84 String message = "No SCM translator found - skipping rewrite";
85 result.appendDebug( message );
86 getLogger().debug( message );
87 }
88 }
89 }
90 }
91
92 @SuppressWarnings( "unchecked" )
93 @Override
94 protected Map<String, String> getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
95 List<MavenProject> reactorProjects, boolean simulate )
96 {
97 return simulate
98 ? releaseDescriptor.getOriginalVersions( reactorProjects )
99 : releaseDescriptor.getReleaseVersions();
100 }
101
102 @SuppressWarnings( "unchecked" )
103 @Override
104 protected Map<String, String> getNextVersionMap( ReleaseDescriptor releaseDescriptor )
105 {
106 return releaseDescriptor.getDevelopmentVersions();
107 }
108
109 @Override
110 protected String getResolvedSnapshotVersion( String artifactVersionlessKey,
111 Map<String, Map<String, String>> resolvedSnapshotsMap )
112 {
113 Map<String, String> versionsMap = resolvedSnapshotsMap.get( artifactVersionlessKey );
114
115 if ( versionsMap != null )
116 {
117 return versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY );
118 }
119 else
120 {
121 return null;
122 }
123 }
124 }