Example #1
0
  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());
    }
  }
Example #4
0
  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);
  }
Example #5
0
  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();
  }
Example #6
0
  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);
  }
Example #7
0
 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);
  }