in hawtio-system/src/main/java/io/hawt/osgi/OsgiMBeanDetector.java [27:54]
public void addMBeanServers(Set<MBeanServerConnection> pMBeanServers) {
BundleContext context = null;
try {
Bundle bundle = FrameworkUtil.getBundle(getClass());
context = bundle != null ? bundle.getBundleContext() : null;
} catch (Throwable t) {
// Ignore
}
if (context != null) {
ServiceTracker<MBeanServer, MBeanServer> tracker = new ServiceTracker<>(context, MBeanServer.class, null);
tracker.open();
MBeanServer server = null;
for (int i = 0; i < 1000; i++) {
server = tracker.getService();
if (server != null) {
break;
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
return;
}
}
if (server != null) {
pMBeanServers.add(server);
}
}
}