private BookKeeper startBookKeeperClient() throws Exception { // These two are in Seconds, not Millis. int writeTimeout = (int) Math.ceil(this.config.getBkWriteTimeoutMillis() / 1000.0); int readTimeout = (int) Math.ceil(this.config.getBkReadTimeoutMillis() / 1000.0); ClientConfiguration config = new ClientConfiguration() .setClientTcpNoDelay(true) .setAddEntryTimeout(writeTimeout) .setReadEntryTimeout(readTimeout) .setGetBookieInfoTimeout(readTimeout) .setClientConnectTimeoutMillis((int) this.config.getZkConnectionTimeout().toMillis()) .setZkTimeout((int) this.config.getZkConnectionTimeout().toMillis()); if (this.config.isTLSEnabled()) { config = (ClientConfiguration) config.setTLSProvider("OpenSSL"); config = config.setTLSTrustStore(this.config.getTlsTrustStore()); config.setTLSTrustStorePasswordPath(this.config.getTlsTrustStorePasswordPath()); } String metadataServiceUri = "zk://" + this.config.getZkAddress(); if (this.config.getBkLedgerPath().isEmpty()) { metadataServiceUri += "/" + this.namespace + "/bookkeeper/ledgers"; } else { metadataServiceUri += this.config.getBkLedgerPath(); } config.setMetadataServiceUri(metadataServiceUri); return new BookKeeper(config); }
@Test public void testDefaultValues() { BookKeeperConfig cfg = BookKeeperConfig.builder() .build(); Assert.assertEquals("localhost:2181", cfg.getZkAddress()); Assert.assertEquals(Duration.ofMillis(10000), cfg.getZkSessionTimeout()); Assert.assertEquals(Duration.ofMillis(10000), cfg.getZkConnectionTimeout()); Assert.assertEquals("/segmentstore/containers", cfg.getZkMetadataPath()); Assert.assertEquals(2, cfg.getZkHierarchyDepth()); Assert.assertEquals(5, cfg.getMaxWriteAttempts()); Assert.assertEquals(3, cfg.getBkEnsembleSize()); Assert.assertEquals(2, cfg.getBkAckQuorumSize()); Assert.assertEquals(3, cfg.getBkWriteQuorumSize()); Assert.assertEquals(5000, cfg.getBkWriteTimeoutMillis()); Assert.assertEquals(5000, cfg.getBkReadTimeoutMillis()); Assert.assertEquals(1024 * 1024 * 1024, cfg.getBkLedgerMaxSize()); Assert.assertEquals(0, cfg.getBKPassword().length); Assert.assertEquals("", cfg.getBkLedgerPath()); Assert.assertEquals(false, cfg.isTLSEnabled()); Assert.assertEquals("config/client.truststore.jks", cfg.getTlsTrustStore()); Assert.assertEquals("", cfg.getTlsTrustStorePasswordPath()); }