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 org.apache.maven.project.MavenProject;
23 import org.apache.maven.shared.release.ReleaseExecutionException;
24 import org.apache.maven.shared.release.ReleaseFailureException;
25 import org.apache.maven.shared.release.ReleaseResult;
26 import org.apache.maven.shared.release.config.ReleaseDescriptor;
27 import org.apache.maven.shared.release.env.ReleaseEnvironment;
28 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
29 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
30
31 import java.util.List;
32
33
34
35
36
37
38 public class ScmCommitPreparationPhase
39 extends AbstractScmCommitPhase
40 {
41
42 protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
43 List<MavenProject> reactorProjects, ReleaseResult result, boolean simulating )
44 throws ReleaseScmCommandException, ReleaseExecutionException, ReleaseScmRepositoryException
45 {
46
47 if ( releaseDescriptor.isSuppressCommitBeforeTagOrBranch() )
48 {
49 String parameterName;
50 if ( releaseDescriptor.isBranchCreation() )
51 {
52 parameterName = "suppressCommitBeforeBranch";
53 }
54 else
55 {
56 parameterName = "suppressCommitBeforeTag";
57 }
58
59 if ( simulating )
60 {
61 logInfo( result,
62 "Full run would not commit changes, " + "because " + parameterName + " is set to true." );
63 }
64 else
65 {
66 logInfo( result,
67 "Modified POMs are not committed because " + parameterName + " is set to true." );
68 }
69 }
70
71 else
72 {
73 String message = createMessage( reactorProjects, releaseDescriptor );
74 if ( simulating )
75 {
76 simulateCheckins( releaseDescriptor, reactorProjects, result, message );
77 }
78 else
79 {
80 performCheckins( releaseDescriptor, releaseEnvironment, reactorProjects, message );
81 }
82 }
83 }
84
85 protected void validateConfiguration( ReleaseDescriptor releaseDescriptor )
86 throws ReleaseFailureException
87 {
88 super.validateConfiguration( releaseDescriptor );
89
90 if ( releaseDescriptor.isSuppressCommitBeforeTagOrBranch() && releaseDescriptor.isRemoteTagging() )
91 {
92 throw new ReleaseFailureException(
93 "Cannot perform a remote tag or branch without committing the working copy first." );
94 }
95 }
96 }