1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.forgerock.doc.maven.release;
18
19 import org.apache.commons.io.FileUtils;
20 import org.apache.maven.plugin.MojoExecutionException;
21 import org.forgerock.doc.maven.AbstractDocbkxMojo;
22 import org.twdata.maven.mojoexecutor.MojoExecutor;
23
24 import java.io.File;
25 import java.io.IOException;
26 import java.net.URL;
27
28
29
30
31
32
33
34
35
36
37 public class Zip {
38
39
40
41
42 private AbstractDocbkxMojo m;
43
44
45
46
47 private final Executor executor;
48
49
50
51
52
53
54 public Zip(final AbstractDocbkxMojo mojo) {
55 m = mojo;
56 this.executor = new Executor();
57 }
58
59
60
61
62
63
64 public void execute() throws MojoExecutionException {
65 executor.zip();
66 }
67
68
69
70
71 class Executor extends MojoExecutor {
72
73
74
75
76
77
78 public void zip() throws MojoExecutionException {
79
80 if (!m.doBuildReleaseZip()) {
81 return;
82 }
83
84 final URL resource = getClass().getResource("/zip.xml");
85 final File assembly = new File(m.getBuildDirectory(), "assembly.xml");
86
87 try {
88 FileUtils.copyURLToFile(resource, assembly);
89 } catch (IOException e) {
90 throw new MojoExecutionException(e.getMessage(), e);
91 }
92
93
94 final String finalName = m.getProjectName() + "-" + m.getReleaseVersion();
95
96 executeMojo(
97 plugin(
98 groupId("org.apache.maven.plugins"),
99 artifactId("maven-assembly-plugin"),
100 version(m.getMavenAssemblyVersion())),
101 goal("single"),
102 configuration(
103 element(name("finalName"), finalName),
104 element(name("descriptors"),
105 element(name("descriptor"), m.path(assembly)))),
106 executionEnvironment(m.getProject(), m.getSession(), m.getPluginManager()));
107 }
108 }
109 }