Improve feature descriptor
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 8 Dec 2008 11:09:01 +0000 (11:09 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 8 Dec 2008 11:09:01 +0000 (11:09 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1946 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

maven/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Feature.java
maven/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java
maven/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/PackageElementMojo.java
maven/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Plugin.java

index 25a129d98651e81d9fe8e94432b93edb3e3a7e78..9b62be7264f8b972ad9d71b1209f7c7ea4bf4f96 100644 (file)
@@ -3,25 +3,16 @@ package org.argeo.slc.maven.plugins.pde;
 import java.util.List;
 
 public class Feature {
-       private String providerName;
-       private String license;
+       private String updateSite;
        private String copyright;
        private List plugins;
 
-       public String getProviderName() {
-               return providerName;
+       public String getUpdateSite() {
+               return updateSite;
        }
 
-       public void setProviderName(String providerName) {
-               this.providerName = providerName;
-       }
-
-       public String getLicense() {
-               return license;
-       }
-
-       public void setLicense(String license) {
-               this.license = license;
+       public void setUpdateSite(String license) {
+               this.updateSite = license;
        }
 
        public String getCopyright() {
index 849a6423736be873d3e0b8d4a271ed25d2c3d3fd..efd245b77aa6bbc6705e596534e9c018edc9c71c 100644 (file)
@@ -5,6 +5,8 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.maven.model.License;
+import org.apache.maven.model.Organization;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
@@ -54,6 +56,7 @@ public class FeatureDescriptorMojo extends AbstractMojo {
                        xmlWriter.addAttribute("id", project.getArtifactId());
                        xmlWriter.addAttribute("label", project.getName());
 
+                       // Version
                        String projectVersion = project.getVersion();
                        int indexSnapshot = projectVersion.indexOf("-SNAPSHOT");
                        if (indexSnapshot > -1)
@@ -63,12 +66,60 @@ public class FeatureDescriptorMojo extends AbstractMojo {
                        // project.
                        xmlWriter.addAttribute("version", projectVersion);
 
+                       
+                       Organization organization = project.getOrganization();
+                       if (organization != null && organization.getName() != null)
+                               xmlWriter.addAttribute("provider-name", organization.getName());
+
+                       if (project.getDescription() != null || project.getUrl() != null) {
+                               xmlWriter.startElement("description");
+                               if (project.getUrl() != null)
+                                       xmlWriter.addAttribute("url", project.getUrl());
+                               if (project.getDescription() != null)
+                                       xmlWriter.writeText(project.getDescription());
+                               xmlWriter.endElement();// description
+                       }
+
+                       if (feature.getCopyright() != null
+                                       || (organization != null && organization.getUrl() != null)) {
+                               xmlWriter.startElement("copyright");
+                               if (organization != null && organization.getUrl() != null)
+                                       xmlWriter.addAttribute("url", organization.getUrl());
+                               if (feature.getCopyright() != null)
+                                       xmlWriter.writeText(feature.getCopyright());
+                               xmlWriter.endElement();// copyright
+                       }
+
+                       if (feature.getUpdateSite() != null) {
+                               xmlWriter.startElement("url");
+                               xmlWriter.startElement("update");
+                               xmlWriter.addAttribute("url", feature.getUpdateSite());
+                               xmlWriter.endElement();// update
+                               xmlWriter.endElement();// url
+                       }
+
+                       List licenses = project.getLicenses();
+                       if (licenses.size() > 0) {
+                               // take the first one
+                               License license = (License) licenses.get(0);
+                               xmlWriter.startElement("license");
+
+                               if (license.getUrl() != null)
+                                       xmlWriter.addAttribute("url", license.getUrl());
+                               if (license.getComments() != null)
+                                       xmlWriter.writeText(license.getComments());
+                               else if (license.getName() != null)
+                                       xmlWriter.writeText(license.getName());
+                               xmlWriter.endElement();// license
+                       }
+
                        List plugins = feature.getPlugins();
                        for (int i = 0; i < plugins.size(); i++) {
                                Plugin plugin = (Plugin) plugins.get(i);
                                xmlWriter.startElement("plugin");
                                xmlWriter.addAttribute("id", plugin.getId());
                                xmlWriter.addAttribute("version", plugin.getVersion());
+                               xmlWriter.addAttribute("unpack", plugin.getUnpack());
                                xmlWriter.endElement();// plugin
                        }
 
index 0505c2af149d23a53d33caa9f62221a6baa542fd..b5262b8501965d352b182289e48c7161bd4bf52f 100644 (file)
@@ -24,7 +24,7 @@ public class PackageElementMojo extends AbstractMojo {
        private MavenProject project;
 
        /**
-        * The directory for the generated JAR.
+        * The build directory.
         * 
         * @parameter expression="${project.build.directory}"
         * @required
index eec09c4819480dd5a1231b5da766c1af78ba5185..e5a759d4874251884fb061b9397dc60e0ef07b60 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.slc.maven.plugins.pde;
 public class Plugin {
        private String id;
        private String version;
+       private String unpack = "false";
 
        public String getId() {
                return id;
@@ -20,4 +21,12 @@ public class Plugin {
                this.version = version;
        }
 
+       public String getUnpack() {
+               return unpack;
+       }
+
+       public void setUnpack(String unpack) {
+               this.unpack = unpack;
+       }
+
 }