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 java.io.File;
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.nio.file.Files;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 import org.apache.maven.model.Model;
29 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
30 import org.apache.maven.project.MavenProject;
31 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
32
33
34
35
36 abstract class AbstractBackupPomsPhaseTest {
37 private final String pomFilename = "pom.xml";
38
39 protected final String releaseBackupSuffix = ".releaseBackup";
40
41 protected List<MavenProject> getReactorProjects(String projectPath) throws Exception {
42 List<MavenProject> reactorProjects = new ArrayList<>();
43
44 File pomFile = new File(projectPath, pomFilename);
45
46 MavenProject mainProject = createMavenProject(pomFile);
47
48 reactorProjects.add(mainProject);
49
50 for (String module : mainProject.getModel().getModules()) {
51 File modulePom = new File(projectPath + "/" + module, pomFilename);
52
53 MavenProject subproject = createMavenProject(modulePom);
54
55 reactorProjects.add(subproject);
56 }
57
58 return reactorProjects;
59 }
60
61 private MavenProject createMavenProject(File pomFile) throws IOException, XmlPullParserException {
62 MavenXpp3Reader reader = new MavenXpp3Reader();
63 try (InputStream in = Files.newInputStream(pomFile.toPath())) {
64 Model model = reader.read(in);
65 MavenProject project = new MavenProject(model);
66 project.setFile(pomFile);
67 return project;
68 }
69 }
70 }