changeset 1007:53ce942c35c1

Convert plugins to use plugin installation mechanism This commit converts the existing Thermostat plugins (Host CPU, Thread, NUMA, etc.) to be installed using the plugin installation mechanism. Each plugin now has a distribution module that creates a zip artifact with the necessary jars and plugin.xml using maven-assembly-plugin. The assembly descriptor is put in a shared place for all plugins under a new top-level assembly module. The main distribution module now has a dependency on each plugin's zip artifact. At build time, the distribution module invokes maven-assembly-plugin again to unpack all plugins' distribution zips under target/plugins. The reason for using zips is that it seemed to be the only way for maven-assembly-plugin to create the desired layout under target/plugins, although other archive formats should work just as well. I have similarly changed distribution to use maven-assembly-plugin to place core jars under target/libs. The one difference here is that expectj.jar and tools.jar are no longer included. This seems to be since expectj is only used for testing and tools.jar is always provided by the system. So this change should be beneficial in that regard, along with reducing the amount of plugins we use and thus simplifying our build. I have also modified the plugin.xml parser to ignore comments, as the copyright headers were breaking it. As far as building goes, mvn clean package still builds the core and all plugins. Reviewed-by: jerboaa, omajid, vanaltj Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-February/005580.html
author Elliott Baron <ebaron@redhat.com>
date Tue, 26 Feb 2013 15:31:32 -0500
parents eec62a0c5457
children cf03638b6e73
files assembly/pom.xml assembly/src/main/resources/assemblies/plugin-assembly.xml distribution/assembly/all-plugin-assembly.xml distribution/assembly/core-assembly.xml distribution/config/commands/agent.properties distribution/config/commands/gui.properties distribution/config/commands/vm-stat.properties distribution/config/commands/webservice.properties distribution/pom.xml host-cpu/distribution/plugin.xml host-cpu/distribution/pom.xml host-cpu/pom.xml host-memory/distribution/plugin.xml host-memory/distribution/pom.xml host-memory/pom.xml host-overview/distribution/plugin.xml host-overview/distribution/pom.xml host-overview/pom.xml launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java numa/distribution/plugin.xml numa/distribution/pom.xml numa/pom.xml pom.xml thread/distribution/plugin.xml thread/distribution/pom.xml thread/pom.xml vm-classstat/distribution/plugin.xml vm-classstat/distribution/pom.xml vm-classstat/pom.xml vm-cpu/distribution/plugin.xml vm-cpu/distribution/pom.xml vm-cpu/pom.xml vm-gc/distribution/plugin.xml vm-gc/distribution/pom.xml vm-gc/pom.xml vm-heap-analysis/distribution/plugin.xml vm-heap-analysis/distribution/pom.xml vm-heap-analysis/pom.xml vm-memory/distribution/plugin.xml vm-memory/distribution/pom.xml vm-memory/pom.xml vm-overview/distribution/plugin.xml vm-overview/distribution/pom.xml vm-overview/pom.xml
diffstat 44 files changed, 2340 insertions(+), 244 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/assembly/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-assembly</artifactId>
+
+  <name>Thermostat Assemblies</name>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <skipTests>true</skipTests>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/assembly/src/main/resources/assemblies/plugin-assembly.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+  <id>plugin-assembly</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${thermostat.plugin}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+    </dependencySet>
+  </dependencySets>
+  
+  <fileSets>
+    <fileSet>
+      <includes>
+        <include>plugin.xml</include>
+      </includes>
+      <filtered>true</filtered>
+    </fileSet>
+  </fileSets>
+</assembly>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distribution/assembly/all-plugin-assembly.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+  <id>plugin-assembly</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <unpack>true</unpack>
+      <includes>
+        <include>com.redhat.thermostat:thermostat-host-cpu-distribution</include>
+        <include>com.redhat.thermostat:thermostat-host-memory-distribution</include>
+        <include>com.redhat.thermostat:thermostat-host-overview-distribution</include>
+        <include>com.redhat.thermostat:thermostat-numa-distribution</include>
+        <include>com.redhat.thermostat:thermostat-thread-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-classstat-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-cpu-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-gc-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-heap-analysis-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-memory-distribution</include>
+        <include>com.redhat.thermostat:thermostat-vm-overview-distribution</include>
+      </includes>
+    </dependencySet>  
+  </dependencySets>
+  
+</assembly>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distribution/assembly/core-assembly.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+  <id>core-assembly</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>true</useProjectArtifact>
+      <unpack>false</unpack>
+      <includes>
+        <include>com.redhat.thermostat:thermostat-main</include>
+        <include>com.redhat.thermostat:thermostat-launcher</include>
+        <include>com.redhat.thermostat:thermostat-client-swing</include>
+        <include>com.redhat.thermostat:thermostat-swing-components</include>
+        <include>com.redhat.thermostat:thermostat-client-command</include>
+        <include>com.redhat.thermostat:thermostat-client-cli</include>
+        <include>com.redhat.thermostat:thermostat-osgi-living-vm-filter-swing</include>
+        <include>com.redhat.thermostat:thermostat-agent-core</include>
+        <include>com.redhat.thermostat:thermostat-agent-cli</include>
+        <include>com.redhat.thermostat:thermostat-agent-command</include>
+        <include>com.redhat.thermostat:thermostat-killvm-agent</include>
+        <include>com.redhat.thermostat:thermostat-killvm-client-swing</include>
+        <include>com.redhat.thermostat:thermostat-common-core</include>
+        <include>com.redhat.thermostat:thermostat-common-command</include>
+        <include>com.redhat.thermostat:thermostat-osgi-process-handler</include>
+        <include>com.redhat.thermostat:thermostat-keyring</include>
+        <include>com.redhat.thermostat:thermostat-web-client</include>
+        <include>com.redhat.thermostat:thermostat-web-cmd</include>
+        <include>com.redhat.thermostat:thermostat-system-backend</include>
+        <include>org.eclipse.jetty:jetty-server</include>
+        <include>org.eclipse.jetty:jetty-webapp</include>
+      </includes>
+      <excludes>
+        <exclude>org.osgi:*</exclude>
+      </excludes>
+      <useTransitiveDependencies>true</useTransitiveDependencies>
+      <useTransitiveFiltering>true</useTransitiveFiltering>
+    </dependencySet>
+  </dependencySets>
+</assembly>
--- a/distribution/config/commands/agent.properties	Tue Feb 26 13:33:52 2013 -0500
+++ b/distribution/config/commands/agent.properties	Tue Feb 26 15:31:32 2013 -0500
@@ -9,29 +9,9 @@
           thermostat-agent-cli-@project.version@.jar, \
           thermostat-common-command-@project.version@.jar, \
           thermostat-agent-command-@project.version@.jar, \
-          thermostat-host-cpu-common-@project.version@.jar, \
-          thermostat-host-cpu-agent-@project.version@.jar, \
-          thermostat-host-memory-common-@project.version@.jar, \
-          thermostat-host-memory-agent-@project.version@.jar, \
-          thermostat-vm-cpu-common-@project.version@.jar, \
-          thermostat-vm-cpu-agent-@project.version@.jar, \
-          thermostat-vm-memory-common-@project.version@.jar, \
-          thermostat-vm-memory-agent-@project.version@.jar, \
-          thermostat-vm-gc-common-@project.version@.jar, \
-          thermostat-vm-gc-agent-@project.version@.jar, \
-          thermostat-vm-classstat-common-@project.version@.jar, \
-          thermostat-vm-classstat-agent-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-agent-@project.version@.jar, \
           thermostat-killvm-agent-@project.version@.jar, \
-          thermostat-thread-collector-@project.version@.jar, \
-          thermostat-thread-harvester-@project.version@.jar, \
           thermostat-system-backend-@project.version@.jar, \
-          thermostat-gc-remote-collector-common-@project.version@.jar, \
-          thermostat-gc-remote-collector-command-@project.version@.jar, \
           thermostat-storage-mongodb-${project.version}.jar, \
-          thermostat-numa-common-${project.version}.jar, \
-          thermostat-numa-agent-${project.version}.jar, \
           mongo.jar, \
           commons-beanutils.jar, \
           commons-codec.jar, \
--- a/distribution/config/commands/gui.properties	Tue Feb 26 13:33:52 2013 -0500
+++ b/distribution/config/commands/gui.properties	Tue Feb 26 15:31:32 2013 -0500
@@ -13,46 +13,10 @@
           thermostat-client-swing-@project.version@.jar, \
           thermostat-swing-components-@project.version@.jar, \
           thermostat-client-command-@project.version@.jar, \
-          thermostat-host-overview-client-core-@project.version@.jar, \
-          thermostat-host-overview-client-swing-@project.version@.jar, \
-          thermostat-host-cpu-common-@project.version@.jar, \
-          thermostat-host-cpu-client-core-@project.version@.jar, \
-          thermostat-host-cpu-client-swing-@project.version@.jar, \
-          thermostat-host-memory-common-@project.version@.jar, \
-          thermostat-host-memory-client-core-@project.version@.jar, \
-          thermostat-host-memory-client-swing-@project.version@.jar, \
-          thermostat-vm-overview-client-core-@project.version@.jar, \
-          thermostat-vm-overview-client-swing-@project.version@.jar, \
-          thermostat-vm-cpu-common-@project.version@.jar, \
-          thermostat-vm-cpu-client-core-@project.version@.jar, \
-          thermostat-vm-cpu-client-swing-@project.version@.jar, \
-          thermostat-vm-gc-common-@project.version@.jar, \
-          thermostat-vm-gc-client-core-@project.version@.jar, \
-          thermostat-vm-gc-client-swing-@project.version@.jar, \
-          thermostat-vm-memory-common-@project.version@.jar, \
-          thermostat-vm-memory-client-core-@project.version@.jar, \
-          thermostat-vm-memory-client-swing-@project.version@.jar, \
-          thermostat-vm-heap-analysis-client-core-@project.version@.jar, \
-          thermostat-vm-heap-analysis-client-swing-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
           thermostat-killvm-client-swing-@project.version@.jar, \
-          thermostat-vm-classstat-common-@project.version@.jar, \
-          thermostat-vm-classstat-client-core-@project.version@.jar, \
-          thermostat-vm-classstat-client-swing-@project.version@.jar, \
           thermostat-osgi-living-vm-filter-core-@project.version@.jar, \
           thermostat-osgi-living-vm-filter-swing-@project.version@.jar, \
-          thermostat-thread-collector-@project.version@.jar, \
-          thermostat-thread-client-swing-@project.version@.jar, \
-          thermostat-thread-client-controllers-@project.version@.jar, \
-          thermostat-thread-client-common-@project.version@.jar, \
-          thermostat-gc-remote-collector-common-@project.version@.jar, \
-          thermostat-gc-remote-collector-client-common-@project.version@.jar, \
-          thermostat-gc-remote-collector-client-swing-@project.version@.jar, \
           thermostat-osgi-process-handler-@project.version@.jar, \
-          thermostat-numa-common-@project.version@.jar, \
-          thermostat-numa-client-core-@project.version@.jar, \
-          thermostat-numa-client-swing-@project.version@.jar, \
           httpcomponents-core.jar, \
           httpcomponents-client.jar, \
           netty.jar
--- a/distribution/config/commands/vm-stat.properties	Tue Feb 26 13:33:52 2013 -0500
+++ b/distribution/config/commands/vm-stat.properties	Tue Feb 26 15:31:32 2013 -0500
@@ -1,8 +1,4 @@
 bundles = thermostat-client-cli-${project.version}.jar, \
-          thermostat-vm-cpu-common-${project.version}.jar, \
-          thermostat-vm-cpu-client-cli-${project.version}.jar, \
-          thermostat-vm-memory-common-${project.version}.jar, \
-          thermostat-vm-memory-client-cli-${project.version}.jar, \
           thermostat-storage-mongodb-${project.version}.jar, \
           thermostat-web-common-${project.version}.jar, \
           thermostat-web-client-${project.version}.jar, \
--- a/distribution/config/commands/webservice.properties	Tue Feb 26 13:33:52 2013 -0500
+++ b/distribution/config/commands/webservice.properties	Tue Feb 26 15:31:32 2013 -0500
@@ -4,15 +4,6 @@
           thermostat-web-server-@project.version@.jar, \
           thermostat-web-common-@project.version@.jar, \
           thermostat-storage-mongodb-${project.version}.jar, \
-          thermostat-host-cpu-common-${project.version}.jar, \
-          thermostat-host-memory-common-${project.version}.jar, \
-          thermostat-vm-cpu-common-${project.version}.jar, \
-          thermostat-vm-memory-common-${project.version}.jar, \
-          thermostat-vm-gc-common-${project.version}.jar, \
-          thermostat-vm-classstat-common-${project.version}.jar, \
-          thermostat-vm-heap-analysis-common-${project.version}.jar, \
-          thermostat-thread-collector-@project.version@.jar, \
-          thermostat-numa-common-@project.version@.jar, \
           mongo.jar, \
           commons-beanutils.jar, \
           commons-codec.jar, \
--- a/distribution/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -54,7 +54,7 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <main.basedir>${project.basedir}/..</main.basedir>
   </properties>
-
+  
   <build>
     <plugins>
       <!-- skip unit test run, tests to be executed during integration-test -->
@@ -78,20 +78,38 @@
         </executions>
       </plugin>
       <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.4</version>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <appendAssemblyId>false</appendAssemblyId> 
+        </configuration>
         <executions>
           <execution>
-            <id>copy-deps</id>
+            <id>assemble-core</id>
+            <configuration>
+              <descriptors>
+                <descriptor>assembly/core-assembly.xml</descriptor>
+              </descriptors>
+              <finalName>libs</finalName>
+              <attach>false</attach>
+            </configuration>
             <phase>package</phase>
             <goals>
-              <goal>copy-dependencies</goal>
+              <goal>single</goal>
             </goals>
+          </execution>
+          <execution>
+            <id>assemble-all-plugins</id>
             <configuration>
-              <excludeTransitive>false</excludeTransitive>
-              <excludeGroupIds>org.osgi,junit,org.hamcrest</excludeGroupIds>
-              <outputDirectory>${project.build.directory}/libs</outputDirectory>
+              <descriptors>
+                <descriptor>assembly/all-plugin-assembly.xml</descriptor>
+              </descriptors>
+              <finalName>plugins</finalName>
+              <attach>false</attach>
             </configuration>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
           </execution>
         </executions>
       </plugin>
@@ -342,121 +360,6 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-overview-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-overview-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-cpu-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-cpu-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-cpu-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-memory-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-memory-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-host-memory-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-overview-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-overview-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-cpu-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-cpu-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-cpu-client-cli</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-cpu-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-gc-client-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-gc-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-gc-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-classstat-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-classstat-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-memory-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-memory-client-cli</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-memory-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-heap-analysis-client-swing</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
         <groupId>com.redhat.thermostat</groupId>
         <artifactId>thermostat-osgi-living-vm-filter-swing</artifactId>
         <version>${project.version}</version>
@@ -478,11 +381,6 @@
     </dependency>
     <dependency>
       <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-vm-heap-analysis-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.redhat.thermostat</groupId>
       <artifactId>thermostat-killvm-agent</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -531,72 +429,82 @@
       <artifactId>jetty-webapp</artifactId>
       <version>8.1.5.v20120716</version>
     </dependency>
-
-    <!--  thread plugin -->
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-thread-client-common</artifactId>
-        <version>${project.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-thread-client-controllers</artifactId>
-        <version>${project.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-thread-client-swing</artifactId>
-        <version>${project.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-thread-collector</artifactId>
-        <version>${project.version}</version>
-    </dependency>      
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-thread-harvester</artifactId>
-        <version>${project.version}</version>
-    </dependency>
-     
     <dependency>
         <groupId>com.redhat.thermostat</groupId>
         <artifactId>thermostat-system-backend</artifactId>
         <version>${project.version}</version>
     </dependency>
     
-    <!-- new GC plugin -->
+    <!-- Plugins -->
+    <!-- Be sure to add the distribution module of your plugin below
+         with type "zip", and also to assembly/all-plugin-assembly.xml -->
     <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-gc-remote-collector-common</artifactId>
-        <version>${project.version}</version>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-cpu-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-memory-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
     </dependency>
     <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-gc-remote-collector-client-common</artifactId>
-        <version>${project.version}</version>
-    </dependency>    
-    <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-gc-remote-collector-client-swing</artifactId>
-        <version>${project.version}</version>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-overview-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
     </dependency>
     <dependency>
-        <groupId>com.redhat.thermostat</groupId>
-        <artifactId>thermostat-gc-remote-collector-command</artifactId>
-        <version>${project.version}</version>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-numa-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
     </dependency>
-         
     <dependency>
       <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-numa-agent</artifactId>
+      <artifactId>thermostat-thread-distribution</artifactId>
       <version>${project.version}</version>
+      <type>zip</type>
     </dependency>
     <dependency>
       <groupId>com.redhat.thermostat</groupId>
-      <artifactId>thermostat-numa-client-swing</artifactId>
+      <artifactId>thermostat-vm-classstat-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-gc-distribution</artifactId>
       <version>${project.version}</version>
+      <type>zip</type>
     </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-overview-distribution</artifactId>
+      <version>${project.version}</version>
+      <type>zip</type>
+    </dependency>
+    
   </dependencies>
 </project>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-cpu/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-host-cpu-common-${project.version}.jar</bundle>
+        <bundle>thermostat-host-cpu-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-host-cpu-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-host-cpu-common-${project.version}.jar</bundle>
+        <bundle>thermostat-host-cpu-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-host-cpu-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-cpu/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-host-cpu</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-host-cpu-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat Host CPU plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>host-cpu</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+      are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-cpu-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-cpu-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-cpu-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-cpu-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/host-cpu/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/host-cpu/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -55,6 +55,7 @@
     <module>common</module>
     <module>client-core</module>
     <module>client-swing</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-memory/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-host-memory-common-${project.version}.jar</bundle>
+        <bundle>thermostat-host-memory-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-host-memory-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-host-memory-common-${project.version}.jar</bundle>
+        <bundle>thermostat-host-memory-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-host-memory-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-memory/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-host-memory</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-host-memory-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat Host Memory plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>host-memory</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-memory-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-memory-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-memory-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-memory-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/host-memory/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/host-memory/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -55,6 +55,7 @@
     <module>client-core</module>
     <module>client-swing</module>
     <module>common</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-overview/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-host-overview-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-host-overview-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host-overview/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-host-overview</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-host-overview-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat Host Overview plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>host-overview</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-overview-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-host-overview-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/host-overview/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/host-overview/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -53,6 +53,7 @@
   <modules>
     <module>client-core</module>
     <module>client-swing</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java	Tue Feb 26 13:33:52 2013 -0500
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java	Tue Feb 26 15:31:32 2013 -0500
@@ -114,6 +114,7 @@
     public PluginConfiguration parse(String pluginName, InputStream configurationStream) {
         try {
             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            factory.setIgnoringComments(true);
             DocumentBuilder builder = factory.newDocumentBuilder();
             builder.setErrorHandler(new ConfigurationParserErrorHandler());
             Document xmlDoc = builder.parse(configurationStream);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/numa/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-numa-common-${project.version}.jar</bundle>
+        <bundle>thermostat-numa-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-numa-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-numa-common-${project.version}.jar</bundle>
+        <bundle>thermostat-numa-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-numa-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/numa/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-numa</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-numa-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat NUMA plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>numa</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-numa-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-numa-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-numa-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-numa-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/numa/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/numa/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -55,6 +55,7 @@
     <module>common</module>
     <module>client-core</module>
     <module>client-swing</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- a/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -119,6 +119,7 @@
 
   <modules>
     <module>annotations</module>
+    <module>assembly</module>
     <module>distribution</module>
     <module>main</module>
     <module>launcher</module>
@@ -199,6 +200,11 @@
           <artifactId>maven-bundle-plugin</artifactId>
           <version>1.4.0</version>
         </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>2.3</version>
+        </plugin>
         <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
         <plugin>
           <groupId>org.eclipse.m2e</groupId>
@@ -248,7 +254,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-assembly-plugin</artifactId>
-        <version>2.3</version>
+        <inherited>false</inherited>
         <configuration>
           <descriptors>
             <descriptor>src/main/assembly/src-tarball.xml</descriptor>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/thread/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-thread-collector-${project.version}.jar</bundle>
+        <bundle>thermostat-thread-client-swing-${project.version}.jar</bundle>
+        <bundle>thermostat-thread-client-controllers-${project.version}.jar</bundle>
+        <bundle>thermostat-thread-client-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-thread-collector-${project.version}.jar</bundle>
+        <bundle>thermostat-thread-harvester-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-thread-collector-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/thread/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-thread</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-thread-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat Thread plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>thread</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-thread-collector</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-thread-client-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-thread-client-controllers</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-thread-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-thread-harvester</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/thread/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/thread/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -64,6 +64,7 @@
     <module>client-common</module>
     <module>client-swing</module>
     <module>client-controllers</module>
+    <module>distribution</module>
   </modules>
 </project>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-classstat/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-classstat-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-classstat-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-classstat-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-vm-classstat-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-classstat-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-vm-classstat-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+  <!-- TODO: Need to express dependency on vm-memory-common -->
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-classstat/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-classstat</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-classstat-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM ClassStat plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-classstat</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-classstat-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-classstat-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-classstat-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-classstat-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-classstat/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-classstat/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -55,6 +55,7 @@
     <module>client-core</module>
     <module>client-swing</module>
     <module>common</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-cpu/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-cpu-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-cpu-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-cpu-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-vm-cpu-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-cpu-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-vm-cpu-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>vm-stat</name>
+      <bundles>
+        <bundle>thermostat-vm-cpu-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-cpu-client-cli-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-cpu/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-cpu</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-cpu-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM CPU plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-cpu</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-client-cli</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-cpu-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-cpu/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-cpu/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -56,6 +56,7 @@
     <module>client-core</module>
     <module>client-swing</module>
     <module>common</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-gc/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-gc-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-gc-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-gc-client-swing-${project.version}.jar</bundle>
+        <bundle>thermostat-gc-remote-collector-common-${project.version}.jar</bundle>
+        <bundle>thermostat-gc-remote-collector-client-common-${project.version}.jar</bundle>
+        <bundle>thermostat-gc-remote-collector-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-vm-gc-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-gc-agent-${project.version}.jar</bundle>
+        <bundle>thermostat-gc-remote-collector-common-${project.version}.jar</bundle>
+        <bundle>thermostat-gc-remote-collector-command-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-vm-gc-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+  <!-- TODO: Need to express dependency on vm-memory-common -->
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-gc/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-gc</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-gc-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM GC plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-gc</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-gc-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-gc-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-gc-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-gc-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <!-- Remote GC -->
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-gc-remote-collector-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-gc-remote-collector-command</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-gc-remote-collector-client-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-gc-remote-collector-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-gc/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-gc/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -55,6 +55,7 @@
     <module>client-core</module>
     <module>client-swing</module>
     <module>common</module>
+    <module>distribution</module>
     <module>remote-collector-command</module>
     <module>remote-collector-client-common</module>
     <module>remote-collector-client-swing</module>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-heap-analysis/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- TODO: Move and declare new commands here -->
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-heap-analysis/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-heap-analysis</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-heap-analysis-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM Heap Analysis plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-heap-analysis</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-command</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-heap-analysis-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-heap-analysis/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-heap-analysis/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -56,6 +56,7 @@
     <module>client-swing</module>
     <module>command</module>
     <module>common</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-memory/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-memory-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-memory-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-memory-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>agent</name>
+      <bundles>
+        <bundle>thermostat-vm-memory-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-memory-agent-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <!-- Requires all storage entity classes to be loaded -->
+    <command type="extends">
+      <name>webservice</name>
+      <bundles>
+        <bundle>thermostat-vm-memory-common-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+    <command type="extends">
+      <name>vm-stat</name>
+      <bundles>
+        <bundle>thermostat-vm-memory-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-memory-client-cli-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+  <!-- TODO: Express dependency on remote GC bundles -->
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-memory/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-memory</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-memory-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM Memory plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-memory</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-client-cli</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-memory-agent</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-memory/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-memory/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -56,6 +56,7 @@
     <module>client-core</module>
     <module>client-swing</module>
     <module>common</module>
+    <module>distribution</module>
   </modules>
 
 </project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-overview/distribution/plugin.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<plugin>
+  <commands>
+    <command type="extends">
+      <name>gui</name>
+      <bundles>
+        <bundle>thermostat-vm-overview-client-core-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-overview-client-swing-${project.version}.jar</bundle>
+      </bundles>
+    </command>
+  </commands>
+</plugin>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vm-overview/distribution/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+ Copyright 2012, 2013 Red Hat, Inc.
+
+ This file is part of Thermostat.
+
+ Thermostat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Thermostat is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Thermostat; see the file COPYING.  If not see
+ <http://www.gnu.org/licenses />.
+
+ Linking this code with other modules is making a combined work
+ based on this code.  Thus, the terms and conditions of the GNU
+ General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this code give
+ you permission to link this code with independent modules to
+ produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also
+ meet, for each linked independent module, the terms and conditions
+ of the license of that module.  An independent module is a module
+ which is not derived from or based on this code.  If you modify
+ this code, you may extend this exception to your version of the
+ library, but you are not obligated to do so.  If you do not wish
+ to do so, delete this exception statement from your version.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>com.redhat.thermostat</groupId>
+    <artifactId>thermostat-vm-overview</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>thermostat-vm-overview-distribution</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Thermostat VM Overview plugin distribution</name>
+  
+  <properties>
+    <thermostat.plugin>vm-overview</thermostat.plugin>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>com.redhat.thermostat</groupId>
+            <artifactId>thermostat-assembly</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>plugin-assembly</descriptorRef>
+          </descriptorRefs>
+          <appendAssemblyId>false</appendAssemblyId>
+        </configuration>
+        <executions>
+          <execution>
+            <id>assemble-plugin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <!-- Explicitly list all plug-in artifacts, transitive dependencies
+       are not included in assembly. -->
+  <dependencies>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-overview-client-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.redhat.thermostat</groupId>
+      <artifactId>thermostat-vm-overview-client-swing</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
+
--- a/vm-overview/pom.xml	Tue Feb 26 13:33:52 2013 -0500
+++ b/vm-overview/pom.xml	Tue Feb 26 15:31:32 2013 -0500
@@ -53,6 +53,7 @@
   <modules>
     <module>client-core</module>
     <module>client-swing</module>
+    <module>distribution</module>
   </modules>
 
 </project>