monitor.notifyNewTableLayout(tableURI, Bytes.toBytes("layout.v1"), -1);
final BlockingQueue<String> queue = Queues.newSynchronousQueue();
final LayoutTracker layoutTracker = monitor.newTableLayoutTracker(
tableURI,
new LayoutUpdateHandler() {
/** {@inheritDoc} */
@Override
public void update(byte[] layout) {
try {
queue.put(Bytes.toString(layout));
} catch (InterruptedException ie) {
throw new RuntimeInterruptedException(ie);
}
}
});
layoutTracker.open();
final String layout1 = queue.poll(1, TimeUnit.SECONDS);
Assert.assertEquals("layout.v1", layout1);
monitor.notifyNewTableLayout(tableURI, Bytes.toBytes("layout.v2"), -1);
final String layout2 = queue.poll(1, TimeUnit.SECONDS);