1 package org
.argeo
.slc
.maven
.plugins
.pde
;
4 import java
.io
.FileWriter
;
5 import java
.io
.IOException
;
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
;
15 * Generates a feature descripto based on the pom
17 * @goal featureDescriptor
18 * @phase process-resources
20 public class FeatureDescriptorMojo
extends AbstractMojo
{
24 * @parameter expression="${project}"
28 private MavenProject project
;
31 * The directory for the pom
33 * @parameter expression="${basedir}"
39 * Information about the feature
41 * @parameter expression="${argeo-pde.feature}"
44 private Feature feature
;
46 public void execute() throws MojoExecutionException
{
47 File featureDesc
= new File(baseDir
, "feature.xml");
48 FileWriter fileWriter
= null;
50 fileWriter
= new FileWriter(featureDesc
);
51 PrettyPrintXMLWriter xmlWriter
= new PrettyPrintXMLWriter(
53 xmlWriter
.startElement("feature");
54 xmlWriter
.addAttribute("id", project
.getArtifactId());
55 xmlWriter
.addAttribute("label", project
.getName());
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";
64 xmlWriter
.addAttribute("version", projectVersion
);
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
75 xmlWriter
.endElement();// feature
76 } catch (IOException e
) {
77 throw new MojoExecutionException("Cannot write feature descriptor",
80 IOUtil
.close(fileWriter
);
81 getLog().info("FeatureDescriptorMojo done");