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
24 import org.apache.maven.project.MavenProject;
25 import org.apache.maven.shared.release.ReleaseExecutionException;
26 import org.apache.maven.shared.release.ReleaseFailureException;
27 import org.apache.maven.shared.release.ReleaseResult;
28 import org.apache.maven.shared.release.config.ReleaseDescriptor;
29 import org.apache.maven.shared.release.env.ReleaseEnvironment;
30
31
32
33
34
35
36 public class CheckCompletedPreparePhasesPhase
37 extends AbstractReleasePhase
38 {
39 public ReleaseResult execute( ReleaseDescriptor releaseDescriptor,
40 ReleaseEnvironment releaseEnvironment,
41 List<MavenProject> reactorProjects )
42 throws ReleaseExecutionException, ReleaseFailureException
43 {
44 ReleaseResult result = new ReleaseResult();
45
46
47 if ( releaseDescriptor.getCompletedPhase() != null
48 && !"end-release".equals( releaseDescriptor.getCompletedPhase() ) )
49 {
50 String message = "Cannot perform release - the preparation step was stopped mid-way. Please re-run "
51 + "release:prepare to continue, or perform the release from an SCM tag.";
52
53 result.setResultCode( ReleaseResult.ERROR );
54
55 logError( result, message );
56
57 throw new ReleaseFailureException( message );
58 }
59
60 if ( releaseDescriptor.getScmSourceUrl() == null )
61 {
62 String message = "No SCM URL was provided to perform the release from";
63
64 result.setResultCode( ReleaseResult.ERROR );
65
66 logError( result, message );
67
68 throw new ReleaseFailureException( message );
69 }
70
71 result.setResultCode( ReleaseResult.SUCCESS );
72
73 return result;
74 }
75
76 public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor,
77 ReleaseEnvironment releaseEnvironment,
78 List<MavenProject> reactorProjects )
79 throws ReleaseExecutionException, ReleaseFailureException
80 {
81 return execute( releaseDescriptor, releaseEnvironment, reactorProjects );
82 }
83 }