changeset 129:277471cea9af

Generate projects with packaging type `bundle` Instead of generic `jar`-type projects, create projects with the package type `bundle`. `bundle`-type projects generate jars that include OSGi metadata. Without OSGi-metadata, the jars are ignored by Thermostat. Depend on a recent version of `maven-bundle-plugin` to generate OSGi-metadata automatically.
author Omair Majid <omajid@redhat.com>
date Thu, 29 May 2014 13:58:41 -0400
parents 89b9cf5db67a
children df34d0465d83
files com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/ProjectCreator.java
diffstat 1 files changed, 49 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/ProjectCreator.java	Thu May 22 11:09:30 2014 -0400
+++ b/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/ProjectCreator.java	Thu May 29 13:58:41 2014 -0400
@@ -47,6 +47,18 @@
     private static final String POM_FOOTER = ""
             + "</project>\n";
 
+    private static final String OSGI_DEPENDENCIES_WITH_VERSION = ""
+            + "      <dependency>\n"
+            + "        <groupId>org.osgi</groupId>\n"
+            + "        <artifactId>org.osgi.core</artifactId>\n"
+            + "        <version>4.3.1</version>\n"
+            + "      </dependency>\n"
+            + "      <dependency>\n"
+            + "        <groupId>org.osgi</groupId>\n"
+            + "        <artifactId>org.osgi.compendium</artifactId>\n"
+            + "        <version>4.3.1</version>\n"
+            + "      </dependency>\n";
+
     private static final String OSGI_DEPENDENCIES = ""
             + "    <dependency>\n"
             + "      <groupId>org.osgi</groupId>\n"
@@ -57,6 +69,20 @@
             + "      <artifactId>org.osgi.compendium</artifactId>\n"
             + "    </dependency>\n";
 
+    private static final String BUNDLE_PLUGIN_WITH_VERSION = ""
+            + "        <plugin>\n"
+            + "          <groupId>org.apache.felix</groupId>\n"
+            + "          <artifactId>maven-bundle-plugin</artifactId>\n"
+            + "          <version>2.3.7</version>\n"
+            + "        </plugin>\n";
+
+    private static final String BUNDLE_PLUGIN = ""
+            + "      <plugin>\n"
+            + "        <groupId>org.apache.felix</groupId>\n"
+            + "        <artifactId>maven-bundle-plugin</artifactId>\n"
+            + "        <extensions>true</extensions>\n"
+            + "      </plugin>\n";
+
     private static final String BUNDLE_ACTIVATOR_NAME = "Activator";
     private static final String BUNDLE_ACTIVATOR = ""
             + "package ${package.name};\n" // ${package.name} is replaced with actual package name
@@ -135,18 +161,17 @@
                 + "    <module>../" + this.artifactId + "-distribution</module>\n"
                 + "  </modules>\n"
                 + "\n"
+                + "  <build>\n"
+                + "    <pluginManagement>\n"
+                + "      <plugins>\n"
+                + BUNDLE_PLUGIN_WITH_VERSION
+                + "      </plugins>\n"
+                + "    </pluginManagement>\n"
+                + "  </build>\n"
+                + "\n"
                 + "  <dependencyManagement>\n"
                 + "    <dependencies>\n"
-                + "      <dependency>\n"
-                + "        <groupId>org.osgi</groupId>\n"
-                + "        <artifactId>org.osgi.core</artifactId>\n"
-                + "        <version>4.3.1</version>\n"
-                + "      </dependency>\n"
-                + "      <dependency>\n"
-                + "        <groupId>org.osgi</groupId>\n"
-                + "        <artifactId>org.osgi.compendium</artifactId>\n"
-                + "        <version>4.3.1</version>\n"
-                + "      </dependency>\n"
+                + OSGI_DEPENDENCIES_WITH_VERSION
                 + "    </dependencies>\n"
                 + "  </dependencyManagement>\n"
                 + POM_FOOTER;
@@ -166,7 +191,13 @@
                 + createParentSection(groupId, parentId, version)
                 + "\n"
                 + "  <artifactId>" + artifactId + "</artifactId>\n"
-                + "  <packaging>jar</packaging>\n"
+                + "  <packaging>bundle</packaging>\n"
+                + "\n"
+                + "  <build>\n"
+                + "    <plugins>\n"
+                + BUNDLE_PLUGIN
+                + "    </plugins>\n"
+                + "  </build>\n"
                 + "\n"
                 + "  <dependencies>\n"
                 + OSGI_DEPENDENCIES
@@ -188,7 +219,13 @@
                 + createParentSection(groupId, parentId, version)
                 + "\n"
                 + "  <artifactId>" + artifactId + "</artifactId>\n"
-                + "  <packaging>jar</packaging>\n"
+                + "  <packaging>bundle</packaging>\n"
+                + "\n"
+                + "  <build>\n"
+                + "    <plugins>\n"
+                + BUNDLE_PLUGIN
+                + "    </plugins>\n"
+                + "  </build>\n"
                 + "\n"
                 + "  <dependencies>\n"
                 + "    <dependency>\n"