From 1f59ebe1a6dc5db83c1f54f2aabb5f57dd87ddd3 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 6 Dec 2008 21:17:58 +0000 Subject: [PATCH] Introduce feature.xml generation git-svn-id: https://svn.argeo.org/slc/trunk/maven@1907 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- plugins/maven-argeo-pde-plugin/.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 9 +- plugins/maven-argeo-pde-plugin/pom.xml | 41 ++++---- .../argeo/slc/maven/plugins/pde/Feature.java | 43 ++++++++ .../plugins/pde/FeatureDescriptorMojo.java | 83 ++++++++++++++++ .../argeo/slc/maven/plugins/pde/Plugin.java | 23 +++++ .../resources/META-INF/maven/lifecycle.xml | 22 +++++ .../resources/META-INF/plexus/components.xml | 3 + .../src/main/scripts/argeo-pde.build.xml | 2 +- .../src/main/scripts/argeo-pde.mojos.xml | 13 +-- .../src/main/scripts/download.build.xml | 98 ------------------- .../src/main/scripts/download.mojos.xml | 26 ----- .../argeo.slc.testfeature/feature.xml | 26 ----- .../features/argeo.slc.testfeature/pom.xml | 31 +++++- .../argeo.slc.testplugin/META-INF/MANIFEST.MF | 2 +- 15 files changed, 236 insertions(+), 188 deletions(-) create mode 100644 plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Feature.java create mode 100644 plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java create mode 100644 plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Plugin.java delete mode 100644 plugins/maven-argeo-pde-plugin/src/main/scripts/download.build.xml delete mode 100644 plugins/maven-argeo-pde-plugin/src/main/scripts/download.mojos.xml delete mode 100644 plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/feature.xml diff --git a/plugins/maven-argeo-pde-plugin/.classpath b/plugins/maven-argeo-pde-plugin/.classpath index 03ebd9b46..0fd79a7e9 100644 --- a/plugins/maven-argeo-pde-plugin/.classpath +++ b/plugins/maven-argeo-pde-plugin/.classpath @@ -2,7 +2,7 @@ - + diff --git a/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs b/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs index 63f4cf16b..173eaf613 100644 --- a/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/maven-argeo-pde-plugin/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,12 @@ -#Fri Dec 05 10:50:53 CET 2008 +#Sat Dec 06 10:08:40 CET 2008 eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.4 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.3 diff --git a/plugins/maven-argeo-pde-plugin/pom.xml b/plugins/maven-argeo-pde-plugin/pom.xml index ccc005ffb..be705bb97 100644 --- a/plugins/maven-argeo-pde-plugin/pom.xml +++ b/plugins/maven-argeo-pde-plugin/pom.xml @@ -6,6 +6,28 @@ maven-plugin Argeo PDE Plugin + + + + maven-compiler-plugin + + 1.4 + 1.4 + + + + maven-plugin-plugin + + + org.apache.maven + maven-plugin-tools-ant + + 2.1 + + + + + org.apache.maven @@ -34,25 +56,6 @@ - - - - - maven-plugin-plugin - - - org.apache.maven - maven-plugin-tools-ant - - 2.1 - - - - argeo-pde - - - - false diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Feature.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Feature.java new file mode 100644 index 000000000..25a129d98 --- /dev/null +++ b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Feature.java @@ -0,0 +1,43 @@ +package org.argeo.slc.maven.plugins.pde; + +import java.util.List; + +public class Feature { + private String providerName; + private String license; + private String copyright; + private List plugins; + + public String getProviderName() { + return providerName; + } + + public void setProviderName(String providerName) { + this.providerName = providerName; + } + + public String getLicense() { + return license; + } + + public void setLicense(String license) { + this.license = license; + } + + public String getCopyright() { + return copyright; + } + + public void setCopyright(String copyright) { + this.copyright = copyright; + } + + public List getPlugins() { + return plugins; + } + + public void setPlugins(List plugins) { + this.plugins = plugins; + } + +} diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java new file mode 100644 index 000000000..849a64237 --- /dev/null +++ b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/FeatureDescriptorMojo.java @@ -0,0 +1,83 @@ +package org.argeo.slc.maven.plugins.pde; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.List; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter; + +/** + * Generates a feature descripto based on the pom + * + * @goal featureDescriptor + * @phase process-resources + */ +public class FeatureDescriptorMojo extends AbstractMojo { + /** + * The Maven project. + * + * @parameter expression="${project}" + * @required + * @readonly + */ + private MavenProject project; + + /** + * The directory for the pom + * + * @parameter expression="${basedir}" + * @required + */ + private File baseDir; + + /** + * Information about the feature + * + * @parameter expression="${argeo-pde.feature}" + * @required + */ + private Feature feature; + + public void execute() throws MojoExecutionException { + File featureDesc = new File(baseDir, "feature.xml"); + FileWriter fileWriter = null; + try { + fileWriter = new FileWriter(featureDesc); + PrettyPrintXMLWriter xmlWriter = new PrettyPrintXMLWriter( + fileWriter); + xmlWriter.startElement("feature"); + xmlWriter.addAttribute("id", project.getArtifactId()); + xmlWriter.addAttribute("label", project.getName()); + + String projectVersion = project.getVersion(); + int indexSnapshot = projectVersion.indexOf("-SNAPSHOT"); + if (indexSnapshot > -1) + projectVersion = projectVersion.substring(0, indexSnapshot); + projectVersion = projectVersion + ".qualifier"; + + // project. + xmlWriter.addAttribute("version", projectVersion); + + 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.endElement();// plugin + } + + xmlWriter.endElement();// feature + } catch (IOException e) { + throw new MojoExecutionException("Cannot write feature descriptor", + e); + } + IOUtil.close(fileWriter); + getLog().info("FeatureDescriptorMojo done"); + } +} diff --git a/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Plugin.java b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Plugin.java new file mode 100644 index 000000000..eec09c481 --- /dev/null +++ b/plugins/maven-argeo-pde-plugin/src/main/java/org/argeo/slc/maven/plugins/pde/Plugin.java @@ -0,0 +1,23 @@ +package org.argeo.slc.maven.plugins.pde; + +public class Plugin { + private String id; + private String version; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + +} diff --git a/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml index 9cc13514a..9ad001e81 100644 --- a/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml +++ b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/maven/lifecycle.xml @@ -24,4 +24,26 @@ + diff --git a/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml index 7055dbab5..fa7d8484b 100644 --- a/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml +++ b/plugins/maven-argeo-pde-plugin/src/main/resources/META-INF/plexus/components.xml @@ -15,6 +15,9 @@ org.argeo.slc.maven:maven-argeo-pde-plugin:eclipseTarget + + org.argeo.slc.maven:maven-argeo-pde-plugin:featureDescriptor + org.argeo.slc.maven:maven-argeo-pde-plugin:packageElement diff --git a/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml b/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml index 4029f6360..aec1adfee 100644 --- a/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml +++ b/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml @@ -78,7 +78,7 @@ - + diff --git a/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.mojos.xml b/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.mojos.xml index b10aaacff..d1223d10a 100644 --- a/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.mojos.xml +++ b/plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.mojos.xml @@ -11,18 +11,6 @@ - eclipseAntArgs eclipseAntArgs @@ -88,6 +76,7 @@ + eclipseBuildDir eclipseBuildDir diff --git a/plugins/maven-argeo-pde-plugin/src/main/scripts/download.build.xml b/plugins/maven-argeo-pde-plugin/src/main/scripts/download.build.xml deleted file mode 100644 index 9cc23eca1..000000000 --- a/plugins/maven-argeo-pde-plugin/src/main/scripts/download.build.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/maven-argeo-pde-plugin/src/main/scripts/download.mojos.xml b/plugins/maven-argeo-pde-plugin/src/main/scripts/download.mojos.xml deleted file mode 100644 index f581d3630..000000000 --- a/plugins/maven-argeo-pde-plugin/src/main/scripts/download.mojos.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - eclipseBuildDir - eclipseBuildDir - - Prepare an eclispe build dir by downloading the required - components - - - - - - eclipseBuildDir - eclipseBuildDir - true - ${eclipseBuildDir} - java.lang.String - - The Eclipse build dir location - - - - - - \ No newline at end of file diff --git a/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/feature.xml b/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/feature.xml deleted file mode 100644 index 1d448ffc1..000000000 --- a/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/feature.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - [Enter Feature Description here.] - - - - [Enter Copyright Description here.] - - - - [Enter License Description here.] - - - - - diff --git a/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/pom.xml b/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/pom.xml index cfb00bece..32c7fc3c3 100644 --- a/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/pom.xml +++ b/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature/pom.xml @@ -6,6 +6,11 @@ 0.1.1-SNAPSHOT eclipseFeature Argeo SLC Test Eclipse Feature + + + scm:svn:https://www.argeo.org/svn/slc/trunk/maven/plugins/maven-argeo-pde-plugin/src/test/eclipse/features/argeo.slc.testfeature + + @@ -14,26 +19,46 @@ 0.3.1-SNAPSHOT true - -DjavacSource=1.5 - -DjavacTarget=1.5 + + + + + argeo.slc.testplugin + 1.0.0.qualifier + + + + diff --git a/plugins/maven-argeo-pde-plugin/src/test/eclipse/plugins/argeo.slc.testplugin/META-INF/MANIFEST.MF b/plugins/maven-argeo-pde-plugin/src/test/eclipse/plugins/argeo.slc.testplugin/META-INF/MANIFEST.MF index 76b31e814..01aad3224 100644 --- a/plugins/maven-argeo-pde-plugin/src/test/eclipse/plugins/argeo.slc.testplugin/META-INF/MANIFEST.MF +++ b/plugins/maven-argeo-pde-plugin/src/test/eclipse/plugins/argeo.slc.testplugin/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Testplugin Plug-in Bundle-SymbolicName: argeo.slc.testplugin; singleton:=true -Bundle-Version: 1.0.0 +Bundle-Version: 1.0.0.qualifier Bundle-Activator: argeo.slc.testplugin.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime -- 2.39.5