changeset 2443:7d425e87140c

Integrate dependency analyzer into launcher Reviewed-by: jerboaa, neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2016-September/020797.html
author Joshua Matsuoka <jmatsuok@redhat.com>
date Tue, 06 Sep 2016 11:58:43 -0400
parents 7228aa5e2103
children 386c025be97a
files dependency-tool/distribution/thermostat-plugin.xml dev/schema-info-command/distribution/thermostat-plugin.xml dev/storage-populator/distribution/thermostat-plugin.xml distribution/packaging/fedora/0001_shared_fix_bundle_loading.patch killvm/distribution/thermostat-plugin.xml launcher/src/main/java/com/redhat/thermostat/launcher/internal/BundleManagerImpl.java launcher/src/main/java/com/redhat/thermostat/launcher/internal/DependencyManager.java launcher/src/main/java/com/redhat/thermostat/launcher/internal/DependencyResolver.java launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java launcher/src/test/java/com/redhat/thermostat/launcher/internal/DependencyManagerTest.java launcher/src/test/java/com/redhat/thermostat/launcher/internal/LauncherImplTest.java local/distribution/thermostat-plugin.xml notes/distribution/thermostat-plugin.xml platform/distribution/thermostat-plugin.xml setup/distribution/thermostat-plugin.xml storage-profile/distribution/thermostat-plugin.xml thermostat-gui/distribution/thermostat-plugin.xml thread/distribution/thermostat-plugin.xml validate-command/distribution/thermostat-plugin.xml vm-byteman/distribution/thermostat-plugin.xml vm-find/distribution/thermostat-plugin.xml vm-gc/distribution/thermostat-plugin.xml vm-heap-analysis/distribution/thermostat-plugin.xml vm-profiler/distribution/thermostat-plugin.xml web/endpoint-plugin/distribution/thermostat-plugin.xml
diffstat 25 files changed, 656 insertions(+), 774 deletions(-) [+]
line wrap: on
line diff
--- a/dependency-tool/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/dependency-tool/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -93,10 +93,6 @@
                     <symbolic-name>com.redhat.thermostat.tools.dependency</symbolic-name>
                     <version>${project.version}</version>
                 </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.collections</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
             </bundles>
         </command>
     </commands>
--- a/dev/schema-info-command/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/dev/schema-info-command/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -49,22 +49,10 @@
         <environment>shell</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.schemainfo.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.storage.core</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/dev/storage-populator/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/dev/storage-populator/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -63,21 +63,10 @@
         <environment>shell</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.populator</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.thread.collector</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/distribution/packaging/fedora/0001_shared_fix_bundle_loading.patch	Wed Sep 07 17:57:58 2016 -0400
+++ b/distribution/packaging/fedora/0001_shared_fix_bundle_loading.patch	Tue Sep 06 11:58:43 2016 -0400
@@ -10,18 +10,6 @@
          <bundle><symbolic-name>com.google.gson</symbolic-name><version>${symbol_dollar}{gson.version}</version></bundle>
        </bundles>
      </command>
-diff --git a/dev/schema-info-command/distribution/thermostat-plugin.xml b/dev/schema-info-command/distribution/thermostat-plugin.xml
---- a/dev/schema-info-command/distribution/thermostat-plugin.xml
-+++ b/dev/schema-info-command/distribution/thermostat-plugin.xml
-@@ -63,7 +63,7 @@
-         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-       </bundles>
-     </command>
 diff --git a/distribution/config/commands/agent-info.properties b/distribution/config/commands/agent-info.properties
 --- a/distribution/config/commands/agent-info.properties
 +++ b/distribution/config/commands/agent-info.properties
@@ -160,26 +148,6 @@
  
  summary = show various statistics about a VM
  
-diff --git a/killvm/distribution/thermostat-plugin.xml b/killvm/distribution/thermostat-plugin.xml
---- a/killvm/distribution/thermostat-plugin.xml
-+++ b/killvm/distribution/thermostat-plugin.xml
-@@ -74,13 +74,15 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-   </commands>
 diff --git a/main/src/main/resources/com/redhat/thermostat/main/internal/bootstrapbundles.properties b/main/src/main/resources/com/redhat/thermostat/main/internal/bootstrapbundles.properties
 --- a/main/src/main/resources/com/redhat/thermostat/main/internal/bootstrapbundles.properties
 +++ b/main/src/main/resources/com/redhat/thermostat/main/internal/bootstrapbundles.properties
@@ -195,7 +163,7 @@
 diff --git a/pom.xml b/pom.xml
 --- a/pom.xml
 +++ b/pom.xml
-@@ -251,6 +251,8 @@
+@@ -271,6 +271,8 @@
      <felix.scr.version>1.8.2</felix.scr.version>
      <felix.scr.annotations.version>1.9.12</felix.scr.annotations.version>
      <kxml2.version>2.3.0</kxml2.version>
@@ -204,239 +172,3 @@
  
      <netty.version>4.0.28.Final</netty.version>
      <httpcomponents.core.version>4.3.2</httpcomponents.core.version>
-diff --git a/setup/distribution/thermostat-plugin.xml b/setup/distribution/thermostat-plugin.xml
---- a/setup/distribution/thermostat-plugin.xml
-+++ b/setup/distribution/thermostat-plugin.xml
-@@ -77,6 +77,8 @@
-         <bundle><symbolic-name>com.redhat.thermostat.internal.utils.laf</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.plugin.validator</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.process</symbolic-name><version>${project.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-   </commands>
-diff --git a/storage-profile/distribution/thermostat-plugin.xml b/storage-profile/distribution/thermostat-plugin.xml
---- a/storage-profile/distribution/thermostat-plugin.xml
-+++ b/storage-profile/distribution/thermostat-plugin.xml
-@@ -70,9 +70,9 @@
-         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-         <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-diff --git a/vm-find/distribution/thermostat-plugin.xml b/vm-find/distribution/thermostat-plugin.xml
---- a/vm-find/distribution/thermostat-plugin.xml
-+++ b/vm-find/distribution/thermostat-plugin.xml
-@@ -220,13 +220,15 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-   </commands>
-diff --git a/vm-gc/distribution/thermostat-plugin.xml b/vm-gc/distribution/thermostat-plugin.xml
---- a/vm-gc/distribution/thermostat-plugin.xml
-+++ b/vm-gc/distribution/thermostat-plugin.xml
-@@ -76,13 +76,15 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -138,13 +140,15 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-   </commands>
-diff --git a/vm-heap-analysis/distribution/thermostat-plugin.xml b/vm-heap-analysis/distribution/thermostat-plugin.xml
---- a/vm-heap-analysis/distribution/thermostat-plugin.xml
-+++ b/vm-heap-analysis/distribution/thermostat-plugin.xml
-@@ -81,7 +81,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -90,6 +90,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -143,7 +145,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -152,6 +154,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -208,7 +212,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -217,6 +221,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -267,7 +273,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -276,6 +282,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -326,7 +334,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -335,6 +343,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -385,7 +395,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -394,6 +404,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-     <command>
-@@ -437,7 +449,7 @@
-         <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-@@ -446,6 +458,8 @@
-         <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-         <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-         <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jcommon</symbolic-name><version>${jcommon.osgi.version}</version></bundle>
-+        <bundle><symbolic-name>org.jfree.jfreechart</symbolic-name><version>${jfreechart.osgi.version}</version></bundle>
-       </bundles>
-     </command>
-   </commands>
-diff --git a/vm-profiler/distribution/thermostat-plugin.xml b/vm-profiler/distribution/thermostat-plugin.xml
---- a/vm-profiler/distribution/thermostat-plugin.xml
-+++ b/vm-profiler/distribution/thermostat-plugin.xml
-@@ -92,7 +92,7 @@
-                 <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-                 <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-                 <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--                <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+                <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.mime.version}</version></bundle>
-             </bundles>
-         </command>
-     </commands>
-diff --git a/web/endpoint-plugin/distribution/thermostat-plugin.xml b/web/endpoint-plugin/distribution/thermostat-plugin.xml
---- a/web/endpoint-plugin/distribution/thermostat-plugin.xml
-+++ b/web/endpoint-plugin/distribution/thermostat-plugin.xml
-@@ -73,7 +73,7 @@
-         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-         <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
--        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-+        <bundle><symbolic-name>org.apache.httpcomponents.httpmime</symbolic-name><version>${httpcomponents.httpmime.version}</version></bundle>
-         <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.process</symbolic-name><version>${project.version}</version></bundle>
-         <bundle><symbolic-name>com.redhat.thermostat.agent.cli</symbolic-name><version>${project.version}</version></bundle>
--- a/killvm/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/killvm/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -60,27 +60,9 @@
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.killvm.command</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.killvm.common</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/BundleManagerImpl.java	Wed Sep 07 17:57:58 2016 -0400
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/BundleManagerImpl.java	Tue Sep 06 11:58:43 2016 -0400
@@ -61,6 +61,8 @@
 import org.osgi.framework.Version;
 import org.osgi.framework.launch.Framework;
 
+
+
 import com.redhat.thermostat.common.utils.LoggingUtils;
 import com.redhat.thermostat.launcher.BundleInformation;
 import com.redhat.thermostat.launcher.BundleManager;
@@ -70,6 +72,7 @@
 public class BundleManagerImpl extends BundleManager {
 
     private static final Logger logger = LoggingUtils.getLogger(BundleManagerImpl.class);
+    private final String SYSTEM_BSN = getFramework(BundleManagerImpl.class).getSymbolicName();
 
     // Bundle Name and version -> path (with symlinks resolved)
     // Match FrameworkProvider which uses canonical/symlink-resolved paths. If
@@ -173,12 +176,13 @@
             } else {
                 bundlePath = known.get(info);
             }
-
             if (bundlePath == null) {
                 logger.warning("no known bundle matching " + info.toString());
                 continue;
             }
-            paths.add(bundlePath.toFile().getCanonicalFile().toURI().toString());
+            if (!(info.getName().equals(SYSTEM_BSN))) {
+                paths.add(bundlePath.toFile().getCanonicalFile().toURI().toString());
+            }
         }
         loadBundlesByPath(paths);
     }
@@ -211,7 +215,6 @@
     void loadBundlesByPath(List<String> requiredBundles) throws BundleException, IOException {
         Framework framework = getFramework(this.getClass());
         BundleContext context = framework.getBundleContext();
-
         List<String> bundlesToLoad = new ArrayList<>();
         if (requiredBundles != null) {
             for (String resource : requiredBundles) {
@@ -228,7 +231,7 @@
         return (bundle != null) && (bundle.getState() == Bundle.ACTIVE);
     }
 
-    private Framework getFramework(Class<?> cls) {
+    private static Framework getFramework(Class<?> cls) {
         return (Framework) FrameworkUtil.getBundle(cls).getBundleContext().getBundle(0);
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/DependencyManager.java	Tue Sep 06 11:58:43 2016 -0400
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2012-2016 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.
+ */
+
+package com.redhat.thermostat.launcher.internal;
+
+import com.redhat.thermostat.shared.config.CommonPaths;
+import com.redhat.thermostat.launcher.BundleInformation;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Set;
+import java.util.Map;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.HashMap;
+import java.util.Stack;
+import java.util.Collections;
+
+public class DependencyManager {
+
+    private final DependencyResolver handler;
+    private final List<BundleInformation> discovered;
+    private final Map<BundleInformation, Set<BundleInformation>> outgoing;
+    private final Map<BundleInformation, Set<BundleInformation>> incoming;
+    private List<Path> locations;
+
+    public DependencyManager(CommonPaths paths) {
+        File systemPluginRoot = paths.getSystemPluginRoot();
+        File userPluginRoot = paths.getUserPluginRoot();
+        File systemLibRoot = paths.getSystemLibRoot();
+        locations = new ArrayList<>();
+        locations.add(systemPluginRoot.toPath());
+        locations.add(userPluginRoot.toPath());
+        // System lib root shall not be scanned recursively.
+        for (File f: systemLibRoot.listFiles()) {
+            locations.add(f.toPath());
+        }
+        handler = new DependencyResolver(locations);
+        outgoing = new HashMap<>(handler.getOutgoing());
+        incoming = new HashMap<>(handler.getIncoming());
+        discovered = new ArrayList<>();
+    }
+
+    /*****
+     * Sort the bundle dependencies topologically, that is traverse the dependency graph
+     * starting from the given node ensuring that there are no incoming dependencies for each
+     * bundle.
+     *
+     * Uses Kahn's Algorithm
+     *
+     * @param b Bundle to start from
+     * @return A topologically sorted list of bundles
+     */
+    public List<BundleInformation> getDependencies(BundleInformation b) {
+        if (outgoing == null || incoming == null || !outgoing.containsKey(b)) {
+            return new LinkedList<>();
+        }
+        buildSubgraph(b);
+        LinkedList<BundleInformation> sorted = new LinkedList<>();
+        LinkedList<BundleInformation> queue = new LinkedList<>();
+        queue.add(b);
+        while (!queue.isEmpty()) {
+            BundleInformation n = queue.remove(0);
+            sorted.addLast(n);
+            Set<BundleInformation> source = getOutgoingRelationShips(n);
+            List<BundleInformation> outgoingRels = new LinkedList<>(source);
+            for (BundleInformation bundle : outgoingRels) {
+                removeEdge(n, bundle);
+                if (hasNoIncomingEdge(bundle)) {
+                    queue.addLast(bundle);
+                }
+            }
+        }
+        return sorted;
+    }
+
+    private Set<BundleInformation> getOutgoingRelationShips(BundleInformation key) {
+        if (outgoing.get(key) == null) {
+            return Collections.emptySet();
+        }
+        return outgoing.get(key);
+    }
+
+    private Set<BundleInformation> getIncomingRelationShips(BundleInformation key) {
+        if (incoming.get(key) == null) {
+            return Collections.emptySet();
+        }
+        return incoming.get(key);
+    }
+
+    private void removeEdge(BundleInformation from, BundleInformation to) {
+        outgoing.get(from).remove(to);
+        incoming.get(to).remove(from);
+    }
+
+    private boolean hasNoIncomingEdge(BundleInformation key) {
+        if (getIncomingRelationShips(key).isEmpty()) {
+            return true;
+        }
+        for (BundleInformation b : getIncomingRelationShips(key)) {
+            if (discovered.contains(b)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private void buildSubgraph(BundleInformation start) {
+        Stack<BundleInformation> stack = new Stack<>();
+        stack.push(start);
+        while (!stack.isEmpty()) {
+            BundleInformation current = stack.pop();
+            discovered.add(current);
+            if (outgoing.get(current) == null) {
+                continue;
+            }
+            for (BundleInformation b : outgoing.get(current)) {
+                if (!discovered.contains(b)) {
+                    stack.push(b);
+                }
+            }
+        }
+    }
+
+    protected List<Path> getLocations() {
+        return locations;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/DependencyResolver.java	Tue Sep 06 11:58:43 2016 -0400
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2012-2016 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.
+ */
+
+package com.redhat.thermostat.launcher.internal;
+
+import com.redhat.thermostat.common.utils.LoggingUtils;
+import com.redhat.thermostat.launcher.BundleInformation;
+import com.redhat.thermostat.launcher.PluginDirFileVisitor;
+
+import org.osgi.framework.Constants;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.PathMatcher;
+import java.nio.file.FileVisitor;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.Map;
+import java.util.List;
+import java.util.Set;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.ArrayList;
+import java.util.jar.Attributes;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class DependencyResolver {
+
+    private final Map<Path, BundleInformation> nodes;
+    private final Map<String, Path> exports;
+    private final Map<BundleInformation, List<String>> importsMap;
+    private final Map<BundleInformation, Set<BundleInformation>> outgoing;
+    private final Map<BundleInformation, Set<BundleInformation>> incoming;
+    private final Logger logger = LoggingUtils.getLogger(DependencyResolver.class);
+
+
+    public DependencyResolver(List<Path> paths) {
+        this.nodes = new HashMap<>();
+        this.exports = new HashMap<>();
+        this.importsMap = new HashMap<>();
+        this.outgoing = new HashMap<>();
+        this.incoming = new HashMap<>();
+        try {
+            final PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.jar");
+            FileVisitor visitor = new PluginDirFileVisitor() {
+                @Override
+                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+                    Path name = file.getFileName();
+                    if (name != null && matcher.matches(name)) {
+                        process(file);
+                    }
+
+                    return FileVisitResult.CONTINUE;
+                }
+            };
+            for (Path p : paths) {
+                Files.walkFileTree(p, visitor);
+            }
+        }
+        catch (IOException e){
+            logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
+        }
+        buildGraph();
+    }
+
+    protected Map<BundleInformation, Set<BundleInformation>> getOutgoing() {
+        return outgoing;
+    }
+
+    protected Map<BundleInformation, Set<BundleInformation>> getIncoming() {
+        return incoming;
+    }
+
+    protected void process(Path jar) {
+        try {
+            List<String> bImports = new ArrayList<>();
+            Manifest m = new JarFile(jar.toFile()).getManifest();
+            Attributes a = m.getMainAttributes();
+            String bundleName = a.getValue(Constants.BUNDLE_SYMBOLICNAME);
+            String bundleVersion = a.getValue(Constants.BUNDLE_VERSION);
+            String bundleImports = a.getValue(Constants.IMPORT_PACKAGE);
+            String bundleExports = a.getValue(Constants.EXPORT_PACKAGE);
+            if (bundleExports != null) {
+                List<String> exports = parseHeader(bundleExports);
+                for (String dep : exports) {
+                    this.exports.put(dep, jar);
+                }
+            }
+            if (bundleImports != null) {
+                List<String> imports = parseHeader(bundleImports);
+                for (String dep : imports) {
+                    bImports.add(dep);
+                }
+            }
+            BundleInformation bundle = new BundleInformation(bundleName, bundleVersion);
+            importsMap.put(bundle, bImports);
+            nodes.put(jar, bundle);
+        } catch (IOException e) {
+            logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
+        }
+    }
+
+    private void buildGraph() {
+        for (BundleInformation source : nodes.values()) {
+            List<String> bundleImports = importsMap.get(source);
+            for (String dep : bundleImports) {
+                Path who = exports.get(dep);
+                if (who != null) {
+                    BundleInformation destination = nodes.get(who);
+                    if (source.equals(destination)) {
+                        continue;
+                    }
+                    if (outgoing.get(source) == null) {
+                        outgoing.put(source, new HashSet<BundleInformation>());
+                    }
+                    if (incoming.get(destination) == null) {
+                        incoming.put(destination, new HashSet<BundleInformation>());
+                    }
+                    outgoing.get(source).add(destination);
+                    incoming.get(destination).add(source);
+                }
+            }
+        }
+    }
+
+    private List<String> parseHeader(String header) {
+        header = header.concat("\0");
+        List<String> packages = new ArrayList<>();
+        int index = 0;
+        int start = 0;
+
+        boolean invalid = false;
+        boolean inQuotes = false;
+        boolean newSubstring = true;
+
+        while (index < header.length()) {
+            char charAtIndex = header.charAt(index);
+            if (charAtIndex == '\"') {
+                inQuotes = !inQuotes;
+            }
+            if (!inQuotes) {
+                if (charAtIndex == '=') {
+                    invalid = true;
+                    newSubstring = false;
+                } else if (charAtIndex == ';' || charAtIndex == ',' || charAtIndex == '\0') {
+                    if (!invalid && !newSubstring) {
+                        packages.add(header.substring(start, index));
+                    }
+                    start = index + 1;
+                    invalid = false;
+                    newSubstring = true;
+                } else if (newSubstring) {
+                    if (!Character.isJavaIdentifierStart(charAtIndex)) {
+                        invalid = true;
+                    }
+                    newSubstring = false;
+                } else if (!Character.isJavaIdentifierPart(charAtIndex) && charAtIndex != '.') {
+                    invalid = true;
+                }
+            }
+            index++;
+        }
+        return packages;
+    }
+}
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java	Wed Sep 07 17:57:58 2016 -0400
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java	Tue Sep 06 11:58:43 2016 -0400
@@ -40,6 +40,7 @@
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Objects;
@@ -69,6 +70,7 @@
 import com.redhat.thermostat.common.config.ClientPreferences;
 import com.redhat.thermostat.common.tools.ApplicationState;
 import com.redhat.thermostat.common.utils.LoggingUtils;
+import com.redhat.thermostat.launcher.BundleInformation;
 import com.redhat.thermostat.launcher.BundleManager;
 import com.redhat.thermostat.launcher.InteractiveStorageCredentials;
 import com.redhat.thermostat.launcher.Launcher;
@@ -112,6 +114,7 @@
     private final CommandInfoSource commandInfoSource;
     private final CurrentEnvironment currentEnvironment;
     private final CommonPaths paths;
+    private final DependencyManager manager;
 
     private final ClientPreferences prefs;
     private final Keyring keyring;
@@ -140,6 +143,7 @@
         this.keyring = keyring;
         this.paths = Objects.requireNonNull(paths);
         this.sslConf = sslConf;
+        this.manager = new DependencyManager(paths);
 
         // We log this in the constructor so as to not log it multiple times when a command invokes
         // run() multiple times. This works since it is a singleton service.
@@ -320,7 +324,17 @@
         }
 
         try {
-            registry.loadBundlesByName(cmdInfo.getBundles());
+            Set<BundleInformation> bundlesToLoad = new HashSet<>(cmdInfo.getBundles());
+            logger.log(Level.FINE, "Beginning dependency analysis of " + cmdInfo.getName());
+            for (BundleInformation b : cmdInfo.getBundles()) {
+                bundlesToLoad.addAll(manager.getDependencies(b));
+            }
+            if (logger.isLoggable(Level.FINE)) {
+                for (BundleInformation b : bundlesToLoad) {
+                    logger.log(Level.FINE, "Loading Bundle: " + b);
+                }
+            }
+            registry.loadBundlesByName(new ArrayList<>(bundlesToLoad));
         } catch (BundleException | IOException e) {
             // If this happens we definitely need to do something about it, and the
             // trace will be immeasurably helpful in figuring out what is wrong.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/src/test/java/com/redhat/thermostat/launcher/internal/DependencyManagerTest.java	Tue Sep 06 11:58:43 2016 -0400
@@ -0,0 +1,202 @@
+/*
+ * Copyright 2012-2016 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.
+ */
+
+package com.redhat.thermostat.launcher.internal;
+
+import com.redhat.thermostat.launcher.BundleInformation;
+import com.redhat.thermostat.shared.config.CommonPaths;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.jar.Attributes;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
+import java.util.List;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertEquals;
+
+public class DependencyManagerTest {
+
+    private DependencyManager depManager;
+    private File underneathTheBridge;
+    private File userPluginRoot;
+    private File systemPluginRoot;
+
+    @Before
+    public void setUp() throws Exception {
+        CommonPaths paths = Mockito.mock(CommonPaths.class);
+        userPluginRoot = Files.createTempDirectory("userPluginRoot").toFile();
+        systemPluginRoot = Files.createTempDirectory("systemPluginRoot").toFile();
+        try {
+            underneathTheBridge = Files.createTempDirectory("underneathTheBridge").toFile();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        underneathTheBridge.deleteOnExit();
+        userPluginRoot.deleteOnExit();
+        systemPluginRoot.deleteOnExit();
+        Path a = createJar("a", null, underneathTheBridge.toPath());
+        Path b = createJar("b", "a", underneathTheBridge.toPath());
+        Path c = createJar("c", "b", underneathTheBridge.toPath());
+        Path d = createJar("d", "b,c", underneathTheBridge.toPath());
+        Path e = createJar("e", "d", underneathTheBridge.toPath());
+        when(paths.getUserPluginRoot()).thenReturn(userPluginRoot);
+        when(paths.getSystemPluginRoot()).thenReturn(systemPluginRoot);
+        when(paths.getSystemLibRoot()).thenReturn(underneathTheBridge);
+        depManager = new DependencyManager(paths);
+    }
+
+    @After
+    public void tearDown() {
+        try {
+            deleteDirectory(underneathTheBridge.toPath());
+            deleteDirectory(userPluginRoot.toPath());
+            deleteDirectory(systemPluginRoot.toPath());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testGetBundle() throws Exception {
+        ArrayList<BundleInformation> bundles = new ArrayList<>(depManager.getDependencies(new BundleInformation("d", "1.0")));
+        assertEquals(4, bundles.size());
+        assertEquals("d", bundles.get(0).getName());
+        assertEquals("1.0", bundles.get(0).getVersion());
+        assertEquals("c", bundles.get(1).getName());
+        assertEquals("1.0", bundles.get(1).getVersion());
+        assertEquals("b", bundles.get(2).getName());
+        assertEquals("1.0", bundles.get(2).getVersion());
+        assertEquals("a", bundles.get(3).getName());
+        assertEquals("1.0", bundles.get(3).getVersion());
+    }
+
+    @Test
+    public void testMismatchBundleVersion() throws Exception {
+        List<BundleInformation> bundles = depManager.getDependencies(new BundleInformation("d", "1.2"));
+        assertEquals(0, bundles.size());
+    }
+
+    @Test
+    public void testNonExistentDependency() {
+        List<BundleInformation> bundles = depManager.getDependencies(new BundleInformation("blob", "1.x"));
+        assertEquals(0, bundles.size());
+    }
+
+    /**
+     * The file visitor should scan system and user plugin roots
+     * recursively however it should not scan system lib root recursively.
+     */
+    @Test
+    public void testScannedLocations() {
+        CommonPaths paths = mock(CommonPaths.class);
+        File systemLibRoot = mock(File.class);
+        File[] libContents = {underneathTheBridge};
+        when(paths.getUserPluginRoot()).thenReturn(userPluginRoot);
+        when(paths.getSystemPluginRoot()).thenReturn(systemPluginRoot);
+        when(paths.getSystemLibRoot()).thenReturn(systemLibRoot);
+        when(systemLibRoot.listFiles()).thenReturn(libContents);
+        DependencyManager testManager = new DependencyManager(paths);
+        Mockito.verify(systemLibRoot, times(1)).listFiles();
+        assertEquals(3, testManager.getLocations().size());
+        assertEquals(systemPluginRoot.toPath(), testManager.getLocations().get(0));
+        assertEquals(userPluginRoot.toPath(), testManager.getLocations().get(1));
+        assertEquals(underneathTheBridge.toPath(), testManager.getLocations().get(2));
+    }
+
+    private Path createJar(String exportsDirective, String importDirective, Path base) throws Exception {
+        Manifest manifest = new Manifest();
+        manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
+        manifest.getMainAttributes().put(new Attributes.Name("Export-Package"), exportsDirective + ";");
+        if (importDirective != null) {
+                manifest.getMainAttributes().put(new Attributes.Name("Import-Package"), importDirective + ";");
+            }
+        Path path = Paths.get(base.toFile().getAbsoluteFile() + "/" + exportsDirective + ".jar");
+        manifest.getMainAttributes().put(new Attributes.Name("Bundle-SymbolicName"), exportsDirective);
+        manifest.getMainAttributes().put(new Attributes.Name("Bundle-Version"), "1.0");
+        FileOutputStream stream = new FileOutputStream(path.toFile());
+        JarOutputStream target = new JarOutputStream(stream, manifest);
+        target.close();
+        return path;
+    }
+
+    void deleteDirectory(Path dir) throws IOException {
+        Files.walkFileTree(dir, new FileVisitor<Path>() {
+
+            @Override
+            public FileVisitResult preVisitDirectory(Path dir,
+                                                     BasicFileAttributes attrs) throws IOException {
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFile(Path file,
+                                             BasicFileAttributes attrs) throws IOException {
+                Files.delete(file);
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFileFailed(Path file, IOException exc)
+                    throws IOException {
+                exc.printStackTrace();
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult postVisitDirectory(Path dir, IOException exc)
+                    throws IOException {
+                Files.delete(dir);
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+}
\ No newline at end of file
--- a/launcher/src/test/java/com/redhat/thermostat/launcher/internal/LauncherImplTest.java	Wed Sep 07 17:57:58 2016 -0400
+++ b/launcher/src/test/java/com/redhat/thermostat/launcher/internal/LauncherImplTest.java	Tue Sep 06 11:58:43 2016 -0400
@@ -49,6 +49,11 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -62,6 +67,7 @@
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
+import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -106,6 +112,9 @@
     private static final String name4 = "test4";
     private static SecurityManager secMan;
     private CommandInfo info1;
+    private File systemPluginRoot;
+    private File systemLibRoot;
+    private File userPluginRoot;
 
     @BeforeClass
     public static void beforeClassSetUp() {
@@ -284,6 +293,13 @@
         when(paths.getUserSetupCompleteStampFile()).thenReturn(setupFile);
         ClientPreferences prefs = new ClientPreferences(paths);
 
+        userPluginRoot = Files.createTempDirectory("userPluginRoot").toFile();
+        systemPluginRoot = Files.createTempDirectory("systemPluginRoot").toFile();
+        systemLibRoot = Files.createTempDirectory("systemLibRoot").toFile();
+        when(paths.getUserPluginRoot()).thenReturn(userPluginRoot);
+        when(paths.getSystemPluginRoot()).thenReturn(systemPluginRoot);
+        when(paths.getSystemLibRoot()).thenReturn(systemLibRoot);
+
         when(paths.getSystemThermostatHome()).thenReturn(mock(File.class));
         when(paths.getUserThermostatHome()).thenReturn(mock(File.class));
         sslConf = mock(SSLConfiguration.class);
@@ -291,6 +307,17 @@
                 environment, dbServiceFactory, version, prefs, keyring, paths, sslConf);
     }
 
+    @After
+    public void tearDown() {
+        try {
+            deleteDirectory(systemLibRoot.toPath());
+            deleteDirectory(systemPluginRoot.toPath());
+            deleteDirectory(userPluginRoot.toPath());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     private void setupCommandContextFactory() {
         sysBundle = mock(Bundle.class);
         bundleContext = new StubBundleContext();
@@ -608,6 +635,9 @@
         CommonPaths logPaths = mock(CommonPaths.class);
         when(logPaths.getUserThermostatHome()).thenReturn(mock(File.class));
         when(logPaths.getSystemThermostatHome()).thenReturn(mock(File.class));
+        when(logPaths.getUserPluginRoot()).thenReturn(userPluginRoot);
+        when(logPaths.getSystemLibRoot()).thenReturn(systemLibRoot);
+        when(logPaths.getSystemPluginRoot()).thenReturn(systemPluginRoot);
         
         try {
             assertFalse(handler.loggedThermostatHome);
@@ -761,6 +791,9 @@
         File fileWithAbsPath = mock(File.class);
         when(setupPaths.getSystemThermostatHome()).thenReturn(fileWithAbsPath);
         when(setupPaths.getUserThermostatHome()).thenReturn(fileWithAbsPath);
+        when(setupPaths.getSystemPluginRoot()).thenReturn(systemPluginRoot);
+        when(setupPaths.getSystemLibRoot()).thenReturn(systemLibRoot);
+        when(setupPaths.getUserPluginRoot()).thenReturn(userPluginRoot);
         final List<Pair<String[], Boolean>> runList = new ArrayList<>();
         launcher = new LauncherImpl(bundleContext, ctxFactory, registry, infos,
                                     new CommandSource(bundleContext), environment,
@@ -807,5 +840,37 @@
         
     }
 
+    void deleteDirectory(Path dir) throws IOException {
+        Files.walkFileTree(dir, new FileVisitor<Path>() {
+
+            @Override
+            public FileVisitResult preVisitDirectory(Path dir,
+                                                     BasicFileAttributes attrs) throws IOException {
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFile(Path file,
+                                             BasicFileAttributes attrs) throws IOException {
+                Files.delete(file);
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFileFailed(Path file, IOException exc)
+                    throws IOException {
+                exc.printStackTrace();
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult postVisitDirectory(Path dir, IOException exc)
+                    throws IOException {
+                Files.delete(dir);
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+
 }
 
--- a/local/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/local/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -55,8 +55,6 @@
       </environments>
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.local.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/notes/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/notes/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -83,29 +83,9 @@
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.notes.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.notes.client.cli</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
 
@@ -150,29 +130,9 @@
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.notes.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.notes.client.cli</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
 
@@ -216,29 +176,9 @@
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.notes.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.notes.client.cli</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
 
@@ -290,29 +230,9 @@
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.notes.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.notes.client.cli</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
 
--- a/platform/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/platform/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -70,15 +70,6 @@
                     <symbolic-name>com.redhat.thermostat.platform</symbolic-name>
                     <version>${project.version}</version>
                 </bundle>
-                <!-- deps -->
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.common.core</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.google.gson</symbolic-name>
-                    <version>${gson.version}</version>
-                </bundle>
             </bundles>
         </command>
     </commands>
--- a/setup/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/setup/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -70,13 +70,6 @@
       </environments>
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.setup.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.swing</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.internal.utils.laf</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.plugin.validator</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.process</symbolic-name><version>${project.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/storage-profile/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/storage-profile/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -65,20 +65,10 @@
         <environment>shell</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.profile</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/thermostat-gui/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/thermostat-gui/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -44,30 +44,6 @@
                     <symbolic-name>com.redhat.thermostat.application.gui</symbolic-name>
                     <version>${project.version}</version>
                 </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.ui.swing.components</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.platform</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.platform.swing.core</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.internal.utils.laf</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.client.core</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
-                <bundle>
-                    <symbolic-name>com.redhat.thermostat.client.swing</symbolic-name>
-                    <version>${project.version}</version>
-                </bundle>
             </bundles>
         </extension>
     </extensions>
--- a/thread/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/thread/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -47,10 +47,6 @@
         <bundle><symbolic-name>com.redhat.thermostat.thread.client.swing</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.thread.client.controller</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.thread.client.common</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.ui.swing.components</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.beans</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.collections</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.platform</symbolic-name><version>${project.version}</version></bundle>
       </bundles>
     </extension>
     <extension>
--- a/validate-command/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/validate-command/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -49,11 +49,7 @@
         <environment>shell</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.validate.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.plugin.validator</symbolic-name><version>${project.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/vm-byteman/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/vm-byteman/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -85,28 +85,11 @@
                 <environment>shell</environment>
             </environments>
             <bundles>
-                <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.byteman.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.byteman.client.cli</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-                <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
             </bundles>
         </command>
     </commands>
@@ -114,23 +97,8 @@
         <extension>
             <name>agent</name>
             <bundles>
-                <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.common</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.server</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.unixsocket.server</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.unixsocket.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.byteman.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.byteman.agent</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>org.jboss.byteman.agent.install</symbolic-name><version>${byteman.osgi-version}</version></bundle>
-                <bundle><symbolic-name>org.jboss.byteman.agent.submit</symbolic-name><version>${byteman.osgi-version}</version></bundle>
-                <bundle><symbolic-name>${jnr-unixsocket.bundle.symbolic.name}</symbolic-name><version>${jnr-unixsocket.bundle.version}</version></bundle>
-                <bundle><symbolic-name>${jnr-enxio.bundle.symbolic.name}</symbolic-name><version>${jnr-enxio.bundle.version}</version></bundle>
-                <bundle><symbolic-name>${jnr-constants.bundle.symbolic.name}</symbolic-name><version>${jnr-constants.version}</version></bundle>
-                <bundle><symbolic-name>${jnr-posix.bundle.symbolic.name}</symbolic-name><version>${jnr-posix.version}</version></bundle>
-                <bundle><symbolic-name>${jnr-ffi.bundle.symbolic.name}</symbolic-name><version>${jnr-ffi.version}</version></bundle>
-                <bundle><symbolic-name>${jnr-x86asm.bundle.symbolic.name}</symbolic-name><version>${jnr-x86asm.version}</version></bundle>
-                <bundle><symbolic-name>${jffi.bundle.symbolic.name}</symbolic-name><version>${jffi.version}</version></bundle>
-                <bundle><symbolic-name>${jffi-native.bundle.symbolic.name}</symbolic-name><version>${jffi.version}</version></bundle>
-                <bundle><symbolic-name>org.objectweb.asm</symbolic-name><version>${asm.version}</version></bundle>
             </bundles>
         </extension>
         <extension>
--- a/vm-find/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/vm-find/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -204,29 +204,9 @@
       </environments>
       <bundles>
         <bundle><symbolic-name>com.redhat.thermostat.vm.find.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.storage.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/vm-gc/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/vm-gc/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -62,27 +62,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.gc.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.gc.remote.client.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.gc.remote.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -124,27 +106,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.gc.remote.client.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.gc.remote.common.command</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.gc.common</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
       </bundles>
     </command>
   </commands>
--- a/vm-heap-analysis/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/vm-heap-analysis/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -67,29 +67,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -129,29 +109,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -194,29 +154,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -253,29 +193,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -312,29 +232,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -371,29 +271,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -423,29 +303,9 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </command>
   </commands>
@@ -458,11 +318,6 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.client.swing</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </extension>
     <extension>
@@ -471,8 +326,6 @@
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.hprof</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.vm.heap.analysis.agent</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>${lucene-core.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
-        <bundle><symbolic-name>${lucene-analysis.bundle.symbolic-name}</symbolic-name><version>${lucene.osgi-version}</version></bundle>
       </bundles>
     </extension>
   </extensions>
--- a/vm-profiler/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/vm-profiler/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -81,29 +81,12 @@
                 <environment>shell</environment>
             </environments>
             <bundles>
-                <bundle><symbolic-name>com.redhat.thermostat.client.cli</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.client.command</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.profiler.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.profiler.client.cli</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.vm.profiler.client.core</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
                 <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-                <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-                <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-                <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
             </bundles>
         </command>
     </commands>
--- a/web/endpoint-plugin/distribution/thermostat-plugin.xml	Wed Sep 07 17:57:58 2016 -0400
+++ b/web/endpoint-plugin/distribution/thermostat-plugin.xml	Tue Sep 06 11:58:43 2016 -0400
@@ -52,63 +52,13 @@
         <environment>cli</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
         <!-- Dependencies of the jetty-based web endpoint plugin -->
         <bundle><symbolic-name>com.redhat.thermostat.web.endpoint</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.server</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.http</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.util</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.io</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.webapp</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.security</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.servlet</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.xml</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.jaas</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>${javax.servlet.bsn}</symbolic-name><version>${jetty.javax.servlet.osgi.version}</version></bundle>
         <!-- Required for running agent on top of http.
              It should be the equivalent of $THERMOSTAT_HOME/etc/commands/agent.properties -->
-        <bundle><symbolic-name>com.redhat.thermostat.agent.core</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.common</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.client</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpcore</symbolic-name><version>${httpcomponents.core.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.httpcomponents.httpclient</symbolic-name><version>${httpcomponents.client.version}</version></bundle>
-        <bundle><symbolic-name>${osgi.compendium.bundle.symbolic-name}</symbolic-name><version>${osgi.compendium.osgi-version}</version></bundle>
-        <bundle><symbolic-name>com.google.gson</symbolic-name><version>${gson.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.process</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.cli</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.common.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.command</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.server</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.unixsocket.server</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.common</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.agent.ipc.unixsocket.common</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-unixsocket.bundle.symbolic.name}</symbolic-name><version>${jnr-unixsocket.bundle.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-enxio.bundle.symbolic.name}</symbolic-name><version>${jnr-enxio.bundle.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-constants.bundle.symbolic.name}</symbolic-name><version>${jnr-constants.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-posix.bundle.symbolic.name}</symbolic-name><version>${jnr-posix.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-ffi.bundle.symbolic.name}</symbolic-name><version>${jnr-ffi.version}</version></bundle>
-        <bundle><symbolic-name>${jnr-x86asm.bundle.symbolic.name}</symbolic-name><version>${jnr-x86asm.version}</version></bundle>
-        <bundle><symbolic-name>${jffi.bundle.symbolic.name}</symbolic-name><version>${jffi.version}</version></bundle>
-        <bundle><symbolic-name>${jffi-native.bundle.symbolic.name}</symbolic-name><version>${jffi.version}</version></bundle>
-        <bundle><symbolic-name>org.objectweb.asm</symbolic-name><version>${asm.version}</version></bundle>
-        <bundle><symbolic-name>org.objectweb.asm.commons</symbolic-name><version>${asm.version}</version></bundle>
-        <bundle><symbolic-name>org.objectweb.asm.util</symbolic-name><version>${asm.version}</version></bundle>
-        <bundle><symbolic-name>org.objectweb.asm.analysis</symbolic-name><version>${asm.version}</version></bundle>
-        <bundle><symbolic-name>org.objectweb.asm.tree</symbolic-name><version>${asm.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.killvm.agent</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.backend.system</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.storage.mongodb</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>org.mongodb.mongo-java-driver</symbolic-name><version>${mongo-driver.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.beanutils</symbolic-name><version>${commons-beanutils.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.codec</symbolic-name><version>${commons-codec.osgi-version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.collections</symbolic-name><version>${commons-collections.version}</version></bundle>
-        <bundle><symbolic-name>org.apache.commons.logging</symbolic-name><version>${commons-logging.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.common</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.buffer</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.codec</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.transport</symbolic-name><version>${netty.version}</version></bundle>
-        <bundle><symbolic-name>io.netty.handler</symbolic-name><version>${netty.version}</version></bundle>
       </bundles>
     </command>
     <command>
@@ -122,20 +72,7 @@
         <environment>cli</environment>
       </environments>
       <bundles>
-        <bundle><symbolic-name>com.redhat.thermostat.common.core</symbolic-name><version>${project.version}</version></bundle>
-        <bundle><symbolic-name>com.redhat.thermostat.configuration</symbolic-name><version>${project.version}</version></bundle>
         <bundle><symbolic-name>com.redhat.thermostat.web.endpoint</symbolic-name><version>${project.version}</version></bundle>
-
-        <bundle><symbolic-name>org.eclipse.jetty.server</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.http</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.util</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.io</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.webapp</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.security</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.servlet</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.xml</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>org.eclipse.jetty.jaas</symbolic-name><version>${jetty.version}</version></bundle>
-        <bundle><symbolic-name>${javax.servlet.bsn}</symbolic-name><version>${jetty.javax.servlet.osgi.version}</version></bundle>
      </bundles>
     </command>
   </commands>