RFR: 7455: Add support for jolokia JMX service connection [v5]

Martin Skarsaune duke at openjdk.org
Sat Feb 3 08:49:06 UTC 2024


On Fri, 26 Jan 2024 13:40:58 GMT, Martin Skarsaune <duke at openjdk.org> wrote:

>> Replaces parts of https://github.com/openjdk/jmc/pull/332
>
> Martin Skarsaune has updated the pull request incrementally with one additional commit since the last revision:
> 
>   JMC-7455: Clean up some test comments

application/org.openjdk.jmc.jolokia/plugin.xml line 38:

> 36: <plugin>
> 37:    <extension
> 38:          point="org.openjdk.jmc.rjmx.descriptorProvider">

So, this extension is what used to work to support jolokia as a protocol in 8.3.0, but it fails (at least when connecting to a discovered VM from the browser):

`org.openjdk.jmc.rjmx.common.ConnectionException caused by java.net.MalformedURLException: Unsupported protocol: jolokia
	at org.openjdk.jmc.rjmx.common.internal.RJMXConnection.connect(RJMXConnection.java:364)
	at org.openjdk.jmc.rjmx.internal.ServerHandle.doConnect(ServerHandle.java:121)
	at org.openjdk.jmc.rjmx.internal.ServerHandle.connect(ServerHandle.java:111)
	at org.openjdk.jmc.console.ui.editor.internal.ConsoleEditor$ConnectJob.run(ConsoleEditor.java:99)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.net.MalformedURLException: Unsupported protocol: jolokia
	at java.management/javax.management.remote.JMXConnectorFactory.newJMXConnector(JMXConnectorFactory.java:366)
	at org.openjdk.jmc.rjmx.common.internal.RJMXConnection.connectJmxConnector(RJMXConnection.java:591)
	at org.openjdk.jmc.rjmx.common.internal.RJMXConnection.establishConnection(RJMXConnection.java:572)
	at org.openjdk.jmc.rjmx.common.internal.RJMXConnection.connect(RJMXConnection.java:357)`

It looks like it relies on `javax.management.remote.JMXConnectorFactory` to connect. There is support in Jolokia for using JMXConnectorFactory directly, however then the jolokia jar has to reside in the same classloader so that the service discovery mechanism picks it up. Furthermore, similar to `org.openjdk.jmc.rjmx` it would be good to use a JMC specific connection implementation, in order to do JMC specific enhancements.

I need to debug further

-------------

PR Review Comment: https://git.openjdk.org/jmc/pull/548#discussion_r1477019500


More information about the jmc-dev mailing list