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());
}
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());
}
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);
}
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);
}
Aggregations