private static void test(String proto) throws Exception { System.out.println(">>> Test for protocol " + proto); JMXServiceURL u = null; JMXConnectorServer server = null; HashMap env = new HashMap(2); // server will close a client connection after 1 second env.put("jmx.remote.x.server.connection.timeout", "1000"); // disable the client ping env.put("jmx.remote.x.client.connection.check.period", "0"); try { u = new JMXServiceURL(proto, null, 0); server = JMXConnectorServerFactory.newJMXConnectorServer(u, env, mbs); } catch (MalformedURLException e) { System.out.println(">>> Skipping unsupported URL " + proto); } server.start(); JMXServiceURL addr = server.getAddress(); long st = 2000; MyListener myListener; // a cycle to make sure that we test the blocking problem. do { JMXConnector client = JMXConnectorFactory.connect(addr, env); MBeanServerConnection conn = client.getMBeanServerConnection(); myListener = new MyListener(conn); client.addConnectionNotificationListener(myListener, null, null); // wait the server to close the client connection Thread.sleep(st); // makes the listener to do a remote request via the connection // which should be closed by the server. conn.getDefaultDomain(); // allow the listner to have time to work Thread.sleep(100); // get a closed notif, should no block. client.close(); Thread.sleep(100); st += 2000; } while (!myListener.isDone()); server.stop(); }
private PreferencesFrame() { setDefaultCloseOperation(HIDE_ON_CLOSE); setJMenuBar(new LogisimMenuBar(this, null)); panels = new OptionsPanel[] { new TemplateOptions(this), new IntlOptions(this), new WindowOptions(this), new LayoutOptions(this), new ExperimentalOptions(this), }; tabbedPane = new JTabbedPane(); int intlIndex = -1; for (int index = 0; index < panels.length; index++) { OptionsPanel panel = panels[index]; tabbedPane.addTab(panel.getTitle(), null, panel, panel.getToolTipText()); if (panel instanceof IntlOptions) intlIndex = index; } JPanel buttonPanel = new JPanel(); buttonPanel.add(close); close.addActionListener(myListener); Container contents = getContentPane(); tabbedPane.setPreferredSize(new Dimension(450, 300)); contents.add(tabbedPane, BorderLayout.CENTER); contents.add(buttonPanel, BorderLayout.SOUTH); if (intlIndex >= 0) tabbedPane.setSelectedIndex(intlIndex); LocaleManager.addLocaleListener(myListener); myListener.localeChanged(); pack(); }
@Test public void testOutOfOrder() throws Exception { Connection conn = createConnection(); Session sess = conn.createSession(true, Session.SESSION_TRANSACTED); Session sess2 = conn.createSession(true, Session.SESSION_TRANSACTED); MessageProducer prod = sess.createProducer(queue1); MessageConsumer cons = sess2.createConsumer(queue1); CountDownLatch latch = new CountDownLatch(1); final int NUM_MESSAGES = 1000; MyListener listener = new MyListener(latch, sess2, NUM_MESSAGES); cons.setMessageListener(listener); conn.start(); for (int i = 0; i < NUM_MESSAGES; i++) { TextMessage tm = sess.createTextMessage("message" + i); prod.send(tm); if (i % 10 == 0) { sess.commit(); } } // need extra commit for cases in which the last message index is not a multiple of 10 sess.commit(); Assert.assertTrue(latch.await(20000, MILLISECONDS)); if (listener.failed) { ProxyAssertSupport.fail("listener failed: " + listener.getError()); } }
public void testDiscoveryListenersCalled() throws Exception { final InetAddress groupAddress = InetAddress.getByName(address1); final int groupPort = getUDPDiscoveryPort(); final int timeout = 500; String nodeID = RandomUtil.randomString(); bg = newBroadcast(nodeID, RandomUtil.randomString(), null, -1, groupAddress, groupPort); bg.start(); TransportConfiguration live1 = generateTC(); bg.addConnector(live1); dg = newDiscoveryGroup( RandomUtil.randomString(), RandomUtil.randomString(), null, groupAddress, groupPort, timeout); MyListener listener1 = new MyListener(); MyListener listener2 = new MyListener(); MyListener listener3 = new MyListener(); dg.registerListener(listener1); dg.registerListener(listener2); dg.registerListener(listener3); dg.start(); verifyBroadcast(bg, dg); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); Assert.assertTrue(listener3.called); listener1.called = false; listener2.called = false; listener3.called = false; verifyBroadcast(bg, dg); // Won't be called since connectors haven't changed Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); Assert.assertFalse(listener3.called); }
public WindowMenu(JFrame owner) { this.owner = owner; WindowMenuManager.addMenu(this); int menuMask = getToolkit().getMenuShortcutKeyMask(); minimize.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, menuMask)); close.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, menuMask)); if (owner == null) { minimize.setEnabled(false); zoom.setEnabled(false); close.setEnabled(false); } else { minimize.addActionListener(myListener); zoom.addActionListener(myListener); close.addActionListener(myListener); } computeEnabled(); computeContents(); LocaleManager.addLocaleListener(myListener); myListener.localeChanged(); }
public void testConnectorsUpdatedMultipleBroadcasters() throws Exception { final InetAddress groupAddress = InetAddress.getByName(address1); final int groupPort = getUDPDiscoveryPort(); final int timeout = 500; String node1 = RandomUtil.randomString(); String node2 = RandomUtil.randomString(); String node3 = RandomUtil.randomString(); bg1 = newBroadcast(node1, RandomUtil.randomString(), null, -1, groupAddress, groupPort); bg1.start(); bg2 = newBroadcast(node2, RandomUtil.randomString(), null, -1, groupAddress, groupPort); bg2.start(); bg3 = newBroadcast(node3, RandomUtil.randomString(), null, -1, groupAddress, groupPort); bg3.start(); TransportConfiguration live1 = generateTC(); bg1.addConnector(live1); TransportConfiguration live2 = generateTC(); bg2.addConnector(live2); TransportConfiguration live3 = generateTC(); bg3.addConnector(live3); dg = newDiscoveryGroup( RandomUtil.randomString(), RandomUtil.randomString(), null, groupAddress, groupPort, timeout); MyListener listener1 = new MyListener(); dg.registerListener(listener1); MyListener listener2 = new MyListener(); dg.registerListener(listener2); dg.start(); verifyBroadcast(bg1, dg); List<DiscoveryEntry> entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1), entries); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); listener1.called = false; listener2.called = false; verifyBroadcast(bg2, dg); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2), entries); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); listener1.called = false; listener2.called = false; verifyBroadcast(bg3, dg); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2, live3), entries); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); listener1.called = false; listener2.called = false; verifyBroadcast(bg1, dg); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2, live3), entries); Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); listener1.called = false; listener2.called = false; verifyBroadcast(bg2, dg); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2, live3), entries); Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); listener1.called = false; listener2.called = false; verifyBroadcast(bg3, dg); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2, live3), entries); Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); listener1.called = false; listener2.called = false; bg2.removeConnector(live2); verifyBroadcast(bg2, dg); // Connector2 should still be there since not timed out yet entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live2, live3), entries); Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); listener1.called = false; listener2.called = false; Thread.sleep(timeout * 2); bg1.broadcastConnectors(); boolean ok = dg.waitForBroadcast(1000); bg2.broadcastConnectors(); ok = dg.waitForBroadcast(1000); bg3.broadcastConnectors(); ok = dg.waitForBroadcast(1000); entries = dg.getDiscoveryEntries(); assertEqualsDiscoveryEntries(Arrays.asList(live1, live3), entries); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); listener1.called = false; listener2.called = false; bg1.removeConnector(live1); bg3.removeConnector(live3); Thread.sleep(timeout * 2); bg1.broadcastConnectors(); ok = dg.waitForBroadcast(1000); bg2.broadcastConnectors(); ok = dg.waitForBroadcast(1000); bg3.broadcastConnectors(); ok = dg.waitForBroadcast(1000); entries = dg.getDiscoveryEntries(); Assert.assertNotNull(entries); Assert.assertEquals(0, entries.size()); Assert.assertTrue(listener1.called); Assert.assertTrue(listener2.called); listener1.called = false; listener2.called = false; bg1.broadcastConnectors(); ok = dg.waitForBroadcast(1000); bg2.broadcastConnectors(); ok = dg.waitForBroadcast(1000); bg3.broadcastConnectors(); ok = dg.waitForBroadcast(1000); entries = dg.getDiscoveryEntries(); Assert.assertNotNull(entries); Assert.assertEquals(0, entries.size()); Assert.assertFalse(listener1.called); Assert.assertFalse(listener2.called); }
void notifyChange() { for (MyListener l : listeners) { l.changed(); } }
/** * Test the generation of events, and if there are not too many of them. * * <p>See issue 2093. */ public void testEvents() { class MyListener implements TargetListener { int countAdd = 0; int countRemove = 0; int countSet = 0; public void targetAdded(TargetEvent e) { countAdd++; } public void targetRemoved(TargetEvent e) { countRemove++; } public void targetSet(TargetEvent e) { countSet++; } public void resetCounts() { countAdd = 0; countRemove = 0; countSet = 0; } } MyListener listener = new MyListener(); TargetManager.getInstance().addTargetListener(listener); // The target list is empty, re-emptying it again // should not generate any events: TargetManager.getInstance().setTargets(Collections.EMPTY_SET); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); // Setting one target should generate one event: Object target1 = new Object(); TargetManager.getInstance().setTarget(target1); assertTrue(1 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 1); listener.resetCounts(); // set same target again should not generate new events: TargetManager.getInstance().setTarget(target1); assertTrue(1 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); Object target2 = new Object(); TargetManager.getInstance().addTarget(target2); assertTrue(2 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 1); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); listener.resetCounts(); // adding same target again should not generate new events: TargetManager.getInstance().addTarget(target2); assertTrue(2 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); // adding same targets list again should not generate new events: Collection<Object> s = new ArrayList<Object>(); s.add(target2); // reverse order s.add(target1); TargetManager.getInstance().setTargets(s); assertTrue(2 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); // testing with subset of targets Object target3 = new Object(); TargetManager.getInstance().addTarget(target3); assertTrue(3 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 1); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 0); listener.resetCounts(); // now remove one target by setting subset: TargetManager.getInstance().setTargets(s); assertTrue(2 == TargetManager.getInstance().getTargets().size()); assertTrue(listener.countAdd == 0); assertTrue(listener.countRemove == 0); assertTrue(listener.countSet == 1); }