You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by gi...@apache.org on 2018/12/03 13:09:52 UTC

[bookkeeper] branch asf-site updated: Updated site at revision 8e0e9fb

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7e24fa0  Updated site at revision 8e0e9fb
7e24fa0 is described below

commit 7e24fa0eac2f9c7cdcd130ac442b7081653b8366
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Dec 3 13:09:50 2018 +0000

    Updated site at revision 8e0e9fb
---
 .../docs/latest/api/javadoc/allclasses-frame.html  |   4 +-
 .../latest/api/javadoc/allclasses-noframe.html     |   4 +-
 .../docs/latest/api/javadoc/constant-values.html   |  95 +--
 content/docs/latest/api/javadoc/index-all.html     | 151 ++--
 .../bookkeeper/client/BookKeeperAccessor.html      |  17 +-
 .../apache/bookkeeper/client/BookKeeperAdmin.html  |  20 +-
 .../apache/bookkeeper/client/EnsembleUtils.html    |   8 +-
 .../apache/bookkeeper/client/LedgerCreateOp.html   |   4 +-
 .../org/apache/bookkeeper/client/LedgerHandle.html |  20 +-
 .../LedgerHandleAdv.PendingOpsComparator.html      |   4 +-
 .../apache/bookkeeper/client/LedgerHandleAdv.html  |   4 +-
 .../bookkeeper/client/LedgerMetadataBuilder.html   |  76 +-
 .../bookkeeper/client/LedgerMetadataImpl.html      | 765 +++++++++++++++++++++
 ...ataUpdateLoop.html => LedgerMetadataUtils.html} | 206 +++---
 .../org/apache/bookkeeper/client/LedgerOpenOp.html |   4 +-
 .../client/LedgerRecoveryOp.RecoveryReadOp.html    |   4 +-
 .../apache/bookkeeper/client/LedgerRecoveryOp.html |   4 +-
 .../MetadataUpdateLoop.LocalValueUpdater.html      |   8 +-
 .../MetadataUpdateLoop.MetadataTransform.html      |   8 +-
 .../MetadataUpdateLoop.NeedsUpdatePredicate.html   |   6 +-
 .../bookkeeper/client/MetadataUpdateLoop.html      |   8 +-
 .../apache/bookkeeper/client/PendingReadOp.html    |   4 +-
 .../client/ReadLastConfirmedAndEntryOp.html        |   4 +-
 .../ReadOnlyLedgerHandle.MetadataUpdater.html      |   8 +-
 .../bookkeeper/client/ReadOnlyLedgerHandle.html    |  12 +-
 .../client/api/LedgerMetadata.State.html           | 372 ++++++++++
 .../bookkeeper/client/api/LedgerMetadata.html      | 142 +++-
 .../apache/bookkeeper/client/api/OpBuilder.html    |   4 +-
 .../client/api/class-use/DigestType.html           |  30 +-
 .../client/api/class-use/LedgerMetadata.State.html | 229 ++++++
 .../client/api/class-use/LedgerMetadata.html       | 245 ++++++-
 .../bookkeeper/client/api/class-use/WriteFlag.html |   4 +-
 .../bookkeeper/client/api/package-frame.html       |   1 +
 .../bookkeeper/client/api/package-summary.html     |   6 +
 .../apache/bookkeeper/client/api/package-tree.html |   1 +
 .../apache/bookkeeper/client/api/package-use.html  |  26 +-
 .../BKException.BKNotEnoughBookiesException.html   |   4 +-
 .../bookkeeper/client/class-use/BKException.html   |   2 +-
 .../client/class-use/BookKeeper.DigestType.html    |   6 +-
 .../bookkeeper/client/class-use/BookieWatcher.html |   4 +-
 .../bookkeeper/client/class-use/ClientContext.html |   6 +-
 .../bookkeeper/client/class-use/LedgerHandle.html  |  30 +-
 .../client/class-use/LedgerMetadataBuilder.html    |  29 +-
 .../client/class-use/LedgerMetadataImpl.html       | 125 ++++
 .../client/class-use/LedgerMetadataUtils.html      | 125 ++++
 .../MetadataUpdateLoop.LocalValueUpdater.html      |   2 +-
 .../MetadataUpdateLoop.MetadataTransform.html      |   2 +-
 .../MetadataUpdateLoop.NeedsUpdatePredicate.html   |   2 +-
 .../apache/bookkeeper/client/package-frame.html    |   3 +-
 .../apache/bookkeeper/client/package-summary.html  |  96 +--
 .../org/apache/bookkeeper/client/package-tree.html |   3 +-
 .../org/apache/bookkeeper/client/package-use.html  |  66 +-
 .../bookkeeper/conf/AbstractConfiguration.html     |  51 +-
 .../bookkeeper/conf/ClientConfiguration.html       |  33 +-
 .../bookkeeper/conf/ServerConfiguration.html       |   2 +-
 content/docs/latest/api/javadoc/overview-tree.html |   4 +-
 56 files changed, 2562 insertions(+), 541 deletions(-)

diff --git a/content/docs/latest/api/javadoc/allclasses-frame.html b/content/docs/latest/api/javadoc/allclasses-frame.html
index 6e68c4b..31a2bd9 100644
--- a/content/docs/latest/api/javadoc/allclasses-frame.html
+++ b/content/docs/latest/api/javadoc/allclasses-frame.html
@@ -162,8 +162,10 @@
 <li><a href="org/apache/bookkeeper/client/LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerHandleAdv</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerHandleAdv.PendingOpsComparator</a></li>
 <li><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api" target="classFrame"><span class="interfaceName">LedgerMetadata</span></a></li>
-<li><a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadata</a></li>
+<li><a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api" target="classFrame">LedgerMetadata.State</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataBuilder</a></li>
+<li><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataImpl</a></li>
+<li><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataUtils</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerOpenOp</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerOpenOp.OpenBuilderImpl</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerReader.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerReader</a></li>
diff --git a/content/docs/latest/api/javadoc/allclasses-noframe.html b/content/docs/latest/api/javadoc/allclasses-noframe.html
index 44cb85a..1b63999 100644
--- a/content/docs/latest/api/javadoc/allclasses-noframe.html
+++ b/content/docs/latest/api/javadoc/allclasses-noframe.html
@@ -162,8 +162,10 @@
 <li><a href="org/apache/bookkeeper/client/LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client">LedgerHandleAdv</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client">LedgerHandleAdv.PendingOpsComparator</a></li>
 <li><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><span class="interfaceName">LedgerMetadata</span></a></li>
-<li><a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></li>
+<li><a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></li>
+<li><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></li>
+<li><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp.OpenBuilderImpl</a></li>
 <li><a href="org/apache/bookkeeper/client/LedgerReader.html" title="class in org.apache.bookkeeper.client">LedgerReader</a></li>
diff --git a/content/docs/latest/api/javadoc/constant-values.html b/content/docs/latest/api/javadoc/constant-values.html
index a419739..b85b483 100644
--- a/content/docs/latest/api/javadoc/constant-values.html
+++ b/content/docs/latest/api/javadoc/constant-values.html
@@ -476,39 +476,6 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
-<caption><span>org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
-<th class="colLast" scope="col">Value</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.bookkeeper.client.LedgerMetadata.CURRENT_METADATA_FORMAT_VERSION">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/bookkeeper/client/LedgerMetadata.html#CURRENT_METADATA_FORMAT_VERSION">CURRENT_METADATA_FORMAT_VERSION</a></code></td>
-<td class="colLast"><code>2</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.bookkeeper.client.LedgerMetadata.LOWEST_COMPAT_METADATA_FORMAT_VERSION">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LOWEST_COMPAT_METADATA_FORMAT_VERSION">LOWEST_COMPAT_METADATA_FORMAT_VERSION</a></code></td>
-<td class="colLast"><code>0</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.bookkeeper.client.LedgerMetadata.VERSION_KEY">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/bookkeeper/client/LedgerMetadata.html#VERSION_KEY">VERSION_KEY</a></code></td>
-<td class="colLast"><code>"BookieMetadataFormatVersion"</code></td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.bookkeeper.client.org.apache.bookkeeper.client.PendingReadOp.SequenceReadRequest</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
@@ -1134,125 +1101,132 @@
 <td class="colLast"><code>"shadedLedgerManagerFactoryClassPrefix"</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></code></td>
+<td class="colLast"><code>"storeSystemTimeAsLedgerCreationTime"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME">STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME</a></code></td>
 <td class="colLast"><code>"storeSystemTimeAsLedgerUnderreplicatedMarkTime"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_CERTIFICATE_PATH">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CERTIFICATE_PATH">TLS_CERTIFICATE_PATH</a></code></td>
 <td class="colLast"><code>"tlsCertificatePath"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_CLIENT_AUTHENTICATION">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CLIENT_AUTHENTICATION">TLS_CLIENT_AUTHENTICATION</a></code></td>
 <td class="colLast"><code>"tlsClientAuthentication"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_ENABLED_CIPHER_SUITES">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_ENABLED_CIPHER_SUITES">TLS_ENABLED_CIPHER_SUITES</a></code></td>
 <td class="colLast"><code>"tlsEnabledCipherSuites"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_ENABLED_PROTOCOLS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_ENABLED_PROTOCOLS">TLS_ENABLED_PROTOCOLS</a></code></td>
 <td class="colLast"><code>"tlsEnabledProtocols"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_KEYSTORE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE">TLS_KEYSTORE</a></code></td>
 <td class="colLast"><code>"tlsKeyStore"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_KEYSTORE_PASSWORD_PATH">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE_PASSWORD_PATH">TLS_KEYSTORE_PASSWORD_PATH</a></code></td>
 <td class="colLast"><code>"tlsKeyStorePasswordPath"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_KEYSTORE_TYPE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE_TYPE">TLS_KEYSTORE_TYPE</a></code></td>
 <td class="colLast"><code>"tlsKeyStoreType"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_PROVIDER">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_PROVIDER">TLS_PROVIDER</a></code></td>
 <td class="colLast"><code>"tlsProvider"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_PROVIDER_FACTORY_CLASS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_PROVIDER_FACTORY_CLASS">TLS_PROVIDER_FACTORY_CLASS</a></code></td>
 <td class="colLast"><code>"tlsProviderFactoryClass"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_TRUSTSTORE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE">TLS_TRUSTSTORE</a></code></td>
 <td class="colLast"><code>"tlsTrustStore"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_TRUSTSTORE_PASSWORD_PATH">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE_PASSWORD_PATH">TLS_TRUSTSTORE_PASSWORD_PATH</a></code></td>
 <td class="colLast"><code>"tlsTrustStorePasswordPath"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.TLS_TRUSTSTORE_TYPE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE_TYPE">TLS_TRUSTSTORE_TYPE</a></code></td>
 <td class="colLast"><code>"tlsTrustStoreType"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.ZK_ENABLE_SECURITY">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_ENABLE_SECURITY">ZK_ENABLE_SECURITY</a></code></td>
 <td class="colLast"><code>"zkEnableSecurity"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.ZK_LEDGERS_ROOT_PATH">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_LEDGERS_ROOT_PATH">ZK_LEDGERS_ROOT_PATH</a></code></td>
 <td class="colLast"><code>"zkLedgersRootPath"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.ZK_REQUEST_RATE_LIMIT">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_REQUEST_RATE_LIMIT">ZK_REQUEST_RATE_LIMIT</a></code></td>
 <td class="colLast"><code>"zkRequestRateLimit"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.ZK_SERVERS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_SERVERS">ZK_SERVERS</a></code></td>
 <td class="colLast"><code>"zkServers"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.AbstractConfiguration.ZK_TIMEOUT">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
@@ -1706,62 +1680,55 @@
 <td class="colLast"><code>"startTLSTimeoutSecs"</code></td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">
-<!--   -->
-</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></code></td>
-<td class="colLast"><code>"storeSystemTimeAsLedgerCreationTime"</code></td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TASK_EXECUTION_WARN_TIME_MICROS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TASK_EXECUTION_WARN_TIME_MICROS">TASK_EXECUTION_WARN_TIME_MICROS</a></code></td>
 <td class="colLast"><code>"taskExecutionWarnTimeMicros"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.THROTTLE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#THROTTLE">THROTTLE</a></code></td>
 <td class="colLast"><code>"throttle"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_MONITOR_INTERVAL_SEC">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_MONITOR_INTERVAL_SEC">TIMEOUT_MONITOR_INTERVAL_SEC</a></code></td>
 <td class="colLast"><code>"timeoutMonitorIntervalSec"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TASK_INTERVAL_MILLIS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TASK_INTERVAL_MILLIS">TIMEOUT_TASK_INTERVAL_MILLIS</a></code></td>
 <td class="colLast"><code>"timeoutTaskIntervalMillis"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TIMER_NUM_TICKS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_NUM_TICKS">TIMEOUT_TIMER_NUM_TICKS</a></code></td>
 <td class="colLast"><code>"timeoutTimerNumTicks"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TIMER_TICK_DURATION_MS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_TICK_DURATION_MS">TIMEOUT_TIMER_TICK_DURATION_MS</a></code></td>
 <td class="colLast"><code>"timeoutTimerTickDurationMs"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.USE_V2_WIRE_PROTOCOL">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#USE_V2_WIRE_PROTOCOL">USE_V2_WIRE_PROTOCOL</a></code></td>
 <td class="colLast"><code>"useV2WireProtocol"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.WAIT_TIMEOUT_ON_BACKPRESSURE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
diff --git a/content/docs/latest/api/javadoc/index-all.html b/content/docs/latest/api/javadoc/index-all.html
index bd0c42e..5ba311e 100644
--- a/content/docs/latest/api/javadoc/index-all.html
+++ b/content/docs/latest/api/javadoc/index-all.html
@@ -295,7 +295,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.meta.LedgerManager-">areEntriesOfLedgerStoredInTheBookie(long, BookieSocketAddress, LedgerManager)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.LedgerMetadata-">areEntriesOfLedgerStoredInTheBookie(long, BookieSocketAddress, LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.api.LedgerMetadata-">areEntriesOfLedgerStoredInTheBookie(long, BookieSocketAddress, LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.html" title="class in org.apache.bookkeeper.client">BookKeeperAdm [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#asJson--">asJson()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></dt>
 <dd>
@@ -993,10 +993,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.Builder.html#Builder-org.apache.bookkeeper.conf.ClientConfiguration-">Builder(ClientConfiguration)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.Builder.html" title="class in org.apache.bookkeeper.client">BookKeeper.Builder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#buildProtoFormat--">buildProtoFormat()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#buildProtoFormat-boolean-">buildProtoFormat(boolean)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#BYTEBUF_ALLOCATOR_SIZE_INITIAL">BYTEBUF_ALLOCATOR_SIZE_INITIAL</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#BYTEBUF_ALLOCATOR_SIZE_MAX">BYTEBUF_ALLOCATOR_SIZE_MAX</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
@@ -1303,8 +1299,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#closeRecovered--">closeRecovered()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#closingAt-long-long-">closingAt(long, long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.html" title="class in org.apache.bookkeeper.stats.codahale"><span class="typeNameLink">CodahaleMetricsProvider</span></a> - Class in <a href="org/apache/bookkeeper/stats/codahale/package-summary.html">org.apache.bookkeeper.stats.codahale</a></dt>
 <dd>
 <div class="block">A <a href="org/apache/bookkeeper/stats/StatsProvider.html" title="interface in org.apache.bookkeeper.stats"><code>StatsProvider</code></a> implemented based on <i>Codahale</i> metrics library.</div>
@@ -1548,8 +1542,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/WeightedRandomSelection.html#cummulativeMap">cummulativeMap</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/WeightedRandomSelection.html" title="class in org.apache.bookkeeper.client">WeightedRandomSelection</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#CURRENT_METADATA_FORMAT_VERSION">CURRENT_METADATA_FORMAT_VERSION</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ForceLedgerOp.html#currentEnsemble">currentEnsemble</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ForceLedgerOp.html" title="class in org.apache.bookkeeper.client">ForceLedgerOp</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingReadLacOp.html#currentEnsemble">currentEnsemble</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/PendingReadLacOp.html" title="class in org.apache.bookkeeper.client">PendingReadLacOp</a></dt>
@@ -2167,7 +2159,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerFragmentReplicator.SingleFragmentCallback.html#fragmentStartId">fragmentStartId</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerFragmentReplicator.SingleFragmentCallback.html" title="class in org.apache.bookkeeper.client">LedgerFragmentReplicator.SingleFragmentCallback</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.api.LedgerMetadata-">from(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.DigestType.html#fromApiDigestType-org.apache.bookkeeper.client.api.DigestType-">fromApiDigestType(DigestType)</a></span> - Static method in enum org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a></dt>
 <dd>&nbsp;</dd>
@@ -2235,7 +2227,7 @@
 <dd>
 <div class="block">Returns the ack quorum size of this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getAckQuorumSize--">getAckQuorumSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getAckQuorumSize--">getAckQuorumSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DistributionSchedule.html#getAckSet--">getAckSet()</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DistributionSchedule.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule</a></dt>
 <dd>
@@ -2271,7 +2263,7 @@
 <dd>
 <div class="block">Returns all the ensembles of this entry.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getAllEnsembles--">getAllEnsembles()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getAllEnsembles--">getAllEnsembles()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#getAllowEphemeralPorts--">getAllowEphemeralPorts()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>
@@ -2378,7 +2370,7 @@
 <dd>
 <div class="block">Gets the failedBookie index.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getBookiesInThisLedger--">getBookiesInThisLedger()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#getBookiesInThisLedger-org.apache.bookkeeper.client.api.LedgerMetadata-">getBookiesInThisLedger(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.html#getBookieWatcher--">getBookieWatcher()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.html" title="class in org.apache.bookkeeper.client">BookKeeper</a></dt>
 <dd>&nbsp;</dd>
@@ -2520,13 +2512,13 @@
 <dd>
 <div class="block">Returns the ledger creation time.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getCtime--">getCtime()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getCtime--">getCtime()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#getCurrentEnsemble--">getCurrentEnsemble()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a></dt>
 <dd>
 <div class="block">Get the current ensemble from the ensemble list.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getCurrentEnsemble--">getCurrentEnsemble()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#getCurrentEnsemble-org.apache.bookkeeper.client.api.LedgerMetadata-">getCurrentEnsemble(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#getCurrentEnsemble--">getCurrentEnsemble()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle</a></dt>
 <dd>&nbsp;</dd>
@@ -2538,7 +2530,7 @@
 <dd>
 <div class="block">Get this ledger's customMetadata map.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getCustomMetadata--">getCustomMetadata()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getCustomMetadata--">getCustomMetadata()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#getDeathWatchInterval--">getDeathWatchInterval()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>
@@ -2564,7 +2556,7 @@
 <dd>
 <div class="block">Returns the digest type used by this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getDigestType--">getDigestType()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getDigestType--">getDigestType()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#getDisableEnsembleChangeFeatureName--">getDisableEnsembleChangeFeatureName()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
 <dd>
@@ -2622,8 +2614,6 @@
 <dd>
 <div class="block">Gets the ensemble of fragment.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getEnsemble-long-">getEnsemble(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DistributionSchedule.html#getEnsembleAckSet--">getEnsembleAckSet()</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DistributionSchedule.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule</a></dt>
 <dd>
 <div class="block">Returns an ackset object useful to wait for all bookies in the ensemble,
@@ -2635,7 +2625,7 @@
 <dd>
 <div class="block">Returns the ensemble at the given <code>entryId</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getEnsembleAt-long-">getEnsembleAt(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getEnsembleAt-long-">getEnsembleAt(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperClientStats.html#getEnsembleBookieDistributionCounter-java.lang.String-">getEnsembleBookieDistributionCounter(String)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperClientStats.html" title="interface in org.apache.bookkeeper.client">BookKeeperClientStats</a></dt>
 <dd>&nbsp;</dd>
@@ -2659,7 +2649,7 @@
 <dd>
 <div class="block">Returns the ensemble size of this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getEnsembleSize--">getEnsembleSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getEnsembleSize--">getEnsembleSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LastConfirmedAndEntry.html#getEntry--">getEntry()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LastConfirmedAndEntry.html" title="interface in org.apache.bookkeeper.client.api">LastConfirmedAndEntry</a></dt>
 <dd>
@@ -2964,15 +2954,15 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.LastConfirmedCtx.html#getlastConfirmed--">getlastConfirmed()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.LastConfirmedCtx.html" title="class in org.apache.bookkeeper.client">LedgerHandle.LastConfirmedCtx</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getLastEnsembleKey--">getLastEnsembleKey()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleKey-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleKey(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getLastEnsembleValue--">getLastEnsembleValue()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleValue-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleValue(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#getLastEntryId--">getLastEntryId()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
 <dd>
 <div class="block">Returns the last entry id of this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getLastEntryId--">getLastEntryId()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getLastEntryId--">getLastEntryId()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerFragment.html#getLastKnownEntryId--">getLastKnownEntryId()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a></dt>
 <dd>&nbsp;</dd>
@@ -3048,8 +3038,6 @@
 <dd>
 <div class="block">Returns the metadata of this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAccessor.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata(LedgerHandle)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAccessor.html" title="class in org.apache.bookkeeper.client">BookKeeperAccessor</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata(LedgerHandle)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#getLedgerMetadata--">getLedgerMetadata()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a></dt>
@@ -3088,7 +3076,7 @@
 <dd>
 <div class="block">Returns the length of the ledger in bytes.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getLength--">getLength()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getLength--">getLength()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/SyncCounter.html#getLh--">getLh()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/SyncCounter.html" title="class in org.apache.bookkeeper.client">SyncCounter</a></dt>
 <dd>&nbsp;</dd>
@@ -3180,7 +3168,11 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.html#getMetadataClientDriver--">getMetadataClientDriver()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.html" title="class in org.apache.bookkeeper.client">BookKeeper</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getMetadataFormatVersion--">getMetadataFormatVersion()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#getMetadataFormatVersion--">getMetadataFormatVersion()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
+<dd>
+<div class="block">Get the format version which should be used to serialize the metadata.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getMetadataFormatVersion--">getMetadataFormatVersion()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#getMetadataServiceUri--">getMetadataServiceUri()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></dt>
 <dd>
@@ -3239,7 +3231,7 @@
 <dd>
 <div class="block">Get the network topology stabilize period in seconds.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getNextEnsembleChange-long-">getNextEnsembleChange(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#getNextEnsembleChange-org.apache.bookkeeper.client.api.LedgerMetadata-long-">getNextEnsembleChange(LedgerMetadata, long)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>
 <div class="block">the entry id greater than the given entry-id at which the next ensemble change takes
  place.</div>
@@ -3354,7 +3346,11 @@
 <dd>
 <div class="block">Get page size.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getPassword--">getPassword()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#getPassword--">getPassword()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
+<dd>
+<div class="block">Get the password for the ledger.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getPassword--">getPassword()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#getPCBCTimeoutTimerNumTicks--">getPCBCTimeoutTimerNumTicks()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
 <dd>
@@ -3575,7 +3571,11 @@
 <dd>
 <div class="block">Return the timeout value for startTLS request.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getState--">getState()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#getState--">getState()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
+<dd>
+<div class="block">Returns the state of the metadata.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getState--">getState()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.html#getStatsLogger--">getStatsLogger()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.html" title="class in org.apache.bookkeeper.client">BookKeeper</a></dt>
 <dd>&nbsp;</dd>
@@ -3825,7 +3825,7 @@
 <dd>
 <div class="block">Returns the write quorum size of this ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getWriteQuorumSize--">getWriteQuorumSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#getWriteQuorumSize--">getWriteQuorumSize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DistributionSchedule.html#getWriteSet-long-">getWriteSet(long)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DistributionSchedule.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule</a></dt>
 <dd>
@@ -3936,7 +3936,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.LedgerEntriesIterator.html#hasNext--">hasNext()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.LedgerEntriesIterator.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin.LedgerEntriesIterator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#hasPassword--">hasPassword()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#hasPassword--">hasPassword()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
+<dd>
+<div class="block">Whether the metadata contains the password and digest type for the ledger.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#hasPassword--">hasPassword()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>
 <div class="block">In versions 4.1.0 and below, the digest type and password were not
  stored in the metadata.</div>
@@ -4192,7 +4196,7 @@
 <dd>
 <div class="block">Returns whether the ledger is sealed or not.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#isClosed--">isClosed()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#isClosed--">isClosed()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/AsyncCallback.IsClosedCallback.html#isClosedComplete-int-boolean-java.lang.Object-">isClosedComplete(int, boolean, Object)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/AsyncCallback.IsClosedCallback.html" title="interface in org.apache.bookkeeper.client">AsyncCallback.IsClosedCallback</a></dt>
 <dd>
@@ -4232,8 +4236,6 @@
 <dd>
 <div class="block">Get whether to start the http server or not.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#isInRecovery--">isInRecovery()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#isNettyUsePooledBuffers--">isNettyUsePooledBuffers()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
 <dd>
 <div class="block">Option to use Netty Pooled ByteBufs.</div>
@@ -4582,19 +4584,29 @@
 <dd>
 <div class="block">Represents the client-side metadata of a ledger.</div>
 </dd>
-<dt><a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadata</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
+<dt><a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">LedgerMetadata.State</span></a> - Enum in <a href="org/apache/bookkeeper/client/api/package-summary.html">org.apache.bookkeeper.client.api</a></dt>
 <dd>
-<div class="block">This class encapsulates all the ledger metadata that is persistently stored
- in metadata store.</div>
+<div class="block">Possible metadata states.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadata(int, int, int, int, DataFormats.LedgerMetadataFormat.State, Optional&lt;Long&gt;, Optional&lt;Long&gt;, Map&lt;Long, List&lt;BookieSocketAddress [...]
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataBuilder</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>
 <div class="block">Builder for building LedgerMetadata objects.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#LedgerMetadataBuilder--">LedgerMetadataBuilder()</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataImpl</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
+<dd>
+<div class="block">This class encapsulates all the ledger metadata that is persistently stored
+ in metadata store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#LedgerMetadataImpl-int-int-int-int-org.apache.bookkeeper.client.api.LedgerMetadata.State-java.util.Optional-java.util.Optional-java.util.Map-java.util.Optional-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadataImpl(int, int, int, int, LedgerMetadata.State, Optional&lt;Long&gt;, Optional&lt;Long&gt;, Map&lt;Long, List&lt;BookieSocketAddress&gt;&gt;, Optional&lt;DigestType&gt;, Option [...]
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataUtils</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
+<dd>
+<div class="block">Utilities for working with ledger metadata.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#LedgerMetadataUtils--">LedgerMetadataUtils()</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerOpenOp</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>
 <div class="block">Encapsulates the ledger open operation.</div>
@@ -4708,7 +4720,9 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandleAdv.html#LOG">LOG</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client">LedgerHandleAdv</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LOG">LOG</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#LOG">LOG</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#LOG">LOG</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerOpenOp.html#LOG">LOG</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></dt>
 <dd>&nbsp;</dd>
@@ -4770,8 +4784,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#LOST_BOOKIE_RECOVERY_DELAY">LOST_BOOKIE_RECOVERY_DELAY</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LOWEST_COMPAT_METADATA_FORMAT_VERSION">LOWEST_COMPAT_METADATA_FORMAT_VERSION</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 </dl>
 <a name="I:M">
 <!--   -->
@@ -4973,7 +4985,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/twitter/science/TwitterStatsLoggerImpl.html#name">name</a></span> - Variable in class org.apache.bookkeeper.stats.twitter.science.<a href="org/apache/bookkeeper/stats/twitter/science/TwitterStatsLoggerImpl.html" title="class in org.apache.bookkeeper.stats.twitter.science">TwitterStatsLoggerImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.LedgerMetadata-">needsUpdate(LedgerMetadata)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.api.LedgerMetadata-">needsUpdate(LedgerMetadata)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperClientStats.html#NETTY_EXCEPTION_CNT">NETTY_EXCEPTION_CNT</a></span> - Static variable in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperClientStats.html" title="interface in org.apache.bookkeeper.client">BookKeeperClientStats</a></dt>
 <dd>&nbsp;</dd>
@@ -11526,12 +11538,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html#parentPredicate">parentPredicate</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-java.util.Optional-">parseConfig(byte[], Optional&lt;Long&gt;)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>
-<div class="block">Parses a given byte array and transforms into a LedgerConfig object.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#parseVersion1Config-java.io.BufferedReader-">parseVersion1Config(BufferedReader)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerCreateOp.html#passwd">passwd</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerCreateOp.html" title="class in org.apache.bookkeeper.client">LedgerCreateOp</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerOpenOp.html#passwd">passwd</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></dt>
@@ -12242,7 +12248,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map&lt;String, byte[]&gt;, Set&lt;BookieSocketAddress&gt;, BookieSocketAddress, Set&lt;BookieSocketAddress&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacement [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble(BookieWatcher, LedgerMetadata, List&lt;BookieSocketAddress&gt;, Map&lt;Integer, BookieSocketAddress&gt;, String)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/E [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble(BookieWatcher, LedgerMetadata, List&lt;BookieSocketAddress&gt;, Map&lt;Integer, BookieSocketAddress&gt;, String)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/clie [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#replaceEnsembleEntry-long-java.util.List-">replaceEnsembleEntry(long, List&lt;BookieSocketAddress&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
@@ -12490,12 +12496,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.SequenceReadRequest.html#SequenceReadRequest-java.util.List-long-long-">SequenceReadRequest(List&lt;BookieSocketAddress&gt;, long, long)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.SequenceReadRequest.html" title="class in org.apache.bookkeeper.client">ReadLastConfirmedAndEntryOp.SequenceReadRequest</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#serialize--">serialize()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>
-<div class="block">Generates a byte array of this object.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#serialize-boolean-">serialize(boolean)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.html#server">server</a></span> - Variable in class org.apache.bookkeeper.stats.prometheus.<a href="org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.html" title="class in org.apache.bookkeeper.stats.prometheus">PrometheusMetricsProvider</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#SERVER_NUM_IO_THREADS">SERVER_NUM_IO_THREADS</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
@@ -13560,6 +13560,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/twitter/ostrich/OstrichProvider.html#SHOULD_SHUTDOWN_SERVICE_TRACKER">SHOULD_SHUTDOWN_SERVICE_TRACKER</a></span> - Static variable in class org.apache.bookkeeper.stats.twitter.ostrich.<a href="org/apache/bookkeeper/stats/twitter/ostrich/OstrichProvider.html" title="class in org.apache.bookkeeper.stats.twitter.ostrich">OstrichProvider</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#shouldStoreCtime--">shouldStoreCtime()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html#shouldStoreCtime-org.apache.bookkeeper.client.api.LedgerMetadata-">shouldStoreCtime(LedgerMetadata)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#shuffleWithMask-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-int-int-">shuffleWithMask(DistributionSchedule.WriteSet, int, int)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
 <dd>
 <div class="block">Shuffle all the entries of an array that matches a mask.</div>
@@ -13804,11 +13808,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html#stopExplicitLacFlush--">stopExplicitLacFlush()</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html" title="interface in org.apache.bookkeeper.client">ExplicitLacFlushPolicy</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME">STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#storeCtime">storeCtime</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#storeCtime">storeCtime</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#storingCreationTime-boolean-">storingCreationTime(boolean)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
@@ -14168,7 +14172,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeper.DigestType.html#toProtoDigestType-org.apache.bookkeeper.client.BookKeeper.DigestType-">toProtoDigestType(BookKeeper.DigestType)</a></span> - Static method in enum org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#toSafeString--">toSafeString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.html#toSafeString--">toSafeString()</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dt>
+<dd>
+<div class="block">Similar to #toString(), but omits the password of the ledger, so that it is safe to log the output.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#toSafeString--">toSafeString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>
 <div class="block">Returns a string representation of this LedgerMetadata object by
  filtering out the password field.</div>
@@ -14183,7 +14191,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerFragment.html#toString--">toString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#toString--">toString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html#toString--">toString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingAddOp.html#toString--">toString()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/PendingAddOp.html" title="class in org.apache.bookkeeper.client">PendingAddOp</a></dt>
 <dd>&nbsp;</dd>
@@ -14207,7 +14215,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/SyncCounter.html#total--">total()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/SyncCounter.html" title="class in org.apache.bookkeeper.client">SyncCounter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.LedgerMetadata-">transform(LedgerMetadata)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.api.LedgerMetadata-">transform(LedgerMetadata)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.html#triggerAudit--">triggerAudit()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin</a></dt>
 <dd>
@@ -14407,6 +14415,10 @@
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/WriteFlag.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a></dt>
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
@@ -14436,6 +14448,11 @@
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html#values--">values()</a></span> - Static method in enum org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/WriteFlag.html#values--">values()</a></span> - Static method in enum org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a></dt>
 <dd>
 <div class="block">Returns an array containing the constants of this enum type, in
@@ -14468,8 +14485,6 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#VERIFY_METADATA_ON_GC">VERIFY_METADATA_ON_GC</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#VERSION_KEY">VERSION_KEY</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html#VOID_EXPLICITLAC_FLUSH_POLICY">VOID_EXPLICITLAC_FLUSH_POLICY</a></span> - Static variable in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html" title="interface in org.apache.bookkeeper.client">ExplicitLacFlushPolicy</a></dt>
 <dd>&nbsp;</dd>
 </dl>
@@ -14514,6 +14529,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withAckQuorumSize-int-">withAckQuorumSize(int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withClosedState--">withClosedState()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withCreationTime-long-">withCreationTime(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/CreateBuilder.html#withCustomMetadata-java.util.Map-">withCustomMetadata(Map&lt;String, byte[]&gt;)</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/CreateBuilder.html" title="interface in org.apache.bookkeeper.client.api">CreateBuilder</a></dt>
@@ -14550,6 +14567,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withInRecoveryState--">withInRecoveryState()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLastEntryId-long-">withLastEntryId(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/CreateAdvBuilder.html#withLedgerId-long-">withLedgerId(long)</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/CreateAdvBuilder.html" title="interface in org.apache.bookkeeper.client.api">CreateAdvBuilder</a></dt>
 <dd>
 <div class="block">Set a fixed ledgerId for the newly created ledger.</div>
@@ -14566,6 +14585,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerDeleteOp.DeleteBuilderImpl.html#withLedgerId-long-">withLedgerId(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerDeleteOp.DeleteBuilderImpl.html" title="class in org.apache.bookkeeper.client">LedgerDeleteOp.DeleteBuilderImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLength-long-">withLength(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withMetadataFormatVersion-int-">withMetadataFormatVersion(int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/CreateBuilder.html#withPassword-byte:A-">withPassword(byte[])</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/CreateBuilder.html" title="interface in org.apache.bookkeeper.client.api">CreateBuilder</a></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAccessor.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAccessor.html
index 87961f0..63f46a6 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAccessor.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAccessor.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9};
+var methods = {"i0":9,"i1":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -156,10 +156,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>static org.apache.bookkeeper.meta.LedgerManager</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAccessor.html#getLedgerManager-org.apache.bookkeeper.client.BookKeeper-">getLedgerManager</a></span>(<a href="../../../../org/apache/bookkeeper/client/BookKeeper.html" title="class in org.apache.bookkeeper.client">BookKeeper</a>&nbsp;bk)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAccessor.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -211,22 +207,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="forceRecoverLedger-org.apache.bookkeeper.client.LedgerHandle-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>forceRecoverLedger</h4>
 <pre>public static&nbsp;void&nbsp;forceRecoverLedger(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
                                       org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;cb)</pre>
 </li>
 </ul>
-<a name="getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>getLedgerMetadata</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</pre>
-</li>
-</ul>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.html
index c3d9ef0..e5b4a44 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.html
@@ -213,14 +213,14 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.LedgerMetadata-">areEntriesOfLedgerStoredInTheBookie</a></span>(long&nbsp;ledgerId,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.api.LedgerMetadata-">areEntriesOfLedgerStoredInTheBookie</a></span>(long&nbsp;ledgerId,
                                    org.apache.bookkeeper.net.BookieSocketAddress&nbsp;bookieAddress,
-                                   <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;ledgerMetadata)</code>&nbsp;</td>
+                                   <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;ledgerMetadata)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#asyncGetLedgersContainBookies-java.util.Set-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">asyncGetLedgersContainBookies</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;bookies,
-                             org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.b [...]
+                             org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org. [...]
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -311,11 +311,11 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getConf--">getConf</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i15" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgersContainBookies-java.util.Set-">getLedgersContainBookies</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;bookies)</code>&nbsp;</td>
 </tr>
 <tr id="i17" class="rowColor">
@@ -767,7 +767,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 <ul class="blockList">
 <li class="blockList">
 <h4>getLedgersContainBookies</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;getLedgersContainBookies(<a href="https:/ [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;getLedgersContainBookies(<a h [...]
                                                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                                                <a href="../../../../org/apache/bookkeeper/client/BKException.html" title="class in org.apache.bookkeeper.client">BKException</a></pre>
 <dl>
@@ -784,7 +784,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 <li class="blockList">
 <h4>asyncGetLedgersContainBookies</h4>
 <pre>public&nbsp;void&nbsp;asyncGetLedgersContainBookies(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;bookies,
-                                          org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in [...]
+                                          org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="inte [...]
 </li>
 </ul>
 <a name="recoverBookieData-org.apache.bookkeeper.net.BookieSocketAddress-">
@@ -1091,7 +1091,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 <ul class="blockList">
 <li class="blockList">
 <h4>getLedgerMetadata</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;getLedgerMetadata(<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the metadata for the passed ledger handle</dd>
@@ -1216,7 +1216,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
                                                           org.apache.bookkeeper.meta.LedgerManager&nbsp;ledgerManager)</pre>
 </li>
 </ul>
-<a name="areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.api.LedgerMetadata-">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -1224,7 +1224,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoClos
 <h4>areEntriesOfLedgerStoredInTheBookie</h4>
 <pre>public static&nbsp;boolean&nbsp;areEntriesOfLedgerStoredInTheBookie(long&nbsp;ledgerId,
                                                           org.apache.bookkeeper.net.BookieSocketAddress&nbsp;bookieAddress,
-                                                          <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;ledgerMetadata)</pre>
+                                                          <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;ledgerMetadata)</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsembleUtils.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsembleUtils.html
index 5696ee5..bda3235 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsembleUtils.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsembleUtils.html
@@ -153,8 +153,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.client">BookieWatcher</a>&nbsp;bookieWatcher,
-                        <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.client">BookieWatcher</a>&nbsp;bookieWatcher,
+                        <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;oldEnsemble,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logContext)</code>&nbsp;</td>
@@ -198,14 +198,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">
+<a name="replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceBookiesInEnsemble</h4>
 <pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;replaceBookiesInEnsemble(<a href="../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.client">BookieWatcher</a>&nbsp;bookieWatcher,
-                                                                                    <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                                                                                    <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;oldEnsemble,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logContext)
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
index 1fc0186..26c7f00 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
@@ -206,7 +206,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#metadata">metadata</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -331,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>metadata</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a> metadata</pre>
+<pre><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a> metadata</pre>
 </li>
 </ul>
 <a name="lh">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html
index 2073dac..44b0f13 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html
@@ -294,7 +294,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -618,7 +618,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </td>
 </tr>
 <tr id="i43" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>
 <div class="block">Returns the metadata of this ledger.</div>
 </td>
@@ -643,7 +643,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </td>
 </tr>
 <tr id="i47" class="rowColor">
-<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#getVersionedLedgerMetadata--">getVersionedLedgerMetadata</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i48" class="altColor">
@@ -764,8 +764,8 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </tr>
 <tr id="i70" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;expected,
-                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;expected,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
 </tr>
 <tr id="i71" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
@@ -1099,7 +1099,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <h4>LedgerHandle</h4>
 <pre>LedgerHandle(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
              long&nbsp;ledgerId,
-             org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+             org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
              <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
              byte[]&nbsp;password,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)
@@ -1222,7 +1222,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getLedgerMetadata</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
 <div class="block">Returns the metadata of this ledger.
 
  <p>This call only retrieves the metadata cached locally. If there is any metadata updated, the read
@@ -1242,7 +1242,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersionedLedgerMetadata</h4>
-<pre>org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;getVersionedLedgerMetadata()</pre>
+<pre>org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;getVersionedLedgerMetadata()</pre>
 </li>
 </ul>
 <a name="setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">
@@ -1251,8 +1251,8 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>setLedgerMetadata</h4>
-<pre>boolean&nbsp;setLedgerMetadata(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;expected,
-                          org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
+<pre>boolean&nbsp;setLedgerMetadata(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;expected,
+                          org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
 </li>
 </ul>
 <a name="getCustomMetadata--">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html
index b39b13c..69f4f21 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" target="_top">Frames</a></li>
@@ -249,7 +249,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" target="_top">Frames</a></li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
index e402271..93a4dcd 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
@@ -196,7 +196,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -392,7 +392,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <h4>LedgerHandleAdv</h4>
 <pre>LedgerHandleAdv(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                 long&nbsp;ledgerId,
-                org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+                org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                 <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                 byte[]&nbsp;password,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
index d56de4e..ced2126 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -49,8 +49,8 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataBuilder.html" target="_top">Frames</a></li>
@@ -150,40 +150,39 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#build--">build</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#closingAt-long-long-">closingAt</a></span>(long&nbsp;lastEntryId,
-         long&nbsp;length)</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#create--">create</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.api.LedgerMetadata-">from</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#newEnsembleEntry-long-java.util.List-">newEnsembleEntry</a></span>(long&nbsp;firstEntry,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;ensemble)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#replaceEnsembleEntry-long-java.util.List-">replaceEnsembleEntry</a></span>(long&nbsp;firstEntry,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;ensemble)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#storingCreationTime-boolean-">storingCreationTime</a></span>(boolean&nbsp;storing)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withAckQuorumSize-int-">withAckQuorumSize</a></span>(int&nbsp;ackQuorumSize)</code>&nbsp;</td>
 </tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withClosedState--">withClosedState</a></span>()</code>&nbsp;</td>
+</tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withCreationTime-long-">withCreationTime</a></span>(long&nbsp;ctime)</code>&nbsp;</td>
@@ -206,14 +205,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withMetadataFormatVersion-int-">withMetadataFormatVersion</a></span>(int&nbsp;version)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLastEntryId-long-">withLastEntryId</a></span>(long&nbsp;lastEntryId)</code>&nbsp;</td>
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLength-long-">withLength</a></span>(long&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withMetadataFormatVersion-int-">withMetadataFormatVersion</a></span>(int&nbsp;version)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withWriteQuorumSize-int-">withWriteQuorumSize</a></span>(int&nbsp;writeQuorumSize)</code>&nbsp;</td>
 </tr>
 </table>
@@ -264,13 +271,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;create()</pre>
 </li>
 </ul>
-<a name="from-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="from-org.apache.bookkeeper.client.api.LedgerMetadata-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>from</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;from(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;from(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;other)</pre>
 </li>
 </ul>
 <a name="withMetadataFormatVersion-int-">
@@ -356,14 +363,31 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withInRecoveryState()</pre>
 </li>
 </ul>
-<a name="closingAt-long-long-">
+<a name="withClosedState--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withClosedState</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withClosedState()</pre>
+</li>
+</ul>
+<a name="withLastEntryId-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withLastEntryId</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withLastEntryId(long&nbsp;lastEntryId)</pre>
+</li>
+</ul>
+<a name="withLength-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>closingAt</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;closingAt(long&nbsp;lastEntryId,
-                                       long&nbsp;length)</pre>
+<h4>withLength</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withLength(long&nbsp;length)</pre>
 </li>
 </ul>
 <a name="withCustomMetadata-java.util.Map-">
@@ -399,7 +423,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>build</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;build()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;build()</pre>
 </li>
 </ul>
 </li>
@@ -430,8 +454,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataBuilder.html" target="_top">Frames</a></li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataImpl.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataImpl.html
new file mode 100644
index 0000000..ab384fe
--- /dev/null
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataImpl.html
@@ -0,0 +1,765 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LedgerMetadataImpl (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LedgerMetadataImpl (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LedgerMetadataImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataImpl.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.bookkeeper.client</div>
+<h2 title="Class LedgerMetadataImpl" class="title">Class LedgerMetadataImpl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.bookkeeper.client.LedgerMetadataImpl</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>class <span class="typeNameLabel">LedgerMetadataImpl</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></pre>
+<div class="block">This class encapsulates all the ledger metadata that is persistently stored
+ in metadata store.
+
+ <p>It provides parsing and serialization methods of such metadata.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.bookkeeper.client.api.LedgerMetadata">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.bookkeeper.client.api.<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></h3>
+<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static org.slf4j.Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#storeCtime">storeCtime</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#LedgerMetadataImpl-int-int-int-int-org.apache.bookkeeper.client.api.LedgerMetadata.State-java.util.Optional-java.util.Optional-java.util.Map-java.util.Optional-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadataImpl</a></span>(int&nbsp;metadataFormatVersion,
+                  int&nbsp;ensembleSize,
+                  int&nbsp;writeQuorumSize,
+                  int&nbsp;ackQuorumSize,
+                  <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;state,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;lastEntryId,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;length,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&gt;&nb [...]
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&gt;&nbsp;digestType,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;password,
+                  long&nbsp;ctime,
+                  boolean&nbsp;storeCtime,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getAckQuorumSize--">getAckQuorumSize</a></span>()</code>
+<div class="block">Returns the ack quorum size of this ledger.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeep [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getAllEnsembles--">getAllEnsembles</a></span>()</code>
+<div class="block">Returns all the ensembles of this entry.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getCtime--">getCtime</a></span>()</code>
+<div class="block">Returns the creation timestamp of this ledger.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getCustomMetadata--">getCustomMetadata</a></span>()</code>
+<div class="block">Returns the custom metadata stored with the ledgers.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getDigestType--">getDigestType</a></span>()</code>
+<div class="block">Returns the digest type used by this ledger.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getEnsembleAt-long-">getEnsembleAt</a></span>(long&nbsp;entryId)</code>
+<div class="block">Returns the ensemble at the given <code>entryId</code>.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getEnsembleSize--">getEnsembleSize</a></span>()</code>
+<div class="block">Returns the ensemble size of this ledger.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getLastEntryId--">getLastEntryId</a></span>()</code>
+<div class="block">Returns the last entry id of this ledger.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getLength--">getLength</a></span>()</code>
+<div class="block">Returns the length of this ledger.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getMetadataFormatVersion--">getMetadataFormatVersion</a></span>()</code>
+<div class="block">Get the format version which should be used to serialize the metadata.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Get the password for the ledger.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getState--">getState</a></span>()</code>
+<div class="block">Returns the state of the metadata.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getWriteQuorumSize--">getWriteQuorumSize</a></span>()</code>
+<div class="block">Returns the write quorum size of this ledger.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#hasPassword--">hasPassword</a></span>()</code>
+<div class="block">In versions 4.1.0 and below, the digest type and password were not
+ stored in the metadata.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#isClosed--">isClosed</a></span>()</code>
+<div class="block">Returns whether the ledger is sealed or not.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#shouldStoreCtime--">shouldStoreCtime</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#toSafeString--">toSafeString</a></span>()</code>
+<div class="block">Returns a string representation of this LedgerMetadata object by
+ filtering out the password field.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>static final&nbsp;org.slf4j.Logger LOG</pre>
+</li>
+</ul>
+<a name="storeCtime">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>storeCtime</h4>
+<pre>final&nbsp;boolean storeCtime</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LedgerMetadataImpl-int-int-int-int-org.apache.bookkeeper.client.api.LedgerMetadata.State-java.util.Optional-java.util.Optional-java.util.Map-java.util.Optional-java.util.Optional-long-boolean-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LedgerMetadataImpl</h4>
+<pre>LedgerMetadataImpl(int&nbsp;metadataFormatVersion,
+                   int&nbsp;ensembleSize,
+                   int&nbsp;writeQuorumSize,
+                   int&nbsp;ackQuorumSize,
+                   <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;state,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;lastEntryId,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;length,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&gt;&n [...]
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&gt;&nbsp;digestType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;password,
+                   long&nbsp;ctime,
+                   boolean&nbsp;storeCtime,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAllEnsembles--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllEnsembles</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.Boo [...]
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getAllEnsembles--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns all the ensembles of this entry.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getAllEnsembles--">getAllEnsembles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>all the ensembles of this entry.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEnsembleSize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnsembleSize</h4>
+<pre>public&nbsp;int&nbsp;getEnsembleSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getEnsembleSize--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the ensemble size of this ledger.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getEnsembleSize--">getEnsembleSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ensemble size of this ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteQuorumSize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteQuorumSize</h4>
+<pre>public&nbsp;int&nbsp;getWriteQuorumSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getWriteQuorumSize--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the write quorum size of this ledger.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getWriteQuorumSize--">getWriteQuorumSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the write quorum size of this ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAckQuorumSize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAckQuorumSize</h4>
+<pre>public&nbsp;int&nbsp;getAckQuorumSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getAckQuorumSize--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the ack quorum size of this ledger.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getAckQuorumSize--">getAckQuorumSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ack quorum size of this ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCtime--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCtime</h4>
+<pre>public&nbsp;long&nbsp;getCtime()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getCtime--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the creation timestamp of this ledger.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getCtime--">getCtime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the creation timestamp of this ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPassword</h4>
+<pre>public&nbsp;boolean&nbsp;hasPassword()</pre>
+<div class="block">In versions 4.1.0 and below, the digest type and password were not
+ stored in the metadata.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#hasPassword--">hasPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the password has been stored in the metadata</dd>
+</dl>
+</li>
+</ul>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;byte[]&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getPassword--">LedgerMetadata</a></code></span></div>
+<div class="block">Get the password for the ledger.
+ For ledgers created with version 4.1.0 or older, an empty byte array is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the password for the ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDigestType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDigestType</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;getDigestType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getDigestType--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the digest type used by this ledger.
+ May return null if the ledger was created with version 4.1.0 or below.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getDigestType--">getDigestType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the digest type used by this ledger.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastEntryId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastEntryId</h4>
+<pre>public&nbsp;long&nbsp;getLastEntryId()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getLastEntryId--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the last entry id of this ledger.
+
+ <p>If this ledger is not sealed <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#isClosed--"><code>LedgerMetadata.isClosed()</code></a>, it returns <code>-1L</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getLastEntryId--">getLastEntryId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last entry id of this ledger if it is sealed, otherwise -1.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLength--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre>public&nbsp;long&nbsp;getLength()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getLength--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the length of this ledger.
+
+ <p>If this ledger is not sealed <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#isClosed--"><code>LedgerMetadata.isClosed()</code></a>, it returns <code>0</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getLength--">getLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the length of this ledger if it is sealed, otherwise 0.</dd>
+</dl>
+</li>
+</ul>
+<a name="isClosed--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClosed</h4>
+<pre>public&nbsp;boolean&nbsp;isClosed()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#isClosed--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns whether the ledger is sealed or not.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#isClosed--">isClosed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the ledger is sealed, otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a name="getState--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getState</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;getState()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getState--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the state of the metadata.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getState--">getState</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the state of the metadata.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEnsembleAt-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnsembleAt</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;getEnsembleAt(long&nbsp;entryId)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getEnsembleAt-long-">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the ensemble at the given <code>entryId</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getEnsembleAt-long-">getEnsembleAt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entryId</code> - the entry id to retrieve its ensemble information</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ensemble which contains the given <code>entryId</code>.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCustomMetadata--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCustomMetadata</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;getCustomMetadata()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getCustomMetadata--">LedgerMetadata</a></code></span></div>
+<div class="block">Returns the custom metadata stored with the ledgers.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getCustomMetadata--">getCustomMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the custom metadata stored with the ledgers.</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="toSafeString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toSafeString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toSafeString()</pre>
+<div class="block">Returns a string representation of this LedgerMetadata object by
+ filtering out the password field.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#toSafeString--">toSafeString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string representation of the object without password field in
+         it.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMetadataFormatVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadataFormatVersion</h4>
+<pre>public&nbsp;int&nbsp;getMetadataFormatVersion()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getMetadataFormatVersion--">LedgerMetadata</a></code></span></div>
+<div class="block">Get the format version which should be used to serialize the metadata.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getMetadataFormatVersion--">getMetadataFormatVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the format version.</dd>
+</dl>
+</li>
+</ul>
+<a name="shouldStoreCtime--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shouldStoreCtime</h4>
+<pre>boolean&nbsp;shouldStoreCtime()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LedgerMetadataImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataImpl.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataUtils.html
similarity index 52%
copy from content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
copy to content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataUtils.html
index 101cf49..60d8f1c 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataUtils.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>MetadataUpdateLoop (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<title>LedgerMetadataUtils (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,14 +12,14 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MetadataUpdateLoop (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+            parent.document.title="LedgerMetadataUtils (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MetadataUpdateLoop.html">Use</a></li>
+<li><a href="class-use/LedgerMetadataUtils.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/ListenerBasedPendingReadOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/bookkeeper/client/MetadataUpdateLoop.html" target="_top">Frames</a></li>
-<li><a href="MetadataUpdateLoop.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataUtils.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -93,14 +93,14 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.bookkeeper.client</div>
-<h2 title="Class MetadataUpdateLoop" class="title">Class MetadataUpdateLoop</h2>
+<h2 title="Class LedgerMetadataUtils" class="title">Class LedgerMetadataUtils</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.bookkeeper.client.MetadataUpdateLoop</li>
+<li>org.apache.bookkeeper.client.LedgerMetadataUtils</li>
 </ul>
 </li>
 </ul>
@@ -109,55 +109,15 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>class <span class="typeNameLabel">MetadataUpdateLoop</span>
+<pre>public class <span class="typeNameLabel">LedgerMetadataUtils</span>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Mechanism to safely update the metadata of a ledger.
-
- <p>The loop takes the following steps:
- 1. Check if the metadata needs to be changed.
- 2. Make a copy of the metadata and modify it.
- 3. Write the modified copy to zookeeper.
- 3.1 If the write succeeds, go to 6.
- 3.2 If the write fails because of a failed compare and swap, go to 4.
- 4. Read the metadata back from the store
- 5. Update the local copy of the metadata with the metadata read in 4, go to 1.
- 6. Update the local copy of the metadata with the metadata which has just been written.
-
- <p>All mutating operations are compare and swap operation. If the compare fails, another
- iteration of the loop begins.</div>
+<div class="block">Utilities for working with ledger metadata.</div>
 </li>
 </ul>
 </div>
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="nested.class.summary">
-<!--   -->
-</a>
-<h3>Nested Class Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
-<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -172,7 +132,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) static org.slf4j.Logger</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#LOG">LOG</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -189,14 +149,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerManag [...]
-                  long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
-                  <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
-                  <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
-                  <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
-<div class="block">Construct the loop.</div>
-</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#LedgerMetadataUtils--">LedgerMetadataUtils</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -208,14 +161,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#run--">run</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getBookiesInThisLedger-org.apache.bookkeeper.client.api.LedgerMetadata-">getBookiesInThisLedger</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getCurrentEnsemble-org.apache.bookkeeper.client.api.LedgerMetadata-">getCurrentEnsemble</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleKey-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleKey</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleValue-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleValue</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>(package private) static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getNextEnsembleChange-org.apache.bookkeeper.client.api.LedgerMetadata-long-">getNextEnsembleChange</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                     long&nbsp;entryId)</code>
+<div class="block">the entry id greater than the given entry-id at which the next ensemble change takes
+ place.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#shouldStoreCtime-org.apache.bookkeeper.client.api.LedgerMetadata-">shouldStoreCtime</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -256,32 +233,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">
+<a name="LedgerMetadataUtils--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>MetadataUpdateLoop</h4>
-<pre>MetadataUpdateLoop(org.apache.bookkeeper.meta.LedgerManager&nbsp;lm,
-                   long&nbsp;ledgerId,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
-                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
-                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
-                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</pre>
-<div class="block">Construct the loop. This takes a set of functions which may be called multiple times
- during the loop.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>lm</code> - the ledger manager used for reading and writing metadata</dd>
-<dd><code>ledgerId</code> - the id of the ledger we will be operating on</dd>
-<dd><code>currentLocalValue</code> - should return the current local value of the metadata</dd>
-<dd><code>needsTransformation</code> - should return true, if the metadata needs to be modified.
-                            should throw an exception, if this update doesn't make sense.</dd>
-<dd><code>transform</code> - takes a metadata objects, transforms, and returns it, without modifying
-                  the original</dd>
-<dd><code>updateLocalValue</code> - if the local value matches the first parameter, update it to the
-                         second parameter and return true, return false otherwise</dd>
-</dl>
+<h4>LedgerMetadataUtils</h4>
+<pre>public&nbsp;LedgerMetadataUtils()</pre>
 </li>
 </ul>
 </li>
@@ -292,13 +250,67 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="run--">
+<a name="getCurrentEnsemble-org.apache.bookkeeper.client.api.LedgerMetadata-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentEnsemble</h4>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;getCurrentEnsemble(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</pre>
+</li>
+</ul>
+<a name="getNextEnsembleChange-org.apache.bookkeeper.client.api.LedgerMetadata-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNextEnsembleChange</h4>
+<pre>static&nbsp;long&nbsp;getNextEnsembleChange(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                                  long&nbsp;entryId)</pre>
+<div class="block">the entry id greater than the given entry-id at which the next ensemble change takes
+ place.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entryId</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entry id of the next ensemble change (-1 if no further ensemble changes)</dd>
+</dl>
+</li>
+</ul>
+<a name="getBookiesInThisLedger-org.apache.bookkeeper.client.api.LedgerMetadata-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBookiesInThisLedger</h4>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;getBookiesInThisLedger(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</pre>
+</li>
+</ul>
+<a name="getLastEnsembleValue-org.apache.bookkeeper.client.api.LedgerMetadata-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastEnsembleValue</h4>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;getLastEnsembleValue(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</pre>
+</li>
+</ul>
+<a name="getLastEnsembleKey-org.apache.bookkeeper.client.api.LedgerMetadata-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastEnsembleKey</h4>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;getLastEnsembleKey(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</pre>
+</li>
+</ul>
+<a name="shouldStoreCtime-org.apache.bookkeeper.client.api.LedgerMetadata-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>run</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;run()</pre>
+<h4>shouldStoreCtime</h4>
+<pre>public static&nbsp;boolean&nbsp;shouldStoreCtime(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</pre>
 </li>
 </ul>
 </li>
@@ -320,7 +332,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MetadataUpdateLoop.html">Use</a></li>
+<li><a href="class-use/LedgerMetadataUtils.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../index-all.html">Index</a></li>
@@ -329,12 +341,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/ListenerBasedPendingReadOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/bookkeeper/client/MetadataUpdateLoop.html" target="_top">Frames</a></li>
-<li><a href="MetadataUpdateLoop.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/bookkeeper/client/LedgerMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataUtils.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -354,7 +366,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
index 937974a..bd1c081 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -516,7 +516,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html
index a95d001..c651155 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html
@@ -214,7 +214,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/ListenerBasedPendingRe
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -288,7 +288,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/ListenerBasedPendingRe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLedgerMetadata</h4>
-<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
+<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../org/apache/bookkeeper/client/PendingReadOp.html#getLedgerMetadata--">getLedgerMetadata</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/bookkeeper/client/PendingReadOp.html" title="class in org.apache.bookkeeper.client">PendingReadOp</a></code></dd>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.html
index 5c649f6..17777d4 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerRecoveryOp.html
@@ -178,7 +178,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryList
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html#metadataForRecovery">metadataForRecovery</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -378,7 +378,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryList
 <ul class="blockList">
 <li class="blockList">
 <h4>metadataForRecovery</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a> metadataForRecovery</pre>
+<pre><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a> metadataForRecovery</pre>
 </li>
 </ul>
 <a name="entryListener">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
index 60e84ea..223aab7 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
@@ -126,8 +126,8 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;oldValue,
-           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;oldValue,
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -150,8 +150,8 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateValue</h4>
-<pre>boolean&nbsp;updateValue(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;oldValue,
-                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</pre>
+<pre>boolean&nbsp;updateValue(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;oldValue,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newValue)</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html
index 4d7386a..4b28562 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html
@@ -125,8 +125,8 @@ var activeTableTab = "activeTableTab";
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.LedgerMetadata-">transform</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.api.LedgerMetadata-">transform</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -143,13 +143,13 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="transform-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="transform-org.apache.bookkeeper.client.api.LedgerMetadata-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>transform</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;transform(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)
+<pre><a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;transform(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html
index e2605ae..09cd8c3 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html
@@ -126,7 +126,7 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.LedgerMetadata-">needsUpdate</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.api.LedgerMetadata-">needsUpdate</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -143,13 +143,13 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="needsUpdate-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="needsUpdate-org.apache.bookkeeper.client.api.LedgerMetadata-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>needsUpdate</h4>
-<pre>boolean&nbsp;needsUpdate(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)
+<pre>boolean&nbsp;needsUpdate(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
index 101cf49..3359a44 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
@@ -191,7 +191,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerManag [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
@@ -214,7 +214,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#run--">run</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -264,7 +264,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <h4>MetadataUpdateLoop</h4>
 <pre>MetadataUpdateLoop(org.apache.bookkeeper.meta.LedgerManager&nbsp;lm,
                    long&nbsp;ledgerId,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</pre>
@@ -298,7 +298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;run()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;run()</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/PendingReadOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/PendingReadOp.html
index e0d33a0..17d0844 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/PendingReadOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/PendingReadOp.html
@@ -273,7 +273,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryCall
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/PendingReadOp.html#future--">future</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/PendingReadOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
@@ -495,7 +495,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryCall
 <ul class="blockList">
 <li class="blockList">
 <h4>getLedgerMetadata</h4>
-<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
+<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
 </li>
 </ul>
 <a name="cancelSpeculativeTask-boolean-">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html
index d06d170..1f57f3d 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html
@@ -242,7 +242,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryCall
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html#cancelSpeculativeTask-boolean-">cancelSpeculativeTask</a></span>(boolean&nbsp;mayInterruptIfRunning)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
@@ -407,7 +407,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryCall
 <ul class="blockList">
 <li class="blockList">
 <h4>getLedgerMetadata</h4>
-<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
+<pre>protected&nbsp;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;getLedgerMetadata()</pre>
 </li>
 </ul>
 <a name="parallelRead-boolean-">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
index 964a075..5136865 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
@@ -143,7 +143,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#newMetadata">newMetadata</a></span></code>&nbsp;</td>
 </tr>
 </table>
@@ -168,7 +168,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -235,7 +235,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>newMetadata</h4>
-<pre>final&nbsp;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt; newMetadata</pre>
+<pre>final&nbsp;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt; newMetadata</pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetadataUpdater</h4>
-<pre>MetadataUpdater(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata)</pre>
+<pre>MetadataUpdater(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata)</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
index cd16674..541d7fa 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
@@ -186,7 +186,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                     long&nbsp;ledgerId,
-                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
@@ -257,7 +257,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 </td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#closeRecovered--">closeRecovered</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
@@ -284,7 +284,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.versioning.Versioned-">onChanged</a></span>(long&nbsp;lid,
-         org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>
+         org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>
 <div class="block">Triggered each time ledger metadata changed.</div>
 </td>
 </tr>
@@ -355,7 +355,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <h4>ReadOnlyLedgerHandle</h4>
 <pre>ReadOnlyLedgerHandle(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                      long&nbsp;ledgerId,
-                     org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+                     org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                      <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                      byte[]&nbsp;password,
                      boolean&nbsp;watch)
@@ -544,7 +544,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <li class="blockList">
 <h4>onChanged</h4>
 <pre>public&nbsp;void&nbsp;onChanged(long&nbsp;lid,
-                      org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
+                      org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadataListener</code></span></div>
 <div class="block">Triggered each time ledger metadata changed.</div>
 <dl>
@@ -660,7 +660,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRecovered</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;closeRecovered()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;closeRecovered()</pre>
 </li>
 </ul>
 <a name="getCurrentEnsemble--">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.State.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.State.html
new file mode 100644
index 0000000..9e2a27d
--- /dev/null
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.State.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LedgerMetadata.State (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LedgerMetadata.State (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LedgerMetadata.State.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/OpBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/api/LedgerMetadata.State.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadata.State.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.bookkeeper.client.api</div>
+<h2 title="Enum LedgerMetadata.State" class="title">Enum LedgerMetadata.State</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.bookkeeper.client.api.LedgerMetadata.State</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">LedgerMetadata.State</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&gt;</pre>
+<div class="block">Possible metadata states.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#CLOSED">CLOSED</a></span></code>
+<div class="block">The ledger is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#IN_RECOVERY">IN_RECOVERY</a></span></code>
+<div class="block">A reader has tried to, or may be trying to recover the ledger.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#OPEN">OPEN</a></span></code>
+<div class="block">The ledger is open.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https: [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://doc [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="OPEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OPEN</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a> OPEN</pre>
+<div class="block">The ledger is open. New entry may be added to it.</div>
+</li>
+</ul>
+<a name="IN_RECOVERY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IN_RECOVERY</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a> IN_RECOVERY</pre>
+<div class="block">A reader has tried to, or may be trying to recover the ledger.
+            The writer may be able to add new entries if fencing hasn't already occurred,
+            but any attempt to change ensemble will fail and the write will be forced to
+            close the ledger.</div>
+</li>
+</ul>
+<a name="CLOSED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a> CLOSED</pre>
+<div class="block">The ledger is closed. No new entries may be added to it.
+            The length and lastEntryId are fixed. Ensembles may change, but only for rereplication.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (LedgerMetadata.State c : LedgerMetadata.State.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;valueOf(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LedgerMetadata.State.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/OpBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/api/LedgerMetadata.State.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadata.State.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.html
index a7f20ae..7c378c5 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/LedgerMetadata.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerEntry.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/bookkeeper/client/api/OpBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/bookkeeper/client/api/LedgerMetadata.html" target="_top">Frames</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -101,7 +101,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dd>
+<dd><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></dd>
 </dl>
 <hr>
 <br>
@@ -119,6 +119,27 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></span></code>
+<div class="block">Possible metadata states.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
 <!-- ========== METHOD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="method.summary">
@@ -187,16 +208,46 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 </tr>
 <tr id="i9" class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getMetadataFormatVersion--">getMetadataFormatVersion</a></span>()</code>
+<div class="block">Get the format version which should be used to serialize the metadata.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Get the password for the ledger.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getState--">getState</a></span>()</code>
+<div class="block">Returns the state of the metadata.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getWriteQuorumSize--">getWriteQuorumSize</a></span>()</code>
 <div class="block">Returns the write quorum size of this ledger.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#hasPassword--">hasPassword</a></span>()</code>
+<div class="block">Whether the metadata contains the password and digest type for the ledger.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#isClosed--">isClosed</a></span>()</code>
 <div class="block">Returns whether the ledger is sealed or not.</div>
 </td>
 </tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#toSafeString--">toSafeString</a></span>()</code>
+<div class="block">Similar to #toString(), but omits the password of the ledger, so that it is safe to log the output.</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -286,6 +337,36 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 </dl>
 </li>
 </ul>
+<a name="hasPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPassword</h4>
+<pre>boolean&nbsp;hasPassword()</pre>
+<div class="block">Whether the metadata contains the password and digest type for the ledger.
+ Ledgers created with version 4.1.0 clients or older do not have this information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the metadata contains the password and digest type, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>byte[]&nbsp;getPassword()</pre>
+<div class="block">Get the password for the ledger.
+ For ledgers created with version 4.1.0 or older, an empty byte array is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the password for the ledger.</dd>
+</dl>
+</li>
+</ul>
 <a name="getDigestType--">
 <!--   -->
 </a>
@@ -293,7 +374,8 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 <li class="blockList">
 <h4>getDigestType</h4>
 <pre><a href="../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;getDigestType()</pre>
-<div class="block">Returns the digest type used by this ledger.</div>
+<div class="block">Returns the digest type used by this ledger.
+ May return null if the ledger was created with version 4.1.0 or below.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the digest type used by this ledger.</dd>
@@ -361,7 +443,7 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 <a name="getAllEnsembles--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getAllEnsembles</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAdd [...]
@@ -372,6 +454,48 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 </dl>
 </li>
 </ul>
+<a name="getState--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getState</h4>
+<pre><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;getState()</pre>
+<div class="block">Returns the state of the metadata.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the state of the metadata.</dd>
+</dl>
+</li>
+</ul>
+<a name="toSafeString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toSafeString</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toSafeString()</pre>
+<div class="block">Similar to #toString(), but omits the password of the ledger, so that it is safe to log the output.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string representation of the metadata, omitting the password.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMetadataFormatVersion--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMetadataFormatVersion</h4>
+<pre>int&nbsp;getMetadataFormatVersion()</pre>
+<div class="block">Get the format version which should be used to serialize the metadata.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the format version.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
@@ -401,7 +525,7 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerEntry.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/bookkeeper/client/api/OpBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/bookkeeper/client/api/LedgerMetadata.html" target="_top">Frames</a></li>
@@ -425,7 +549,7 @@ public interface <span class="typeNameLabel">LedgerMetadata</span></pre>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/OpBuilder.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/OpBuilder.html
index b964130..27933af 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/OpBuilder.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/OpBuilder.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/bookkeeper/client/api/OpenBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -200,7 +200,7 @@ public interface <span class="typeNameLabel">OpBuilder&lt;T&gt;</span></pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/bookkeeper/client/api/OpenBuilder.html" title="interface in org.apache.bookkeeper.client.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
index 040a38f..52b816b 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
@@ -118,7 +118,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#getDigestType--">getDigestType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getDigestType--">getDigestType</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a></code></td>
@@ -148,25 +148,25 @@
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with parameters of type <a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type arguments of type <a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadata</a></span>(int&nbsp;metadataFormatVersion,
-              int&nbsp;ensembleSize,
-              int&nbsp;writeQuorumSize,
-              int&nbsp;ackQuorumSize,
-              org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State&nbsp;state,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;lastEntryId,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;length,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&gt;&nbsp;e [...]
-              <a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;password,
-              long&nbsp;ctime,
-              boolean&nbsp;storeCtime,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#LedgerMetadataImpl-int-int-int-int-org.apache.bookkeeper.client.api.LedgerMetadata.State-java.util.Optional-java.util.Optional-java.util.Map-java.util.Optional-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadataImpl</a></span>(int&nbsp;metadataFormatVersion,
+                  int&nbsp;ensembleSize,
+                  int&nbsp;writeQuorumSize,
+                  int&nbsp;ackQuorumSize,
+                  <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;state,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;lastEntryId,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;length,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&gt;&nb [...]
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&gt;&nbsp;digestType,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;password,
+                  long&nbsp;ctime,
+                  boolean&nbsp;storeCtime,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html
new file mode 100644
index 0000000..92e188c
--- /dev/null
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.bookkeeper.client.api.LedgerMetadata.State (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.bookkeeper.client.api.LedgerMetadata.State (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadata.State.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.bookkeeper.client.api.LedgerMetadata.State" class="title">Uses of Class<br>org.apache.bookkeeper.client.api.LedgerMetadata.State</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.bookkeeper.client">org.apache.bookkeeper.client</a></td>
+<td class="colLast">
+<div class="block">BookKeeper Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.bookkeeper.client.api">org.apache.bookkeeper.client.api</a></td>
+<td class="colLast">
+<div class="block">BookKeeper Client Public API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.bookkeeper.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a> in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> that return <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#getState--">getState</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with parameters of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html#LedgerMetadataImpl-int-int-int-int-org.apache.bookkeeper.client.api.LedgerMetadata.State-java.util.Optional-java.util.Optional-java.util.Map-java.util.Optional-java.util.Optional-long-boolean-java.util.Map-">LedgerMetadataImpl</a></span>(int&nbsp;metadataFormatVersion,
+                  int&nbsp;ensembleSize,
+                  int&nbsp;writeQuorumSize,
+                  int&nbsp;ackQuorumSize,
+                  <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>&nbsp;state,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;lastEntryId,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;length,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&gt;&nb [...]
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&gt;&nbsp;digestType,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;password,
+                  long&nbsp;ctime,
+                  boolean&nbsp;storeCtime,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.bookkeeper.client.api">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a> in <a href="../../../../../../org/apache/bookkeeper/client/api/package-summary.html">org.apache.bookkeeper.client.api</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/bookkeeper/client/api/package-summary.html">org.apache.bookkeeper.client.api</a> that return <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html#getState--">getState</a></span>()</code>
+<div class="block">Returns the state of the metadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadata.State.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadata.State.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadata.State.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
index 178f68e..3ec7207 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
@@ -111,14 +111,255 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></span></code>
+<td class="colFirst"><code>(package private) class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></span></code>
 <div class="block">This class encapsulates all the ledger metadata that is persistently stored
  in metadata store.</div>
 </td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> declared as <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerCreateOp.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#metadata">metadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerRecoveryOp.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html#metadataForRecovery">metadataForRecovery</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type parameters of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.MetadataUpdater.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#newMetadata">newMetadata</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> that return <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#build--">build</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">PendingReadOp.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/PendingReadOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReadLastConfirmedAndEntryOp.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerRecoveryOp.RecoveryReadOp.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.RecoveryReadOp.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#getLedgerMetadata--">getLedgerMetadata</a></span>()</code>
+<div class="block">Returns the metadata of this ledger.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.MetadataTransform.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.api.LedgerMetadata-">transform</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> that return types with arguments of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#closeRecovered--">closeRecovered</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgersContainBookies-java.util.Set-">getLedgersContainBookies</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;bookies)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#getVersionedLedgerMetadata--">getVersionedLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#run--">run</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with parameters of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#areEntriesOfLedgerStoredInTheBookie-long-org.apache.bookkeeper.net.BookieSocketAddress-org.apache.bookkeeper.client.api.LedgerMetadata-">areEntriesOfLedgerStoredInTheBookie</a></span>(long&nbsp;ledgerId,
+                                   org.apache.bookkeeper.net.BookieSocketAddress&nbsp;bookieAddress,
+                                   <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;ledgerMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.api.LedgerMetadata-">from</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getBookiesInThisLedger-org.apache.bookkeeper.client.api.LedgerMetadata-">getBookiesInThisLedger</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getCurrentEnsemble-org.apache.bookkeeper.client.api.LedgerMetadata-">getCurrentEnsemble</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleKey-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleKey</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getLastEnsembleValue-org.apache.bookkeeper.client.api.LedgerMetadata-">getLastEnsembleValue</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static long</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#getNextEnsembleChange-org.apache.bookkeeper.client.api.LedgerMetadata-long-">getNextEnsembleChange</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                     long&nbsp;entryId)</code>
+<div class="block">the entry id greater than the given entry-id at which the next ensemble change takes
+ place.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.NeedsUpdatePredicate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.api.LedgerMetadata-">needsUpdate</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>& [...]
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookke [...]
+                        <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;oldEnsemble,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logContext)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#shouldStoreCtime-org.apache.bookkeeper.client.api.LedgerMetadata-">shouldStoreCtime</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.MetadataTransform.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.api.LedgerMetadata-">transform</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type arguments of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#asyncGetLedgersContainBookies-java.util.Set-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">asyncGetLedgersContainBookies</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache. [...]
+                             org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface i [...]
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.versioning.Versioned-">onChanged</a></span>(long&nbsp;lid,
+         org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api" [...]
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api" [...]
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.LocalValueUpdater.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface  [...]
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.LocalValueUpdater.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface  [...]
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type arguments of type <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+            long&nbsp;ledgerId,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+            <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
+            byte[]&nbsp;password,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
+               long&nbsp;ledgerId,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
+               <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
+               byte[]&nbsp;password,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.Ledg [...]
+                  long&nbsp;ledgerId,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
+                  <a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
+                  <a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
+<div class="block">Construct the loop.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a> [...]
+                    long&nbsp;ledgerId,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
+                    <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
+                    byte[]&nbsp;password,
+                    boolean&nbsp;watch)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 </li>
 <li class="blockList"><a name="org.apache.bookkeeper.client.api">
 <!--   -->
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
index 6413f40..47dedc6 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
@@ -184,7 +184,7 @@
 <tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -192,7 +192,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
                long&nbsp;ledgerId,
-               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-frame.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-frame.html
index 306cd78..6c66061 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-frame.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-frame.html
@@ -34,6 +34,7 @@
 <h2 title="Enums">Enums</h2>
 <ul title="Enums">
 <li><a href="DigestType.html" title="enum in org.apache.bookkeeper.client.api" target="classFrame">DigestType</a></li>
+<li><a href="LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api" target="classFrame">LedgerMetadata.State</a></li>
 <li><a href="WriteFlag.html" title="enum in org.apache.bookkeeper.client.api" target="classFrame">WriteFlag</a></li>
 </ul>
 <h2 title="Exceptions">Exceptions</h2>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-summary.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-summary.html
index 79c7f6a..70fc1c5 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-summary.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-summary.html
@@ -206,6 +206,12 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api">LedgerMetadata.State</a></td>
+<td class="colLast">
+<div class="block">Possible metadata states.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a></td>
 <td class="colLast">
 <div class="block">Flags to specify the behaviour of writes.</div>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-tree.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-tree.html
index cb0a9b3..fbbe5bb 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-tree.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-tree.html
@@ -143,6 +143,7 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.bookkeeper.client.api.<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">WriteFlag</span></a></li>
+<li type="circle">org.apache.bookkeeper.client.api.<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">LedgerMetadata.State</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.api.<a href="../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">DigestType</span></a></li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-use.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-use.html
index cde17d2..728113b 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-use.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/package-use.html
@@ -173,31 +173,36 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html#org.apache.bookkeeper.client">LedgerMetadata.State</a>
+<div class="block">Possible metadata states.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/OpBuilder.html#org.apache.bookkeeper.client">OpBuilder</a>
 <div class="block">Base interface for builders.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/OpenBuilder.html#org.apache.bookkeeper.client">OpenBuilder</a>
 <div class="block">Builder-style interface to open exiting ledgers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/ReadHandle.html#org.apache.bookkeeper.client">ReadHandle</a>
 <div class="block">Provide read access to a ledger.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/WriteAdvHandle.html#org.apache.bookkeeper.client">WriteAdvHandle</a>
 <div class="block">Provide write access to a ledger.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/WriteFlag.html#org.apache.bookkeeper.client">WriteFlag</a>
 <div class="block">Flags to specify the behaviour of writes.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/WriteHandle.html#org.apache.bookkeeper.client">WriteHandle</a>
 <div class="block">Provide write access to a ledger.</div>
 </td>
@@ -280,21 +285,26 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/LedgerMetadata.State.html#org.apache.bookkeeper.client.api">LedgerMetadata.State</a>
+<div class="block">Possible metadata states.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/OpBuilder.html#org.apache.bookkeeper.client.api">OpBuilder</a>
 <div class="block">Base interface for builders.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/OpenBuilder.html#org.apache.bookkeeper.client.api">OpenBuilder</a>
 <div class="block">Builder-style interface to open exiting ledgers.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/ReadHandle.html#org.apache.bookkeeper.client.api">ReadHandle</a>
 <div class="block">Provide read access to a ledger.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/client/api/class-use/WriteFlag.html#org.apache.bookkeeper.client.api">WriteFlag</a>
 <div class="block">Flags to specify the behaviour of writes.</div>
 </td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
index 220e4be..0428aea 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
@@ -284,8 +284,8 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.clien [...]
-                        <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+<td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.c [...]
+                        <a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;oldEnsemble,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logContext)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.html
index 0b3098e..5bab3d5 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.html
@@ -530,7 +530,7 @@
 <td class="colLast"><span class="typeNameLabel">BookieWatcherImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookieWatcherImpl.html#getBookies--">getBookies</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgersContainBookies-java.util.Set-">getLedgersContainBookies</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;bookies)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
index 6d39c56..8123771 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
@@ -342,7 +342,7 @@ the order they are declared.</div>
 <tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -350,7 +350,7 @@ the order they are declared.</div>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -369,7 +369,7 @@ the order they are declared.</div>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp; [...]
                     long&nbsp;ledgerId,
-                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookieWatcher.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookieWatcher.html
index 1523e63..489aaee 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookieWatcher.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookieWatcher.html
@@ -139,8 +139,8 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.clien [...]
-                        <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+<td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble</a></span>(<a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookkeeper.c [...]
+                        <a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;oldEnsemble,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logContext)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
index 40e985c..dcbe258 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
@@ -175,7 +175,7 @@
 <tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -183,7 +183,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -226,7 +226,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp; [...]
                     long&nbsp;ledgerId,
-                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerHandle.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerHandle.html
index 41041a6..5de2ff9 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerHandle.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerHandle.html
@@ -472,26 +472,22 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BookKeeperAccessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAccessor.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgerMetadata-org.apache.bookkeeper.client.LedgerHandle-">getLedgerMetadata</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerRecoveryOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html#onEntryComplete-int-org.apache.bookkeeper.client.LedgerHandle-org.apache.bookkeeper.client.LedgerEntry-java.lang.Object-">onEntryComplete</a></span>(int&nbsp;rc,
                <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
                <a href="../../../../../org/apache/bookkeeper/client/LedgerEntry.html" title="class in org.apache.bookkeeper.client">LedgerEntry</a>&nbsp;entry,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerOpenOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerOpenOp.html#openComplete-int-org.apache.bookkeeper.client.LedgerHandle-">openComplete</a></span>(int&nbsp;rc,
             <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">SyncCallbackUtils.SyncOpenCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncOpenCallback.html#openComplete-int-org.apache.bookkeeper.client.LedgerHandle-java.lang.Object-">openComplete</a></span>(int&nbsp;rc,
             <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
@@ -499,7 +495,7 @@
 <div class="block">Callback method for synchronous open operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncCallback.OpenCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/AsyncCallback.OpenCallback.html#openComplete-int-org.apache.bookkeeper.client.LedgerHandle-java.lang.Object-">openComplete</a></span>(int&nbsp;rc,
             <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
@@ -507,7 +503,7 @@
 <div class="block">Callback for asynchronous call to open ledger.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">SyncCallbackUtils.SyncReadCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncReadCallback.html#readComplete-int-org.apache.bookkeeper.client.LedgerHandle-java.util.Enumeration-java.lang.Object-">readComplete</a></span>(int&nbsp;rc,
             <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
@@ -516,7 +512,7 @@
 <div class="block">Implementation of callback interface for synchronous read method.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncCallback.ReadCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/AsyncCallback.ReadCallback.html#readComplete-int-org.apache.bookkeeper.client.LedgerHandle-java.util.Enumeration-java.lang.Object-">readComplete</a></span>(int&nbsp;rc,
             <a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
@@ -525,19 +521,19 @@
 <div class="block">Callback declaration.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerReader.html#readEntriesFromAllBookies-org.apache.bookkeeper.client.LedgerHandle-long-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">readEntriesFromAllBookies</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a> [...]
                          long&nbsp;eid,
                          org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerReader.ReadResult.html" title="class in org.apache.bookkeeper.client">LedgerReader.ReadResult</a>&lt;io.netty.buffer.ByteBuf&gt;&gt;&gt;&nbsp;callback)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerReader.html#readLacs-org.apache.bookkeeper.client.LedgerHandle-long-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">readLacs</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
         long&nbsp;eid,
         org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerReader.ReadResult.html" title="class in org.apache.bookkeeper.client">LedgerReader.ReadResult</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or inter [...]
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerFragmentReplicator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerFragmentReplicator.html#replicate-org.apache.bookkeeper.client.LedgerHandle-org.apache.bookkeeper.client.LedgerFragment-org.apache.zookeeper.AsyncCallback.VoidCallback-java.util.Set-">replicate</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.cli [...]
          <a href="../../../../../org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a>&nbsp;lf,
@@ -547,18 +543,18 @@
  a ledger that was stored in an ensemble that included the failed bookie.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#replicateLedgerFragment-org.apache.bookkeeper.client.LedgerHandle-org.apache.bookkeeper.client.LedgerFragment-">replicateLedgerFragment</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
                        <a href="../../../../../org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a>&nbsp;ledgerFragment)</code>
 <div class="block">Replicate the Ledger fragment to target Bookie passed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">SyncCounter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/SyncCounter.html#setLh-org.apache.bookkeeper.client.LedgerHandle-">setLh</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerFragmentReplicator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerFragmentReplicator.html#splitIntoSubFragments-org.apache.bookkeeper.client.LedgerHandle-org.apache.bookkeeper.client.LedgerFragment-long-">splitIntoSubFragments</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a>&nbsp;lh,
                      <a href="../../../../../org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a>&nbsp;ledgerFragment,
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
index 29d86ad..7f02bd0 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
@@ -105,36 +105,35 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#closingAt-long-long-">closingAt</a></span>(long&nbsp;lastEntryId,
-         long&nbsp;length)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#create--">create</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.api.LedgerMetadata-">from</a></span>(<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#newEnsembleEntry-long-java.util.List-">newEnsembleEntry</a></span>(long&nbsp;firstEntry,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;ensemble)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#replaceEnsembleEntry-long-java.util.List-">replaceEnsembleEntry</a></span>(long&nbsp;firstEntry,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;ensemble)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#storingCreationTime-boolean-">storingCreationTime</a></span>(boolean&nbsp;storing)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withAckQuorumSize-int-">withAckQuorumSize</a></span>(int&nbsp;ackQuorumSize)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withClosedState--">withClosedState</a></span>()</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withCreationTime-long-">withCreationTime</a></span>(long&nbsp;ctime)</code>&nbsp;</td>
@@ -157,6 +156,14 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLastEntryId-long-">withLastEntryId</a></span>(long&nbsp;lastEntryId)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withLength-long-">withLength</a></span>(long&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withMetadataFormatVersion-int-">withMetadataFormatVersion</a></span>(int&nbsp;version)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataImpl.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataImpl.html
new file mode 100644
index 0000000..b2ace41
--- /dev/null
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataImpl.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.bookkeeper.client.LedgerMetadataImpl (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.bookkeeper.client.LedgerMetadataImpl (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/class-use/LedgerMetadataImpl.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.bookkeeper.client.LedgerMetadataImpl" class="title">Uses of Class<br>org.apache.bookkeeper.client.LedgerMetadataImpl</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.bookkeeper.client.LedgerMetadataImpl</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/class-use/LedgerMetadataImpl.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataUtils.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataUtils.html
new file mode 100644
index 0000000..dd38b1c
--- /dev/null
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataUtils.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.bookkeeper.client.LedgerMetadataUtils (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.bookkeeper.client.LedgerMetadataUtils (Apache BookKeeper :: Parent 4.9.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/class-use/LedgerMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.bookkeeper.client.LedgerMetadataUtils" class="title">Uses of Class<br>org.apache.bookkeeper.client.LedgerMetadataUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.bookkeeper.client.LedgerMetadataUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/bookkeeper/client/class-use/LedgerMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="LedgerMetadataUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
index 4b05af6..6dd8073 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
index 47f84e4..071e7b4 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
index fae0f0a..855c94a 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-frame.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-frame.html
index 2eb0b35..36fb63f 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-frame.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-frame.html
@@ -84,8 +84,9 @@
 <li><a href="LedgerHandle.NoopCloseCallback.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerHandle.NoopCloseCallback</a></li>
 <li><a href="LedgerHandleAdv.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerHandleAdv</a></li>
 <li><a href="LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerHandleAdv.PendingOpsComparator</a></li>
-<li><a href="LedgerMetadata.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadata</a></li>
 <li><a href="LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataBuilder</a></li>
+<li><a href="LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataImpl</a></li>
+<li><a href="LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerMetadataUtils</a></li>
 <li><a href="LedgerOpenOp.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerOpenOp</a></li>
 <li><a href="LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerOpenOp.OpenBuilderImpl</a></li>
 <li><a href="LedgerReader.html" title="class in org.apache.bookkeeper.client" target="classFrame">LedgerReader</a></li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
index ab89e59..0d21366 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
@@ -486,225 +486,231 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></td>
+<td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></td>
 <td class="colLast">
-<div class="block">This class encapsulates all the ledger metadata that is persistently stored
- in metadata store.</div>
+<div class="block">Builder for building LedgerMetadata objects.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></td>
+<td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client">LedgerMetadataImpl</a></td>
 <td class="colLast">
-<div class="block">Builder for building LedgerMetadata objects.</div>
+<div class="block">This class encapsulates all the ledger metadata that is persistently stored
+ in metadata store.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client">LedgerMetadataUtils</a></td>
+<td class="colLast">
+<div class="block">Utilities for working with ledger metadata.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></td>
 <td class="colLast">
 <div class="block">Encapsulates the ledger open operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.OpenBuilderImpl.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp.OpenBuilderImpl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerReader.html" title="class in org.apache.bookkeeper.client">LedgerReader</a></td>
 <td class="colLast">
 <div class="block">Reader used for DL tools to read entries.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerReader.ReadResult.html" title="class in org.apache.bookkeeper.client">LedgerReader.ReadResult</a>&lt;T&gt;</td>
 <td class="colLast">
 <div class="block">Read Result Holder.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html" title="class in org.apache.bookkeeper.client">LedgerRecoveryOp</a></td>
 <td class="colLast">
 <div class="block">This class encapsulated the ledger recovery operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/ListenerBasedPendingReadOp.html" title="class in org.apache.bookkeeper.client">ListenerBasedPendingReadOp</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html" title="class in org.apache.bookkeeper.client">MetadataUpdateLoop</a></td>
 <td class="colLast">
 <div class="block">Mechanism to safely update the metadata of a ledger.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/PendingAddOp.html" title="class in org.apache.bookkeeper.client">PendingAddOp</a></td>
 <td class="colLast">
 <div class="block">This represents a pending add operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/PendingReadLacOp.html" title="class in org.apache.bookkeeper.client">PendingReadLacOp</a></td>
 <td class="colLast">
 <div class="block">This represents a pending ReadLac operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/PendingReadOp.html" title="class in org.apache.bookkeeper.client">PendingReadOp</a></td>
 <td class="colLast">
 <div class="block">Sequence of entries of a ledger that represents a pending read operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/PendingWriteLacOp.html" title="class in org.apache.bookkeeper.client">PendingWriteLacOp</a></td>
 <td class="colLast">
 <div class="block">This represents a pending WriteLac operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicy</a></td>
 <td class="colLast">
 <div class="block">A placement policy implementation use rack information for placing ensembles.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></td>
 <td class="colLast">
 <div class="block">Simple rackware ensemble placement policy.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DefaultResolver.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl.DefaultResolver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator</a></td>
 <td class="colLast">
 <div class="block">Decorator for any existing dsn resolver.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOp.html" title="class in org.apache.bookkeeper.client">ReadLastConfirmedAndEntryOp</a></td>
 <td class="colLast">
 <div class="block">Long poll read operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/ReadLastConfirmedOp.html" title="class in org.apache.bookkeeper.client">ReadLastConfirmedOp</a></td>
 <td class="colLast">
 <div class="block">This class encapsulated the read last confirmed operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle</a></td>
 <td class="colLast">
 <div class="block">Read only ledger handle.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">RegionAwareEnsemblePlacementPolicy</a></td>
 <td class="colLast">
 <div class="block">A placement policy use region information in the network topology for placing ensembles.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html" title="class in org.apache.bookkeeper.client">RoundRobinDistributionSchedule</a></td>
 <td class="colLast">
 <div class="block">A specific <a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.html" title="interface in org.apache.bookkeeper.client"><code>DistributionSchedule</code></a> that places entries in round-robin
  fashion.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils</a></td>
 <td class="colLast">
 <div class="block">Utility for callbacks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.FutureReadLastConfirmed.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.FutureReadLastConfirmed</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.FutureReadLastConfirmedAndEntry.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.FutureReadLastConfirmedAndEntry</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.LastAddConfirmedCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.LastAddConfirmedCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncAddCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncAddCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncCloseCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncCloseCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncCreateAdvCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncCreateAdvCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncCreateCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncCreateCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncDeleteCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncDeleteCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncOpenCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncOpenCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncReadCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncReadCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCallbackUtils.SyncReadLastConfirmedCallback.html" title="class in org.apache.bookkeeper.client">SyncCallbackUtils.SyncReadLastConfirmedCallback</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/SyncCounter.html" title="class in org.apache.bookkeeper.client">SyncCounter</a></td>
 <td class="colLast">
 <div class="block">Implements objects to help with the synchronization of asynchronous calls.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.EnsembleForReplacementWithNoConstraints.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.EnsembleForReplacementWithNoConstraints</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble</a></td>
 <td class="colLast">
 <div class="block">A predicate checking the rack coverage for write quorum in <a href="../../../../org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html" title="class in org.apache.bookkeeper.client"><code>RoundRobinDistributionSchedule</code></a>,
  which ensures that a write quorum should be covered by at least two racks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.TruePredicate.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.TruePredicate</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/TryReadLastConfirmedOp.html" title="class in org.apache.bookkeeper.client">TryReadLastConfirmedOp</a></td>
 <td class="colLast">
 <div class="block">This op is try to read last confirmed without involving quorum coverage checking.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/UpdateLedgerOp.html" title="class in org.apache.bookkeeper.client">UpdateLedgerOp</a></td>
 <td class="colLast">
 <div class="block">Encapsulates updating the ledger metadata operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/WeightedRandomSelection.html" title="class in org.apache.bookkeeper.client">WeightedRandomSelection</a>&lt;T&gt;</td>
 <td class="colLast">&nbsp;</td>
 </tr>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-tree.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-tree.html
index 210e800..a9a6411 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-tree.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-tree.html
@@ -122,8 +122,9 @@
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.LastConfirmedCtx.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandle.LastConfirmedCtx</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.NoopCloseCallback.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandle.NoopCloseCallback</span></a> (implements org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/AsyncCallback.CloseCallback.html" title="interface in org.apache.bookkeeper.client">AsyncCallback.CloseCallback</a>)</li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandleAdv.PendingOpsComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8 [...]
-<li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadata</span></a> (implements org.apache.bookkeeper.client.api.<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>)</li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataBuilder</span></a></li>
+<li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataImpl</span></a> (implements org.apache.bookkeeper.client.api.<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>)</li>
+<li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataUtils</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerOpenOp</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerReader.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerReader</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerReader.ReadResult.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerReader.ReadResult</span></a>&lt;T&gt;</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
index 5d333fb..0818336 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
@@ -322,133 +322,127 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerMetadata.html#org.apache.bookkeeper.client">LedgerMetadata</a>
-<div class="block">This class encapsulates all the ledger metadata that is persistently stored
- in metadata store.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html#org.apache.bookkeeper.client">LedgerMetadataBuilder</a>
 <div class="block">Builder for building LedgerMetadata objects.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerReader.ReadResult.html#org.apache.bookkeeper.client">LedgerReader.ReadResult</a>
 <div class="block">Read Result Holder.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerRecoveryOp.html#org.apache.bookkeeper.client">LedgerRecoveryOp</a>
 <div class="block">This class encapsulated the ledger recovery operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ListenerBasedPendingReadOp.html#org.apache.bookkeeper.client">ListenerBasedPendingReadOp</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html#org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html#org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html#org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/PendingAddOp.html#org.apache.bookkeeper.client">PendingAddOp</a>
 <div class="block">This represents a pending add operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/PendingReadLacOp.LacCallback.html#org.apache.bookkeeper.client">PendingReadLacOp.LacCallback</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/PendingReadOp.html#org.apache.bookkeeper.client">PendingReadOp</a>
 <div class="block">Sequence of entries of a ledger that represents a pending read operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/PendingReadOp.LedgerEntryRequest.html#org.apache.bookkeeper.client">PendingReadOp.LedgerEntryRequest</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/RackawareEnsemblePlacementPolicy.html#org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicy</a>
 <div class="block">A placement policy implementation use rack information for placing ensembles.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/RackawareEnsemblePlacementPolicyImpl.html#org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a>
 <div class="block">Simple rackware ensemble placement policy.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ReadLastConfirmedAndEntryOp.html#org.apache.bookkeeper.client">ReadLastConfirmedAndEntryOp</a>
 <div class="block">Long poll read operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ReadLastConfirmedAndEntryOp.LastConfirmedAndEntryCallback.html#org.apache.bookkeeper.client">ReadLastConfirmedAndEntryOp.LastConfirmedAndEntryCallback</a>
 <div class="block">Wrapper to get all recovered data from the request.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ReadLastConfirmedAndEntryOp.ReadLACAndEntryRequest.html#org.apache.bookkeeper.client">ReadLastConfirmedAndEntryOp.ReadLACAndEntryRequest</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ReadLastConfirmedOp.LastConfirmedDataCallback.html#org.apache.bookkeeper.client">ReadLastConfirmedOp.LastConfirmedDataCallback</a>
 <div class="block">Wrapper to get all recovered data from the request.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/ReadOnlyLedgerHandle.html#org.apache.bookkeeper.client">ReadOnlyLedgerHandle</a>
 <div class="block">Read only ledger handle.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/RegionAwareEnsemblePlacementPolicy.html#org.apache.bookkeeper.client">RegionAwareEnsemblePlacementPolicy</a>
 <div class="block">A placement policy use region information in the network topology for placing ensembles.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/SpeculativeRequestExecutionPolicy.html#org.apache.bookkeeper.client">SpeculativeRequestExecutionPolicy</a>
 <div class="block">Define a policy for speculative request execution.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/SpeculativeRequestExecutor.html#org.apache.bookkeeper.client">SpeculativeRequestExecutor</a>
 <div class="block">Define an executor for issuing speculative requests.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/SyncCallbackUtils.LastAddConfirmedCallback.html#org.apache.bookkeeper.client">SyncCallbackUtils.LastAddConfirmedCallback</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.BookieNode.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.EnsembleForReplacementWithNoConstraints.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.EnsembleForReplacementWithNoConstraints</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble</a>
 <div class="block">A predicate checking the rack coverage for write quorum in <a href="../../../../org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html" title="class in org.apache.bookkeeper.client"><code>RoundRobinDistributionSchedule</code></a>,
  which ensures that a write quorum should be covered by at least two racks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.CoverageSet.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.CoverageSet</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackOrRegionDurabilityCoverageSet.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackOrRegionDurabilityCoverageSet</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackQuorumCoverageSet.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackQuorumCoverageSet</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.TruePredicate.html#org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.TruePredicate</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/WeightedRandomSelection.WeightedObject.html#org.apache.bookkeeper.client">WeightedRandomSelection.WeightedObject</a>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/AbstractConfiguration.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/AbstractConfiguration.html
index d744ac1..a91ba49 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/AbstractConfiguration.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/AbstractConfiguration.html
@@ -243,79 +243,83 @@ extends org.apache.commons.configuration.CompositeConfiguration</pre>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME">STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CERTIFICATE_PATH">TLS_CERTIFICATE_PATH</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME">STORE_SYSTEMTIME_AS_LEDGER_UNDERREPLICATED_MARK_TIME</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CLIENT_AUTHENTICATION">TLS_CLIENT_AUTHENTICATION</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CERTIFICATE_PATH">TLS_CERTIFICATE_PATH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_CLIENT_AUTHENTICATION">TLS_CLIENT_AUTHENTICATION</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_ENABLED_CIPHER_SUITES">TLS_ENABLED_CIPHER_SUITES</a></span></code>
 <div class="block">This list will be passed to <a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLEngine.html?is-external=true#setEnabledCipherSuites-java.lang.String:A-" title="class or interface in javax.net.ssl"><code>SSLEngine.setEnabledCipherSuites(java.lang.String[])</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_ENABLED_PROTOCOLS">TLS_ENABLED_PROTOCOLS</a></span></code>
 <div class="block">This list will be passed to <a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLEngine.html?is-external=true#setEnabledProtocols-java.lang.String:A-" title="class or interface in javax.net.ssl"><code>SSLEngine.setEnabledProtocols(java.lang.String[])</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE">TLS_KEYSTORE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE_PASSWORD_PATH">TLS_KEYSTORE_PASSWORD_PATH</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_KEYSTORE_TYPE">TLS_KEYSTORE_TYPE</a></span></code>
 <div class="block">TLS KeyStore, TrustStore, Password files and Certificate Paths.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_PROVIDER">TLS_PROVIDER</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_PROVIDER_FACTORY_CLASS">TLS_PROVIDER_FACTORY_CLASS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE">TLS_TRUSTSTORE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE_PASSWORD_PATH">TLS_TRUSTSTORE_PASSWORD_PATH</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#TLS_TRUSTSTORE_TYPE">TLS_TRUSTSTORE_TYPE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_ENABLE_SECURITY">ZK_ENABLE_SECURITY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_LEDGERS_ROOT_PATH">ZK_LEDGERS_ROOT_PATH</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_REQUEST_RATE_LIMIT">ZK_REQUEST_RATE_LIMIT</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_SERVERS">ZK_SERVERS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ZK_TIMEOUT">ZK_TIMEOUT</a></span></code>&nbsp;</td>
 </tr>
@@ -981,6 +985,19 @@ extends org.apache.commons.configuration.CompositeConfiguration</pre>
 </dl>
 </li>
 </ul>
+<a name="STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</h4>
+<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.bookkeeper.conf.AbstractConfiguration.STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="METASTORE_IMPL_CLASS">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html
index b4987d7..d4ed1bf 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html
@@ -432,37 +432,33 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TASK_EXECUTION_WARN_TIME_MICROS">TASK_EXECUTION_WARN_TIME_MICROS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#THROTTLE">THROTTLE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_MONITOR_INTERVAL_SEC">TIMEOUT_MONITOR_INTERVAL_SEC</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TASK_INTERVAL_MILLIS">TIMEOUT_TASK_INTERVAL_MILLIS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_NUM_TICKS">TIMEOUT_TIMER_NUM_TICKS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_TICK_DURATION_MS">TIMEOUT_TIMER_TICK_DURATION_MS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#USE_V2_WIRE_PROTOCOL">USE_V2_WIRE_PROTOCOL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#WAIT_TIMEOUT_ON_BACKPRESSURE">WAIT_TIMEOUT_ON_BACKPRESSURE</a></span></code>&nbsp;</td>
 </tr>
@@ -472,7 +468,7 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.bookkeeper.conf.<a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS">ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#AVAILABLE_NODE">AVAILABLE_NODE</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAULT_ENTRY_FORMATTER">DEFAULT_ENTRY_FORMATTER</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAUL [...]
+<code><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS">ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#AVAILABLE_NODE">AVAILABLE_NODE</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAULT_ENTRY_FORMATTER">DEFAULT_ENTRY_FORMATTER</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAUL [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.commons.configuration.AbstractConfiguration">
@@ -2223,19 +2219,6 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 </dl>
 </li>
 </ul>
-<a name="STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</h4>
-<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME</pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../constant-values.html#org.apache.bookkeeper.conf.ClientConfiguration.STORE_SYSTEMTIME_AS_LEDGER_CREATION_TIME">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
 <a name="ENABLE_TASK_EXECUTION_STATS">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ServerConfiguration.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ServerConfiguration.html
index 6e8388c..575e0d1 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ServerConfiguration.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ServerConfiguration.html
@@ -624,7 +624,7 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.bookkeeper.conf.<a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS">ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#AVAILABLE_NODE">AVAILABLE_NODE</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAULT_ENTRY_FORMATTER">DEFAULT_ENTRY_FORMATTER</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAUL [...]
+<code><a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS">ALLOW_SHADED_LEDGER_MANAGER_FACTORY_CLASS</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#AVAILABLE_NODE">AVAILABLE_NODE</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAULT_ENTRY_FORMATTER">DEFAULT_ENTRY_FORMATTER</a>, <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.html#DEFAUL [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.commons.configuration.AbstractConfiguration">
diff --git a/content/docs/latest/api/javadoc/overview-tree.html b/content/docs/latest/api/javadoc/overview-tree.html
index 61c1234..1540c50 100644
--- a/content/docs/latest/api/javadoc/overview-tree.html
+++ b/content/docs/latest/api/javadoc/overview-tree.html
@@ -204,8 +204,9 @@
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.LastConfirmedCtx.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandle.LastConfirmedCtx</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.NoopCloseCallback.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandle.NoopCloseCallback</span></a> (implements org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/AsyncCallback.CloseCallback.html" title="interface in org.apache.bookkeeper.client">AsyncCallback.CloseCallback</a>)</li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandleAdv.PendingOpsComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/ja [...]
-<li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadata</span></a> (implements org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>)</li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataBuilder</span></a></li>
+<li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataImpl.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataImpl</span></a> (implements org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>)</li>
+<li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataUtils.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataUtils</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerOpenOp</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerReader.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerReader</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerReader.ReadResult.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerReader.ReadResult</span></a>&lt;T&gt;</li>
@@ -575,6 +576,7 @@
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client"><span class="typeNameLink">BookKeeper.DigestType</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookieInfoReader.State.html" title="enum in org.apache.bookkeeper.client"><span class="typeNameLink">BookieInfoReader.State</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">WriteFlag</span></a></li>
+<li type="circle">org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/LedgerMetadata.State.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">LedgerMetadata.State</span></a></li>
 <li type="circle">org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api"><span class="typeNameLink">DigestType</span></a></li>
 <li type="circle">org.apache.bookkeeper.stats.utils.<a href="org/apache/bookkeeper/stats/utils/StatsDocGenerator.StatsType.html" title="enum in org.apache.bookkeeper.stats.utils"><span class="typeNameLink">StatsDocGenerator.StatsType</span></a></li>
 <li type="circle">org.apache.bookkeeper.stats.codahale.<a href="org/apache/bookkeeper/stats/codahale/TimerBenchmark.TimerType.html" title="enum in org.apache.bookkeeper.stats.codahale"><span class="typeNameLink">TimerBenchmark.TimerType</span></a></li>