MBeanListener listener = new MBeanListener();
ObjectName listenerName = new ObjectName("test:type=listener");
server.registerMBean(listener, listenerName);
ObjectName broadcasterName = new ObjectName("test:type=Broadcaster");
server.registerMBean(new Broadcaster(), broadcasterName);
server.addNotificationListener(broadcasterName, listenerName, null, "handback1");
server.removeNotificationListener(broadcasterName, listenerName, null, "handback1");
server.unregisterMBean(broadcasterName);
Broadcaster broadcaster = new Broadcaster();
server.registerMBean(broadcaster, broadcasterName);
server.addNotificationListener(broadcasterName, listenerName, null, "handback2");
// force notification
broadcaster.doSomething();
assertTrue("Listener should get a notification", listener.count == 1);
assertTrue("Source should be the broadcaster", listener.source.equals(broadcasterName));
assertTrue("Listener should get handback2", listener.handback.equals("handback2"));
}