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