JMX REST API

Currently, just a place holder.

The following text is copied directly from the mailing list.

I have finished a REST api for generic jmx MBeans. It allows for listing mbeans, getting mbeaninfo, reading and setting attributes and invoking operations with parameters that can be represented as Strings ( i.e. String, Long etc. serialized classes don't count). Before I send to code to Richard I would like some feedback to see if I am missing something or should do something different. Here is the api and sample returns. Bad requests or errors will return BadResponse. GET /jmx/mbeans - returns a list of mbean names GET /jmx/mbean/[mbean name](mbean-name.html) /info - returns MBeanInfo for specified mbean GET /jmx/mbean/[mbean name](mbean-name.html) /attributes - returns attribute name and string values POST /jmx/mbean/[mbean name](mbean-name.html) /invoke/[operation name]  pone  123 POST /jmx/mbean/[mbean name/set - sets a single attribute POST /jmx/mbean/[mbean name](mbean-name.html) /set - sets multiple attributes     == SAMPLES == GET /jmx/mbeans GET /jmx/mbean/org.apache.esme.stats:type=Stats/attributes GET /jmx/mbean/org.apache.esme.stats:type=Stats/info ================= There is no security on the api. This obviously should not stay like this and should only be accessable with an administrator account. I tested it with the Stats MBean and the java.util.Logging MBean and it is working. I can access stats, reset them and change logging levels. It would be nice to be able to change runtime properties though JMX however most of the Lift and ESME code uses vals and immutable data structures that are set when the app is originally loaded. The lift Props object used by esme is totally immutable after it is constructed. It is worth thinking about switching to a property api like Configgy which uses mutable data structures for properties. We could change in real time things like resent & links period, refresh intervals, analyzer settings like long query time, db connection pool sizes etc. I didn't enable sending serialized objects through the REST api because it seems like more trouble than it's worth. Besides that sort of JMX functionality is only useful between servers and this api is really just for the cloud environment like stax which doesn't allow you to bind to ports.