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 | 172 | public class RewritePomsForDevelopmentPhase |
41 | |
extends AbstractRewritePomsPhase |
42 | |
{ |
43 | |
|
44 | |
|
45 | |
|
46 | |
private Map<String, ScmTranslator> scmTranslators; |
47 | |
|
48 | |
protected void transformScm( MavenProject project, Element rootElement, Namespace namespace, |
49 | |
ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository, |
50 | |
ReleaseResult result, String commonBasedir ) |
51 | |
throws ReleaseExecutionException |
52 | |
{ |
53 | |
|
54 | 240 | if ( project.getScm() != null ) |
55 | |
{ |
56 | 86 | Element scmRoot = rootElement.getChild( "scm", namespace ); |
57 | 86 | if ( scmRoot != null ) |
58 | |
{ |
59 | |
@SuppressWarnings( "unchecked" ) |
60 | 50 | Map<String, Scm> originalScmInfo = releaseDescriptor.getOriginalScmInfo(); |
61 | |
|
62 | 50 | if ( !originalScmInfo.containsKey( projectId ) ) |
63 | |
{ |
64 | 2 | throw new ReleaseExecutionException( |
65 | |
"Unable to find original SCM info for '" + project.getName() + "'" ); |
66 | |
} |
67 | |
|
68 | 48 | ScmTranslator translator = scmTranslators.get( scmRepository.getProvider() ); |
69 | 48 | if ( translator != null ) |
70 | |
{ |
71 | 42 | Scm scm = originalScmInfo.get( projectId ); |
72 | |
|
73 | 42 | if ( scm != null ) |
74 | |
{ |
75 | 40 | rewriteElement( "connection", scm.getConnection(), scmRoot, namespace ); |
76 | 40 | rewriteElement( "developerConnection", scm.getDeveloperConnection(), scmRoot, namespace ); |
77 | 40 | rewriteElement( "url", scm.getUrl(), scmRoot, namespace ); |
78 | 40 | rewriteElement( "tag", translator.resolveTag( scm.getTag() ), scmRoot, namespace ); |
79 | |
} |
80 | |
else |
81 | |
{ |
82 | |
|
83 | 2 | rewriteElement( "scm", null, rootElement, namespace ); |
84 | |
} |
85 | 42 | } |
86 | |
else |
87 | |
{ |
88 | 6 | String message = "No SCM translator found - skipping rewrite"; |
89 | 6 | result.appendDebug( message ); |
90 | 6 | getLogger().debug( message ); |
91 | |
} |
92 | |
} |
93 | |
} |
94 | 238 | } |
95 | |
|
96 | |
@SuppressWarnings( "unchecked" ) |
97 | |
protected Map<String, String> getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, |
98 | |
List<MavenProject> reactorProjects, boolean simulate ) |
99 | |
{ |
100 | 260 | return simulate |
101 | |
? releaseDescriptor.getOriginalVersions( reactorProjects ) |
102 | |
: releaseDescriptor.getReleaseVersions(); |
103 | |
} |
104 | |
|
105 | |
@SuppressWarnings( "unchecked" ) |
106 | |
protected Map<String,String> getNextVersionMap( ReleaseDescriptor releaseDescriptor ) |
107 | |
{ |
108 | 260 | return releaseDescriptor.getDevelopmentVersions(); |
109 | |
} |
110 | |
|
111 | |
protected String getResolvedSnapshotVersion( String artifactVersionlessKey, |
112 | |
Map<String, Map<String, String>> resolvedSnapshotsMap ) |
113 | |
{ |
114 | 176 | Map<String, String> versionsMap = resolvedSnapshotsMap.get( artifactVersionlessKey ); |
115 | |
|
116 | 176 | if ( versionsMap != null ) |
117 | |
{ |
118 | 0 | return versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ); |
119 | |
} |
120 | |
else |
121 | |
{ |
122 | 176 | return null; |
123 | |
} |
124 | |
} |
125 | |
} |