1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.release.phase;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.IOException;
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.ReleaseFailureException;
30 import org.apache.maven.shared.release.ReleaseResult;
31 import org.apache.maven.shared.release.config.ReleaseDescriptor;
32 import org.apache.maven.shared.release.env.ReleaseEnvironment;
33 import org.apache.maven.shared.release.util.ReleaseUtil;
34 import org.codehaus.plexus.util.FileUtils;
35
36
37
38
39 @Singleton
40 @Named("create-backup-poms")
41 public class CreateBackupPomsPhase extends AbstractBackupPomsPhase implements ResourceGenerator {
42 @Override
43 public ReleaseResult execute(
44 ReleaseDescriptor releaseDescriptor,
45 ReleaseEnvironment releaseEnvironment,
46 List<MavenProject> reactorProjects)
47 throws ReleaseExecutionException, ReleaseFailureException {
48 ReleaseResult result = new ReleaseResult();
49
50
51 clean(reactorProjects);
52
53 logInfo(result, "Creating pom.xml backup with " + BACKUP_SUFFIX + " suffix");
54
55 for (MavenProject project : reactorProjects) {
56 createPomBackup(project);
57 }
58
59 result.setResultCode(ReleaseResult.SUCCESS);
60
61 return result;
62 }
63
64 @Override
65 public ReleaseResult clean(List<MavenProject> reactorProjects) {
66 ReleaseResult result = new ReleaseResult();
67
68 for (MavenProject project : reactorProjects) {
69 deletePomBackup(project);
70 }
71
72 result.setResultCode(ReleaseResult.SUCCESS);
73
74 return result;
75 }
76
77 @Override
78 public ReleaseResult simulate(
79 ReleaseDescriptor releaseDescriptor,
80 ReleaseEnvironment releaseEnvironment,
81 List<MavenProject> reactorProjects)
82 throws ReleaseExecutionException, ReleaseFailureException {
83 return execute(releaseDescriptor, releaseEnvironment, reactorProjects);
84 }
85
86 private void createPomBackup(MavenProject project) throws ReleaseExecutionException {
87
88 deletePomBackup(project);
89
90 try {
91 FileUtils.copyFile(ReleaseUtil.getStandardPom(project), getPomBackup(project));
92 } catch (IOException e) {
93 throw new ReleaseExecutionException("Error creating backup POM: " + e.getMessage(), e);
94 }
95 }
96 }