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.IOException;
23 import java.util.List;
24
25 import org.apache.maven.project.MavenProject;
26 import org.apache.maven.shared.release.ReleaseExecutionException;
27 import org.apache.maven.shared.release.ReleaseFailureException;
28 import org.apache.maven.shared.release.ReleaseResult;
29 import org.apache.maven.shared.release.config.ReleaseDescriptor;
30 import org.apache.maven.shared.release.env.ReleaseEnvironment;
31 import org.apache.maven.shared.release.util.ReleaseUtil;
32 import org.codehaus.plexus.util.FileUtils;
33
34
35
36
37
38 public class CreateBackupPomsPhase
39 extends AbstractBackupPomsPhase
40 {
41 public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
42 List<MavenProject> reactorProjects )
43 throws ReleaseExecutionException, ReleaseFailureException
44 {
45 ReleaseResult result = new ReleaseResult();
46
47
48 clean( reactorProjects );
49
50 for ( MavenProject project : reactorProjects )
51 {
52 createPomBackup( project );
53 }
54
55 result.setResultCode( ReleaseResult.SUCCESS );
56
57 return result;
58 }
59
60 public ReleaseResult clean( List<MavenProject> reactorProjects )
61 {
62 ReleaseResult result = new ReleaseResult();
63
64 for ( MavenProject project : reactorProjects )
65 {
66 deletePomBackup( project );
67 }
68
69 result.setResultCode( ReleaseResult.SUCCESS );
70
71 return result;
72 }
73
74 public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
75 List<MavenProject> reactorProjects )
76 throws ReleaseExecutionException, ReleaseFailureException
77 {
78 return execute( releaseDescriptor, releaseEnvironment, reactorProjects );
79 }
80
81 private void createPomBackup( MavenProject project )
82 throws ReleaseExecutionException
83 {
84
85 deletePomBackup( project );
86
87 try
88 {
89 FileUtils.copyFile( ReleaseUtil.getStandardPom( project ), getPomBackup( project ) );
90 }
91 catch ( IOException e )
92 {
93 throw new ReleaseExecutionException( "Error creating backup POM: " + e.getMessage(), e );
94 }
95 }
96 }