package com.intrbiz.bergamot.check.jmx; import java.util.function.Consumer; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; public class JMXCheckContext { private final Consumer<Throwable> onError; public JMXCheckContext(Consumer<Throwable> onError) { this.onError = onError; } public void connect(String url, Consumer<JMXConnection> onConnected) { try { JMXServiceURL jmxUrl = new JMXServiceURL(url); try (JMXConnector jmxc = JMXConnectorFactory.connect(jmxUrl)) { onConnected.accept(new JMXConnection(jmxc.getMBeanServerConnection())); } } catch (Throwable t) { this.onError.accept(t); } } public void connect(String host, int port, Consumer<JMXConnection> onConnected) { this.connect("service:jmx:rmi:///jndi/rmi://"+ host + ":" + port + "/jmxrmi", onConnected); } }