Search in sources :

Example 6 with Publisher

use of com.datatorrent.bufferserver.support.Publisher in project apex-core by apache.

the class ServerTest method test1Window.

@Test(dependsOnMethods = { "testNoPublishNoSubscribe" }, timeOut = 50)
@SuppressWarnings("SleepWhileInLoop")
public void test1Window() throws InterruptedException {
    bsp = new Publisher("MyPublisher");
    eventloopClient.connect(address, bsp);
    bss = new Subscriber("MyPublisher");
    eventloopClient.connect(address, bss);
    bsp.activate(null, 0L);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    long resetInfo = 0x7afebabe000000faL;
    bsp.publishMessage(ResetWindowTuple.getSerializedTuple((int) (resetInfo >> 32), 500));
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (!bss.resetPayloads.isEmpty()) {
            break;
        }
    }
    while (bss.tupleCount.get() != 1) {
        Thread.sleep(10);
    }
    eventloopClient.disconnect(bss);
    eventloopClient.disconnect(bsp);
    assertFalse(bss.resetPayloads.isEmpty());
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Example 7 with Publisher

use of com.datatorrent.bufferserver.support.Publisher in project apex-core by apache.

the class ServerTest method testAuth.

@Test(dependsOnMethods = { "testEarlySubscriberForLaterWindow" })
public void testAuth() throws InterruptedException {
    instance.setAuthToken(authToken);
    bsp = new Publisher("MyPublisher");
    bsp.setToken(authToken);
    eventloopClient.connect(address, bsp);
    bss = new Subscriber("MySubscriber");
    bss.setToken(authToken);
    eventloopClient.connect(address, bss);
    bsp.activate(null, 0L);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    long resetInfo = 0x7afebabe000000faL;
    bsp.publishMessage(ResetWindowTuple.getSerializedTuple((int) (resetInfo >> 32), 500));
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (!bss.resetPayloads.isEmpty()) {
            break;
        }
    }
    Thread.sleep(10);
    eventloopClient.disconnect(bss);
    eventloopClient.disconnect(bsp);
    assertEquals(bss.tupleCount.get(), 1);
    assertFalse(bss.resetPayloads.isEmpty());
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Example 8 with Publisher

use of com.datatorrent.bufferserver.support.Publisher in project apex-core by apache.

the class ServerTest method testEarlySubscriberForLaterWindow.

@Test(dependsOnMethods = { "testResetAgain" })
@SuppressWarnings("SleepWhileInLoop")
public void testEarlySubscriberForLaterWindow() throws InterruptedException {
    bss = new Subscriber("MyPublisher");
    eventloopClient.connect(address, bss);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 49L, 0);
    /* wait in a hope that the subscriber is able to reach the server */
    Thread.sleep(100);
    bsp = new Publisher("MyPublisher");
    eventloopClient.connect(address, bsp);
    bsp.activate(null, 0, 0);
    for (int i = 0; i < 100; i++) {
        bsp.publishMessage(BeginWindowTuple.getSerializedTuple(i));
        byte[] buff = PayloadTuple.getSerializedTuple(0, 1);
        buff[buff.length - 1] = (byte) i;
        bsp.publishMessage(buff);
        bsp.publishMessage(EndWindowTuple.getSerializedTuple(i));
    }
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (bss.tupleCount.get() == 150) {
            break;
        }
    }
    Thread.sleep(10);
    eventloopClient.disconnect(bsp);
    assertEquals(bss.tupleCount.get(), 150);
    eventloopClient.disconnect(bss);
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Example 9 with Publisher

use of com.datatorrent.bufferserver.support.Publisher in project apex-core by apache.

the class DiskStorageTest method setupServerAndClients.

@BeforeClass
public static void setupServerAndClients() throws Exception {
    eventloopServer = DefaultEventLoop.createEventLoop("server");
    eventloopServer.start();
    eventloopClient = DefaultEventLoop.createEventLoop("client");
    eventloopClient.start();
    instance = new Server(eventloopServer, 0, 1024, 8);
    instance.setSpoolStorage(new DiskStorage());
    address = instance.run();
    assertFalse(address.isUnresolved());
    bsp = new Publisher("MyPublisher");
    eventloopClient.connect(address, bsp);
    bss = new Subscriber("MySubscriber");
    eventloopClient.connect(address, bss);
    bsc = new Controller("MyPublisher");
    eventloopClient.connect(address, bsc);
}
Also used : Server(com.datatorrent.bufferserver.server.Server) Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Controller(com.datatorrent.bufferserver.support.Controller) BeforeClass(org.testng.annotations.BeforeClass)

Aggregations

Publisher (com.datatorrent.bufferserver.support.Publisher)9 Subscriber (com.datatorrent.bufferserver.support.Subscriber)9 Test (org.testng.annotations.Test)8 Server (com.datatorrent.bufferserver.server.Server)1 Controller (com.datatorrent.bufferserver.support.Controller)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 BeforeClass (org.testng.annotations.BeforeClass)1