A few thoughts looking over our jmx-agent code, which I'll do in a separate pull request but interested in your thoughts:
1. It starts non-daemon threads so could cause the JVM to not terminate [1]
2. If we also had `agentmain()` (with shared impl with premain) then this jar could be used in more places [2]; but I don't have a use-case for this!
   (note we'd also need to update the pom: `<Premain-Class>brooklyn.util.jmx.jmxmp.JmxmpAgent</Premain-Class>`
3. We could make the jmx connector remotely stoppable [3].

Point (1) is easy to fix by registering a shutdown hook.
Point (2) is trivial to implement, so might as well do it.
Point (3) does *not* seem worth the complexity, until we have a real use-case for it.

[1] https://community.oracle.com/message/4798173
[2] http://stackoverflow.com/questions/19786078/what-is-the-use-of-agentmain-method-in-java-instrumentation
[3] https://blogs.oracle.com/jmxetc/entry/building_a_remotely_stoppable_connector