类javax.management.relation.MBeanServerNotificationFilter源码实例Demo

下面列出了怎么用javax.management.relation.MBeanServerNotificationFilter的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: apm-agent-java   文件: JmxMetricTracker.java
private void registerMBeanNotificationListener(final MBeanServer server) {
    MBeanServerNotificationFilter filter = new MBeanServerNotificationFilter();
    filter.enableAllObjectNames();
    filter.enableType(MBeanServerNotification.REGISTRATION_NOTIFICATION);
    listener = new NotificationListener() {
        @Override
        public void handleNotification(Notification notification, Object handback) {
            if (notification instanceof MBeanServerNotification) {
                ObjectName mBeanName = ((MBeanServerNotification) notification).getMBeanName();
                for (JmxMetric jmxMetric : jmxConfiguration.getCaptureJmxMetrics().get()) {
                    if (jmxMetric.getObjectName().apply(mBeanName)) {
                        logger.debug("MBean added at runtime: {}", jmxMetric.getObjectName());
                        register(Collections.singletonList(jmxMetric), server);
                    }
                }
            }
        }
    };
    try {
        server.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, listener, filter, null);
    } catch (InstanceNotFoundException e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码2 项目: helix   文件: JmxDumper.java
public JmxDumper(String jmxService, String domain, String beanClassName, String namePattern,
    int samplePeriod, List<String> fields, List<String> operations, String outputfile,
    int sampleCount) throws Exception {
  _jmxUrl = jmxService;
  _domain = domain;
  _beanClassName = beanClassName;
  _samplePeriod = samplePeriod;
  _outputFields.addAll(fields);
  _operations.addAll(operations);
  _outputFileName = outputfile;
  _namePattern = namePattern;
  _targetSamples = sampleCount;

  JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + _jmxUrl + "/jmxrmi");
  JMXConnector jmxc = JMXConnectorFactory.connect(url, null);

  _mbeanServer = jmxc.getMBeanServerConnection();
  MBeanServerNotificationFilter filter = new MBeanServerNotificationFilter();
  filter.enableAllObjectNames();
  _mbeanServer.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, this, filter, null);
  init();
  _timer = new Timer(true);
  _timer.scheduleAtFixedRate(new SampleTask(), _samplePeriod, _samplePeriod);
}
 
源代码3 项目: helix   文件: ClusterMBeanObserver.java
public ClusterMBeanObserver(String domain) throws IOException, InstanceNotFoundException {
  // Get a reference to the target MBeanServer
  _domain = domain;
  _server = ManagementFactory.getPlatformMBeanServer();
  MBeanServerNotificationFilter filter = new MBeanServerNotificationFilter();
  filter.enableAllObjectNames();
  _server.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, this, filter, null);
}
 
源代码4 项目: helix   文件: ClusterMBeanObserver.java
public void disconnect() {
  MBeanServerNotificationFilter filter = new MBeanServerNotificationFilter();
  try {
    _server.removeNotificationListener(MBeanServerDelegate.DELEGATE_NAME, this);
  } catch (Exception e) {
    _logger.error("", e);
  }
}
 
 类所在包
 同包方法