Re: DMR integration...
I don't think there are any problems here. The OSGi bundle class loader will load the
first class on its classpath. Since ModelNode exists in a private library within the AS7
management plugin, that class will be loaded and the class loader will stop searching
(i.e. it won't ever search its dependencies).
On the other side, consumers will only see the ModelNode exported by core, since the AS7
plugin doesn't export it. A bundle with a dependency on both plugins will only ever
see the ModelNode exported by core.
Using String in the execute interface decouples the caller from specific DMR
implementations. At this point, we're simply using DMR as a JSON factory/parser. We
don't even need to worry about type compatibility between the two DMR libraries as
everything is reduced to a JSON type (i.e. object, list, string). The only issues will be
the contents of the JSON, depending on whether or not the management structure changes
between releases of AS.
I really don't think there is any issue with this approach (other than the baggage of
converting to/from JSON on each call).