@Override
public void run() {
IConnection client = context.connect(null, "localhost", port);
lock.lock();
List<TaskMessage> list = new ArrayList<TaskMessage>();
TaskMessage message = new TaskMessage(task, req_msg.getBytes());
list.add(message);
client.send(message);
System.out.println("Send first");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
client.close();
IConnection client2 = context.connect(null, "localhost", port);
System.out.println("!!!!!!! restart client !!!!!!!!!!");
client2.send(message);
System.out.println("Send second");
JStormUtils.sleepMs(1000);
try {
clientClose.await();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
client2.close();
contextClose.signal();
lock.unlock();
}
}).start();
IConnection server = null;
server = context.bind(null, port);
WaitStrategy waitStrategy = (WaitStrategy) Utils
.newInstance((String) storm_conf
.get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
DisruptorQueue recvQueue = new DisruptorQueue(
"NettyUnitTest", ProducerType.SINGLE, 1024, waitStrategy);
server.registerQueue(recvQueue);
TaskMessage recv = server.recv(0);
System.out.println("Sever receive first");
Assert.assertEquals(req_msg, new String(recv.message()));
Thread.sleep(1000);
TaskMessage recv2 = server.recv(0);
System.out.println("Sever receive second");
Assert.assertEquals(req_msg, new String(recv2.message()));
lock.lock();
clientClose.signal();
server.close();
contextClose.await();
context.term();
lock.unlock();
System.out.println("!!!!!!!!!!End client reboot test!!!!!!!!");
}