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.io.File;
23 import java.text.MessageFormat;
24 import java.util.Collection;
25 import java.util.List;
26
27 import org.apache.maven.project.MavenProject;
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.env.ReleaseEnvironment;
32 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
33 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
34
35
36
37
38
39
40 public class ScmCommitDevelopmentPhase
41 extends AbstractScmCommitPhase
42 {
43
44
45
46
47 private String rollbackMessageFormat;
48
49 protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
50 List<MavenProject> reactorProjects, ReleaseResult result, boolean simulating )
51 throws ReleaseScmCommandException, ReleaseExecutionException, ReleaseScmRepositoryException
52 {
53
54 if (
55
56 releaseDescriptor.isSuppressCommitBeforeTagOrBranch()
57
58 && !releaseDescriptor.isUpdateWorkingCopyVersions() )
59 {
60 if ( simulating )
61 {
62 logInfo( result, "Full run would not commit changes, because updateWorkingCopyVersions is false." );
63 }
64 else
65 {
66 logInfo( result, "Modified POMs are not committed because updateWorkingCopyVersions is set to false." );
67 }
68 }
69
70 else
71 {
72 String message;
73 if ( !releaseDescriptor.isUpdateWorkingCopyVersions() )
74 {
75
76 message = createRollbackMessage( releaseDescriptor );
77 }
78 else
79 {
80
81 message = createMessage( releaseDescriptor );
82 }
83 if ( simulating )
84 {
85 Collection<File> pomFiles = createPomFiles( releaseDescriptor, reactorProjects );
86 logInfo( result,
87 "Full run would be commit " + pomFiles.size() + " files with message: '" + message + "'" );
88 }
89 else
90 {
91 performCheckins( releaseDescriptor, releaseEnvironment, reactorProjects, message );
92 }
93 }
94 }
95
96 private String createRollbackMessage( ReleaseDescriptor releaseDescriptor )
97 {
98 return MessageFormat.format( releaseDescriptor.getScmCommentPrefix() + rollbackMessageFormat,
99 new Object[]{releaseDescriptor.getScmReleaseLabel()} );
100 }
101
102 }