protected boolean apply(ClientConfiguration conf, ClientFlagsT cmdFlags) { try (BookKeeper bk = BookKeeper.newBuilder(conf).build()) { run(bk, cmdFlags); return true; } catch (Exception e) { log.error("Failed to process command '{}'", name(), e); return false; } }
@Override protected void run(BookKeeper bk, Flags flags) throws Exception { byte[] data = new byte[100]; // test data try (WriteHandle wh = result(bk.newCreateLedgerOp() .withEnsembleSize(flags.ensembleSize) .withWriteQuorumSize(flags.writeQuorumSize) .withAckQuorumSize(flags.ackQuorumSize) .withDigestType(DigestType.CRC32C) .withPassword(new byte[0]) .execute())) { System.out.println("Ledger ID: " + wh.getId()); long lastReport = System.nanoTime(); for (int i = 0; i < flags.numEntries; i++) { wh.append(data); if (TimeUnit.SECONDS.convert(System.nanoTime() - lastReport, TimeUnit.NANOSECONDS) > 1) { System.out.println(i + " entries written"); lastReport = System.nanoTime(); } } System.out.println(flags.numEntries + " entries written to ledger " + wh.getId()); } } }