I've refactored the management code to use JSON for attributes, invocations and return values.
This works well in most cases however we have a problem for return values which are TabularData.
We can't directly return TabularData objects but we can return a Map whose values are Object which gives us basically the same thing.
Problem is though this won't display nicely in jconsole.
What I can do is convert any TabularData instances to Map instances before converting to JSON and sending back to the client.
This means you'd still get TabularData if you're using JMX, but if you're using management via the connection you'd get simple array and Map instances.