public void removeNotificationListener(final ObjectName objectName, final NotificationListener listener, final NotificationFilter filter) { if (isConnected()) invokeWithReconnect(new Callable<Void>() { @Override public Void call() throws Exception { getConnectionOrFail().removeNotificationListener(objectName, listener, filter, null); return null; }}); }
/** * A thread-safe version of {@link #disconnectNow()}. * * This method is threadsafe. */ public synchronized void disconnect() { disconnectNow(); }
@Override protected void connectSensors() { String queue = String.format("org.apache.activemq:type=Broker,brokerName=%s,destinationType=Queue,destinationName=%s", getBrokerName(), getName()); jmxFeed = JmxFeed.builder() .entity(this) .helper(jmxHelper) .pollAttribute(new JmxAttributePollConfig<Integer>(QUEUE_DEPTH_MESSAGES) .objectName(queue) .attributeName("QueueSize")) .build(); }
@Override protected void disconnectSensors() { if (jmxFeed != null) jmxFeed.stop(); }
/** @see #operation(ObjectName, String, Object ...) */ public Object operation(String objectName, String method, Object... arguments) { return operation(createObjectName(objectName), method, arguments); }
@Override public Map apply(CompositeData input) { return compositeDataToMap(input); }}; }
@Override public Map apply(TabularData input) { return tabularDataToMapOfMaps(input); }}; }
/** * Matches the given notification type. * @see {@link NotificationFilterSupport#enableType(String)} */ public static NotificationFilter matchesType(String type) { return matchesTypes(type); }
public void addNotificationListener(ObjectName objectName, NotificationListener listener) { addNotificationListener(objectName, listener, null); }
private void unregisterNotificationListener(ObjectName objectName, NotificationListener listener) { try { getHelper().removeNotificationListener(objectName, listener); } catch (RuntimeException e) { log.warn("Failed to unregister listener: "+objectName+", "+listener+"; continuing...", e); } }
public void addNotificationListener(final ObjectName objectName, final NotificationListener listener, final NotificationFilter filter) { invokeWithReconnect(new Callable<Void>() { @Override public Void call() throws Exception { getConnectionOrFail().addNotificationListener(objectName, listener, filter, null); return null; }}); }
/** * @return a closure that converts a TabularDataSupport to a map. */ public static Function<TabularData, Map> tabularDataToMap() { return new TabularDataToMap(); }
public Set<ObjectInstance> doesMBeanExistsEventually(final ObjectName objectName, long timeoutMillis) { return doesMBeanExistsEventually(objectName, timeoutMillis, TimeUnit.MILLISECONDS); }
@Override protected void connectSensors() { super.connectSensors(); // Add a sensor that we can explicitly set in jmx feed = JmxFeed.builder() .entity(this) .pollAttribute(new JmxAttributePollConfig<String>(stringAttribute) .objectName(jmxObjectName) .attributeName(attributeName)) .build(); }
@Override public Map apply(CompositeData input) { return compositeDataToMap(input); } }
@Override public Map apply(TabularData input) { return tabularDataToMapOfMaps(input); } }
public Set<ObjectInstance> findMBeans(final ObjectName objectName) { return invokeWithReconnect(new Callable<Set<ObjectInstance>>() { @Override public Set<ObjectInstance> call() throws Exception { return getConnectionOrFail().queryMBeans(objectName, null); }}); }