changeset 1014:89add75f3b71

Convert Heap command.properties to plugin.xml This commit moves the definitions for the heap-related commands to the heap plugin's plugin.xml file. I have also updated the list-heap-dumps usage string to reflect that hostId and vmId are optional arguments, and fixed a spacing issue in the description for the logLevel built-in argument. Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-February/005933.html
author Elliott Baron <ebaron@redhat.com>
date Thu, 28 Feb 2013 12:17:32 -0500
parents 2bb2a1d1aa03
children 0fd6668bdfce
files distribution/config/commands/dump-heap.properties distribution/config/commands/find-objects.properties distribution/config/commands/find-root.properties distribution/config/commands/list-heap-dumps.properties distribution/config/commands/object-info.properties distribution/config/commands/save-heap-dump-to-file.properties distribution/config/commands/show-heap-histogram.properties launcher/src/main/resources/com/redhat/thermostat/launcher/internal/strings.properties vm-heap-analysis/distribution/plugin.xml
diffstat 9 files changed, 387 insertions(+), 256 deletions(-) [+]
line wrap: on
line diff
--- a/distribution/config/commands/dump-heap.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-bundles = thermostat-common-core-@project.version@.jar, \
-          thermostat-client-core-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = trigger a heap dump on the VM
-
-usage = dump-heap --hostId <host> --vmId <vm> [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = hostId, vmId, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-hostId.short = a
-hostId.long = hostId
-hostId.hasarg = true
-hostId.required = true
-hostId.description = the ID of the host to monitor
-
-vmId.short = v
-vmId.long = vmId
-vmId.hasarg = true
-vmId.required = true
-vmId.description = the ID of the VM to monitor
--- a/distribution/config/commands/find-objects.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-bundles = thermostat-client-core-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = Finds objects in a heapdump
-
-usage = find-objects [-d <url> [-u <user> -p <password>]] [-l <level>] --heapId <id> --limit <limit> <pattern>
-
-options = heapId, limit, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-heapId.short = h
-heapId.long = heapId
-heapId.hasarg = true
-heapId.required = true
-heapId.description = the ID of the heapdump to analyze
-
-limit.short = L
-limit.long = limit
-limit.hasarg = true
-limit.required = false
-limit.description = limit search to top N results, defaults to 10
--- a/distribution/config/commands/find-root.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-bundles = thermostat-client-core-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = finds the shortest path from an object to a GC root
-
-usage = find-root --heapId <heap> --objectId <object> [-a] [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = heapId, objectId, all, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-heapId.short = h
-heapId.long = heapId
-heapId.hasarg = true
-heapId.required = true
-heapId.description = the ID of the heapdump to analyze
-
-objectId.short = o
-objectId.long = objectId
-objectId.hasarg = true
-objectId.required = true
-objectId.description = the ID of the object to query
-
-all.short = a
-all.long = all
-all.hasarg = false
-all.required = false
-all.description = finds all paths to GC roots
--- a/distribution/config/commands/list-heap-dumps.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-bundles = thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-client-core-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = list all heap dumps
-
-usage = list-heap-dumps --hostId <host> --vmId <vm> [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = hostId, vmId, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-hostId.short = a
-hostId.long = hostId
-hostId.hasarg = true
-hostId.required = false
-hostId.description = the ID of the host to monitor
-
-vmId.short = v
-vmId.long = vmId
-vmId.hasarg = true
-vmId.required = false
-vmId.description = the ID of the VM to monitor
--- a/distribution/config/commands/object-info.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-bundles = thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-client-core-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = prints information about an object in a heap dump
-
-usage = object-info --heapId <heap> --objectId <object> [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = heapId, objectId, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-heapId.short = h
-heapId.long = heapId
-heapId.hasarg = true
-heapId.required = true
-heapId.description = the ID of the heapdump to analyze
-
-objectId.short = o
-objectId.long = objectId
-objectId.hasarg = true
-objectId.required = true
-objectId.description = the ID of the object to query
--- a/distribution/config/commands/save-heap-dump-to-file.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-bundles = thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-client-core-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = saves a heap dump to a local file
-
-usage = save-heap-dump-to-file --heapId <heap> --file <filename> [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = heapId, file, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-heapId.short = h
-heapId.long = heapId
-heapId.hasarg = true
-heapId.required = true
-heapId.description = the ID of the heapdump to analyze
-
-file.short = f
-file.long = file
-file.hasarg = true
-file.required = true
-file.description = the file name to save to
--- a/distribution/config/commands/show-heap-histogram.properties	Wed Feb 27 17:51:03 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-bundles = thermostat-storage-mongodb-${project.version}.jar, \
-          mongo.jar, \
-          commons-beanutils.jar, \
-          commons-codec.jar, \
-          commons-collections.jar, \
-          commons-logging.jar, \
-          thermostat-client-core-@project.version@.jar, \
-          thermostat-common-command-@project.version@.jar, \
-          thermostat-client-command-@project.version@.jar, \
-          thermostat-client-cli-@project.version@.jar, \
-          thermostat-vm-heap-analysis-common-@project.version@.jar, \
-          thermostat-vm-heap-analysis-command-@project.version@.jar, \
-          thermostat-web-common-${project.version}.jar, \
-          thermostat-web-client-${project.version}.jar, \
-          httpcomponents-core.jar, \
-          httpcomponents-client.jar, \
-          gson.jar, \
-          netty.jar
-
-description = show the heap histogram
-
-usage = show-heap-histogram --heapId <heap> [-d <url> [-u <user> -p <password>]] [-l <level>]
-
-options = heapId, AUTO_DB_OPTIONS, AUTO_LOG_OPTION
-
-heapId.short = h
-heapId.long = heapId
-heapId.hasarg = true
-heapId.required = true
-heapId.description = the ID of the heapdump to analyze
--- a/launcher/src/main/resources/com/redhat/thermostat/launcher/internal/strings.properties	Wed Feb 27 17:51:03 2013 -0500
+++ b/launcher/src/main/resources/com/redhat/thermostat/launcher/internal/strings.properties	Thu Feb 28 12:17:32 2013 -0500
@@ -10,7 +10,7 @@
 OPTION_DB_URL_DESC = connect to the given URL
 OPTION_USERNAME_DESC = the username to use for authentication
 OPTION_PASSWORD_DESC = the password to use for authentication
-OPTION_LOG_LEVEL_DESC = sets the log level for this invocation. Possible values\
- for <level> in decreasing severity are: SEVERE, WARNING, INFO, CONFIG, FINE,\
+OPTION_LOG_LEVEL_DESC = sets the log level for this invocation. Possible values \
+ for <logLevel> in decreasing severity are: SEVERE, WARNING, INFO, CONFIG, FINE, \
  FINER, FINEST and OFF
  
--- a/vm-heap-analysis/distribution/plugin.xml	Wed Feb 27 17:51:03 2013 -0500
+++ b/vm-heap-analysis/distribution/plugin.xml	Thu Feb 28 12:17:32 2013 -0500
@@ -61,6 +61,390 @@
         <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
       </bundles>
     </command>
-    <!-- TODO: Move and declare new commands here -->
+    <command type="provides">
+      <name>dump-heap</name>
+      <description>trigger a heap dump on the VM</description>
+      <usage>dump-heap --hostId &lt;host&gt; --vmId &lt;vm&gt; [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>a</short>
+          <long>hostId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the host to monitor</description>
+        </option>
+        <option>
+          <short>v</short>
+          <long>vmId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the VM to monitor</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>find-objects</name>
+      <description>finds objects in a heapdump</description>
+      <usage>find-objects [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;] --heapId &lt;id&gt; --limit &lt;limit&gt; &lt;pattern&gt;</usage>
+      <options>
+        <option>
+          <short>h</short>
+          <long>heapId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the heapdump to analyze</description>
+        </option>
+        <option>
+          <short>L</short>
+          <long>limit</long>
+          <hasArg>true</hasArg>
+          <required>false</required>
+          <description>limit search to top N results, defaults to 10</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>find-root</name>
+      <description>finds the shortest path from an object to a GC root</description>
+      <usage>find-root --heapId &lt;heap&gt; --objectId &lt;object&gt; [-a] [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>h</short>
+          <long>heapId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the heapdump to analyze</description>
+        </option>
+        <option>
+          <short>o</short>
+          <long>objectId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the object to query</description>
+        </option>
+        <option>
+          <short>a</short>
+          <long>all</long>
+          <hasArg>false</hasArg>
+          <required>false</required>
+          <description>finds all paths to GC roots</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>list-heap-dumps</name>
+      <description>list all heap dumps</description>
+      <usage>list-heap-dumps [--hostId &lt;host&gt;] [--vmId &lt;vm&gt;] [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>a</short>
+          <long>hostId</long>
+          <hasArg>true</hasArg>
+          <required>false</required>
+          <description>the ID of the host to monitor</description>
+        </option>
+        <option>
+          <short>v</short>
+          <long>vmId</long>
+          <hasArg>true</hasArg>
+          <required>false</required>
+          <description>the ID of the VM to monitor</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>object-info</name>
+      <description>prints information about an object in a heap dump</description>
+      <usage>object-info --heapId &lt;heap&gt; --objectId &lt;object&gt; [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>h</short>
+          <long>heapId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the heapdump to analyze</description>
+        </option>
+        <option>
+          <short>o</short>
+          <long>objectId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the object to query</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>save-heap-dump-to-file</name>
+      <description>saves a heap dump to a local file</description>
+      <usage>save-heap-dump-to-file --heapId &lt;heap&gt; --file &lt;filename&gt; [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>h</short>
+          <long>heapId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the heapdump to analyze</description>
+        </option>
+        <option>
+          <short>f</short>
+          <long>file</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the file name to save to</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
+    <command type="provides">
+      <name>show-heap-histogram</name>
+      <description>show the heap histogram</description>
+      <usage>show-heap-histogram --heapId &lt;heap&gt; [-d &lt;url&gt; [-u &lt;user&gt; -p &lt;password&gt;]] [-l &lt;level&gt;]</usage>
+      <options>
+        <option>
+          <short>h</short>
+          <long>heapId</long>
+          <hasArg>true</hasArg>
+          <required>true</required>
+          <description>the ID of the heapdump to analyze</description>
+        </option>
+        <option common="true">
+          <long>dbUrl</long>
+        </option>
+        <option common="true">
+          <long>username</long>
+        </option>
+        <option common="true">
+          <long>password</long>
+        </option>
+        <option common="true">
+          <long>logLevel</long>
+        </option>
+      </options>
+      <bundles>
+        <bundle>thermostat-vm-heap-analysis-common-${project.version}.jar</bundle>
+        <bundle>thermostat-vm-heap-analysis-command-${project.version}.jar</bundle>
+      </bundles>
+      <dependencies>
+        <dependency>thermostat-common-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-core-${project.version}.jar</dependency>
+        <dependency>thermostat-client-command-${project.version}.jar</dependency>
+        <dependency>thermostat-client-cli-${project.version}.jar</dependency>
+        <dependency>thermostat-storage-mongodb-${project.version}.jar</dependency>
+        <dependency>thermostat-web-common-${project.version}.jar</dependency>
+        <dependency>thermostat-web-client-${project.version}.jar</dependency>
+        <dependency>mongo.jar</dependency>
+        <dependency>commons-beanutils.jar</dependency>
+        <dependency>commons-codec.jar</dependency>
+        <dependency>commons-collections.jar</dependency>
+        <dependency>commons-logging.jar</dependency>
+        <dependency>httpcomponents-core.jar</dependency>
+        <dependency>httpcomponents-client.jar</dependency>
+        <dependency>gson.jar</dependency>
+        <dependency>netty.jar</dependency>
+      </dependencies>
+    </command>
   </commands>
 </plugin>
\ No newline at end of file