]> git.argeo.org Git - gpl/argeo-slc.git/blob - maven/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java
Remove plugins directory
[gpl/argeo-slc.git] / maven / maven-argeo-pde-plugin / src / main / java / org / argeo / slc / maven / plugins / pde / FeatureDescriptorMojo.java
1 package org.argeo.slc.maven.plugins.pde;
2
3 import java.io.File;
4 import java.io.FileWriter;
5 import java.io.IOException;
6 import java.util.List;
7
8 import org.apache.maven.plugin.AbstractMojo;
9 import org.apache.maven.plugin.MojoExecutionException;
10 import org.apache.maven.project.MavenProject;
11 import org.codehaus.plexus.util.IOUtil;
12 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
13
14 /**
15 * Generates a feature descripto based on the pom
16 *
17 * @goal featureDescriptor
18 * @phase process-resources
19 */
20 public class FeatureDescriptorMojo extends AbstractMojo {
21 /**
22 * The Maven project.
23 *
24 * @parameter expression="${project}"
25 * @required
26 * @readonly
27 */
28 private MavenProject project;
29
30 /**
31 * The directory for the pom
32 *
33 * @parameter expression="${basedir}"
34 * @required
35 */
36 private File baseDir;
37
38 /**
39 * Information about the feature
40 *
41 * @parameter expression="${argeo-pde.feature}"
42 * @required
43 */
44 private Feature feature;
45
46 public void execute() throws MojoExecutionException {
47 File featureDesc = new File(baseDir, "feature.xml");
48 FileWriter fileWriter = null;
49 try {
50 fileWriter = new FileWriter(featureDesc);
51 PrettyPrintXMLWriter xmlWriter = new PrettyPrintXMLWriter(
52 fileWriter);
53 xmlWriter.startElement("feature");
54 xmlWriter.addAttribute("id", project.getArtifactId());
55 xmlWriter.addAttribute("label", project.getName());
56
57 String projectVersion = project.getVersion();
58 int indexSnapshot = projectVersion.indexOf("-SNAPSHOT");
59 if (indexSnapshot > -1)
60 projectVersion = projectVersion.substring(0, indexSnapshot);
61 projectVersion = projectVersion + ".qualifier";
62
63 // project.
64 xmlWriter.addAttribute("version", projectVersion);
65
66 List plugins = feature.getPlugins();
67 for (int i = 0; i < plugins.size(); i++) {
68 Plugin plugin = (Plugin) plugins.get(i);
69 xmlWriter.startElement("plugin");
70 xmlWriter.addAttribute("id", plugin.getId());
71 xmlWriter.addAttribute("version", plugin.getVersion());
72 xmlWriter.endElement();// plugin
73 }
74
75 xmlWriter.endElement();// feature
76 } catch (IOException e) {
77 throw new MojoExecutionException("Cannot write feature descriptor",
78 e);
79 }
80 IOUtil.close(fileWriter);
81 getLog().info("FeatureDescriptorMojo done");
82 }
83 }