Esempio n. 1
0
  /**
   * Test compatability between version 4.1.0 and the current version.
   *
   * <p>A current client running message filter would fail on 4.1.0 hub servers.
   */
  @Test(timeout = 60000)
  public void testClientMessageFilterCompat410() throws Exception {
    ByteString topic = ByteString.copyFromUtf8("TestUpdateMessageBoundCompat410");
    ByteString subid = ByteString.copyFromUtf8("mysub");

    // start bookkeeper
    BookKeeperCluster410 bkc410 = new BookKeeperCluster410(3);
    bkc410.start();

    int port = PortManager.nextFreePort();
    int sslPort = PortManager.nextFreePort();

    // start hub server 410
    Server410 s410 = new Server410(zkUtil.getZooKeeperConnectString(), port, sslPort);
    s410.start();

    ClientCurrent ccur = new ClientCurrent("localhost:" + port + ":" + sslPort);
    ccur.subscribe(topic, subid);
    ccur.closeSubscription(topic, subid);

    ccur.publishInts(topic, 0, 100);
    try {
      ccur.receiveNumModM(topic, subid, 0, 50, 2);
      fail("client-side filter could not run on 4.1.0 hub server");
    } catch (Exception e) {
      logger.info("Should fail to run client-side message filter on 4.1.0 hub server.", e);
      ccur.closeSubscription(topic, subid);
    }

    // stop 410 server
    s410.stop();
    // stop bookkeeper cluster
    bkc410.stop();
  }