You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2018/05/19 02:04:05 UTC

[GitHub] merlimat closed pull request #1812: Used protobuf-3.x and auto-generation for ManagedLedger and schema registry protobuf

merlimat closed pull request #1812: Used protobuf-3.x and auto-generation for ManagedLedger and schema registry protobuf
URL: https://github.com/apache/incubator-pulsar/pull/1812
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/managed-ledger/pom.xml b/managed-ledger/pom.xml
index 67f2a075e6..7b0f7014cb 100644
--- a/managed-ledger/pom.xml
+++ b/managed-ledger/pom.xml
@@ -41,7 +41,7 @@
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
-      <version>${protobuf2.version}</version>
+      <version>${protobuf3.version}</version>
     </dependency>
 
     <dependency>
@@ -111,36 +111,22 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.xolstice.maven.plugins</groupId>
+        <artifactId>protobuf-maven-plugin</artifactId>
+        <version>${protobuf-maven-plugin.version}</version>
+        <configuration>
+          <protocArtifact>com.google.protobuf:protoc:${protobuf3.version}:exe:${os.detected.classifier}</protocArtifact>
+          <checkStaleness>true</checkStaleness>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
-
-  <profiles>
-    <profile>
-      <id>protobuf</id>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <executions>
-              <execution>
-                <phase>generate-sources</phase>
-                <id>default-cli</id>
-                <configuration>
-                  <target>
-                    <exec executable="protoc" failonerror="true">
-                      <arg value="--java_out=src/main/java" />
-                      <arg value="src/main/proto/MLDataFormats.proto" />
-                    </exec>
-                  </target>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
 </project>
diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/proto/MLDataFormats.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/proto/MLDataFormats.java
deleted file mode 100644
index fc607b944d..0000000000
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/proto/MLDataFormats.java
+++ /dev/null
@@ -1,5638 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: src/main/proto/MLDataFormats.proto
-
-package org.apache.bookkeeper.mledger.proto;
-
-public final class MLDataFormats {
-  private MLDataFormats() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-  }
-  public interface OffloadContextOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // optional int64 uidMsb = 1;
-    boolean hasUidMsb();
-    long getUidMsb();
-    
-    // optional int64 uidLsb = 2;
-    boolean hasUidLsb();
-    long getUidLsb();
-    
-    // optional bool complete = 3;
-    boolean hasComplete();
-    boolean getComplete();
-    
-    // optional bool bookkeeperDeleted = 4;
-    boolean hasBookkeeperDeleted();
-    boolean getBookkeeperDeleted();
-    
-    // optional int64 timestamp = 5;
-    boolean hasTimestamp();
-    long getTimestamp();
-  }
-  public static final class OffloadContext extends
-      com.google.protobuf.GeneratedMessage
-      implements OffloadContextOrBuilder {
-    // Use OffloadContext.newBuilder() to construct.
-    private OffloadContext(Builder builder) {
-      super(builder);
-    }
-    private OffloadContext(boolean noInit) {}
-    
-    private static final OffloadContext defaultInstance;
-    public static OffloadContext getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public OffloadContext getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_OffloadContext_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_OffloadContext_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // optional int64 uidMsb = 1;
-    public static final int UIDMSB_FIELD_NUMBER = 1;
-    private long uidMsb_;
-    public boolean hasUidMsb() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getUidMsb() {
-      return uidMsb_;
-    }
-    
-    // optional int64 uidLsb = 2;
-    public static final int UIDLSB_FIELD_NUMBER = 2;
-    private long uidLsb_;
-    public boolean hasUidLsb() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getUidLsb() {
-      return uidLsb_;
-    }
-    
-    // optional bool complete = 3;
-    public static final int COMPLETE_FIELD_NUMBER = 3;
-    private boolean complete_;
-    public boolean hasComplete() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getComplete() {
-      return complete_;
-    }
-    
-    // optional bool bookkeeperDeleted = 4;
-    public static final int BOOKKEEPERDELETED_FIELD_NUMBER = 4;
-    private boolean bookkeeperDeleted_;
-    public boolean hasBookkeeperDeleted() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public boolean getBookkeeperDeleted() {
-      return bookkeeperDeleted_;
-    }
-    
-    // optional int64 timestamp = 5;
-    public static final int TIMESTAMP_FIELD_NUMBER = 5;
-    private long timestamp_;
-    public boolean hasTimestamp() {
-      return ((bitField0_ & 0x00000010) == 0x00000010);
-    }
-    public long getTimestamp() {
-      return timestamp_;
-    }
-    
-    private void initFields() {
-      uidMsb_ = 0L;
-      uidLsb_ = 0L;
-      complete_ = false;
-      bookkeeperDeleted_ = false;
-      timestamp_ = 0L;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, uidMsb_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, uidLsb_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(3, complete_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBool(4, bookkeeperDeleted_);
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        output.writeInt64(5, timestamp_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, uidMsb_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, uidLsb_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(3, complete_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(4, bookkeeperDeleted_);
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(5, timestamp_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_OffloadContext_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_OffloadContext_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uidMsb_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uidLsb_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        complete_ = false;
-        bitField0_ = (bitField0_ & ~0x00000004);
-        bookkeeperDeleted_ = false;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        timestamp_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uidMsb_ = uidMsb_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.uidLsb_ = uidLsb_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.complete_ = complete_;
-        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.bookkeeperDeleted_ = bookkeeperDeleted_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000010;
-        }
-        result.timestamp_ = timestamp_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance()) return this;
-        if (other.hasUidMsb()) {
-          setUidMsb(other.getUidMsb());
-        }
-        if (other.hasUidLsb()) {
-          setUidLsb(other.getUidLsb());
-        }
-        if (other.hasComplete()) {
-          setComplete(other.getComplete());
-        }
-        if (other.hasBookkeeperDeleted()) {
-          setBookkeeperDeleted(other.getBookkeeperDeleted());
-        }
-        if (other.hasTimestamp()) {
-          setTimestamp(other.getTimestamp());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              uidMsb_ = input.readInt64();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              uidLsb_ = input.readInt64();
-              break;
-            }
-            case 24: {
-              bitField0_ |= 0x00000004;
-              complete_ = input.readBool();
-              break;
-            }
-            case 32: {
-              bitField0_ |= 0x00000008;
-              bookkeeperDeleted_ = input.readBool();
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              timestamp_ = input.readInt64();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // optional int64 uidMsb = 1;
-      private long uidMsb_ ;
-      public boolean hasUidMsb() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getUidMsb() {
-        return uidMsb_;
-      }
-      public Builder setUidMsb(long value) {
-        bitField0_ |= 0x00000001;
-        uidMsb_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUidMsb() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uidMsb_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // optional int64 uidLsb = 2;
-      private long uidLsb_ ;
-      public boolean hasUidLsb() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getUidLsb() {
-        return uidLsb_;
-      }
-      public Builder setUidLsb(long value) {
-        bitField0_ |= 0x00000002;
-        uidLsb_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUidLsb() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        uidLsb_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // optional bool complete = 3;
-      private boolean complete_ ;
-      public boolean hasComplete() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public boolean getComplete() {
-        return complete_;
-      }
-      public Builder setComplete(boolean value) {
-        bitField0_ |= 0x00000004;
-        complete_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearComplete() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        complete_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // optional bool bookkeeperDeleted = 4;
-      private boolean bookkeeperDeleted_ ;
-      public boolean hasBookkeeperDeleted() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public boolean getBookkeeperDeleted() {
-        return bookkeeperDeleted_;
-      }
-      public Builder setBookkeeperDeleted(boolean value) {
-        bitField0_ |= 0x00000008;
-        bookkeeperDeleted_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearBookkeeperDeleted() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        bookkeeperDeleted_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // optional int64 timestamp = 5;
-      private long timestamp_ ;
-      public boolean hasTimestamp() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public long getTimestamp() {
-        return timestamp_;
-      }
-      public Builder setTimestamp(long value) {
-        bitField0_ |= 0x00000010;
-        timestamp_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearTimestamp() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        timestamp_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:OffloadContext)
-    }
-    
-    static {
-      defaultInstance = new OffloadContext(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:OffloadContext)
-  }
-  
-  public interface ManagedLedgerInfoOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // repeated .ManagedLedgerInfo.LedgerInfo ledgerInfo = 1;
-    java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> 
-        getLedgerInfoList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo getLedgerInfo(int index);
-    int getLedgerInfoCount();
-    java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder> 
-        getLedgerInfoOrBuilderList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder getLedgerInfoOrBuilder(
-        int index);
-    
-    // optional .NestedPositionInfo terminatedPosition = 2;
-    boolean hasTerminatedPosition();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getTerminatedPosition();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getTerminatedPositionOrBuilder();
-  }
-  public static final class ManagedLedgerInfo extends
-      com.google.protobuf.GeneratedMessage
-      implements ManagedLedgerInfoOrBuilder {
-    // Use ManagedLedgerInfo.newBuilder() to construct.
-    private ManagedLedgerInfo(Builder builder) {
-      super(builder);
-    }
-    private ManagedLedgerInfo(boolean noInit) {}
-    
-    private static final ManagedLedgerInfo defaultInstance;
-    public static ManagedLedgerInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public ManagedLedgerInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_fieldAccessorTable;
-    }
-    
-    public interface LedgerInfoOrBuilder
-        extends com.google.protobuf.MessageOrBuilder {
-      
-      // required int64 ledgerId = 1;
-      boolean hasLedgerId();
-      long getLedgerId();
-      
-      // optional int64 entries = 2;
-      boolean hasEntries();
-      long getEntries();
-      
-      // optional int64 size = 3;
-      boolean hasSize();
-      long getSize();
-      
-      // optional int64 timestamp = 4;
-      boolean hasTimestamp();
-      long getTimestamp();
-      
-      // optional .OffloadContext offloadContext = 5;
-      boolean hasOffloadContext();
-      org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext getOffloadContext();
-      org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder getOffloadContextOrBuilder();
-    }
-    public static final class LedgerInfo extends
-        com.google.protobuf.GeneratedMessage
-        implements LedgerInfoOrBuilder {
-      // Use LedgerInfo.newBuilder() to construct.
-      private LedgerInfo(Builder builder) {
-        super(builder);
-      }
-      private LedgerInfo(boolean noInit) {}
-      
-      private static final LedgerInfo defaultInstance;
-      public static LedgerInfo getDefaultInstance() {
-        return defaultInstance;
-      }
-      
-      public LedgerInfo getDefaultInstanceForType() {
-        return defaultInstance;
-      }
-      
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_LedgerInfo_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_LedgerInfo_fieldAccessorTable;
-      }
-      
-      private int bitField0_;
-      // required int64 ledgerId = 1;
-      public static final int LEDGERID_FIELD_NUMBER = 1;
-      private long ledgerId_;
-      public boolean hasLedgerId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getLedgerId() {
-        return ledgerId_;
-      }
-      
-      // optional int64 entries = 2;
-      public static final int ENTRIES_FIELD_NUMBER = 2;
-      private long entries_;
-      public boolean hasEntries() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getEntries() {
-        return entries_;
-      }
-      
-      // optional int64 size = 3;
-      public static final int SIZE_FIELD_NUMBER = 3;
-      private long size_;
-      public boolean hasSize() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public long getSize() {
-        return size_;
-      }
-      
-      // optional int64 timestamp = 4;
-      public static final int TIMESTAMP_FIELD_NUMBER = 4;
-      private long timestamp_;
-      public boolean hasTimestamp() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public long getTimestamp() {
-        return timestamp_;
-      }
-      
-      // optional .OffloadContext offloadContext = 5;
-      public static final int OFFLOADCONTEXT_FIELD_NUMBER = 5;
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext offloadContext_;
-      public boolean hasOffloadContext() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext getOffloadContext() {
-        return offloadContext_;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder getOffloadContextOrBuilder() {
-        return offloadContext_;
-      }
-      
-      private void initFields() {
-        ledgerId_ = 0L;
-        entries_ = 0L;
-        size_ = 0L;
-        timestamp_ = 0L;
-        offloadContext_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance();
-      }
-      private byte memoizedIsInitialized = -1;
-      public final boolean isInitialized() {
-        byte isInitialized = memoizedIsInitialized;
-        if (isInitialized != -1) return isInitialized == 1;
-        
-        if (!hasLedgerId()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-        memoizedIsInitialized = 1;
-        return true;
-      }
-      
-      public void writeTo(com.google.protobuf.CodedOutputStream output)
-                          throws java.io.IOException {
-        getSerializedSize();
-        if (((bitField0_ & 0x00000001) == 0x00000001)) {
-          output.writeInt64(1, ledgerId_);
-        }
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          output.writeInt64(2, entries_);
-        }
-        if (((bitField0_ & 0x00000004) == 0x00000004)) {
-          output.writeInt64(3, size_);
-        }
-        if (((bitField0_ & 0x00000008) == 0x00000008)) {
-          output.writeInt64(4, timestamp_);
-        }
-        if (((bitField0_ & 0x00000010) == 0x00000010)) {
-          output.writeMessage(5, offloadContext_);
-        }
-        getUnknownFields().writeTo(output);
-      }
-      
-      private int memoizedSerializedSize = -1;
-      public int getSerializedSize() {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-      
-        size = 0;
-        if (((bitField0_ & 0x00000001) == 0x00000001)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeInt64Size(1, ledgerId_);
-        }
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeInt64Size(2, entries_);
-        }
-        if (((bitField0_ & 0x00000004) == 0x00000004)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeInt64Size(3, size_);
-        }
-        if (((bitField0_ & 0x00000008) == 0x00000008)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeInt64Size(4, timestamp_);
-        }
-        if (((bitField0_ & 0x00000010) == 0x00000010)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeMessageSize(5, offloadContext_);
-        }
-        size += getUnknownFields().getSerializedSize();
-        memoizedSerializedSize = size;
-        return size;
-      }
-      
-      private static final long serialVersionUID = 0L;
-      @java.lang.Override
-      protected java.lang.Object writeReplace()
-          throws java.io.ObjectStreamException {
-        return super.writeReplace();
-      }
-      
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          com.google.protobuf.ByteString data)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data).buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          com.google.protobuf.ByteString data,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(byte[] data)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data).buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          byte[] data,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(java.io.InputStream input)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input).buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          java.io.InputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseDelimitedFrom(java.io.InputStream input)
-          throws java.io.IOException {
-        Builder builder = newBuilder();
-        if (builder.mergeDelimitedFrom(input)) {
-          return builder.buildParsed();
-        } else {
-          return null;
-        }
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseDelimitedFrom(
-          java.io.InputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        Builder builder = newBuilder();
-        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-          return builder.buildParsed();
-        } else {
-          return null;
-        }
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          com.google.protobuf.CodedInputStream input)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input).buildParsed();
-      }
-      public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo parseFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input, extensionRegistry)
-                 .buildParsed();
-      }
-      
-      public static Builder newBuilder() { return Builder.create(); }
-      public Builder newBuilderForType() { return newBuilder(); }
-      public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo prototype) {
-        return newBuilder().mergeFrom(prototype);
-      }
-      public Builder toBuilder() { return newBuilder(this); }
-      
-      @java.lang.Override
-      protected Builder newBuilderForType(
-          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-        Builder builder = new Builder(parent);
-        return builder;
-      }
-      public static final class Builder extends
-          com.google.protobuf.GeneratedMessage.Builder<Builder>
-         implements org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder {
-        public static final com.google.protobuf.Descriptors.Descriptor
-            getDescriptor() {
-          return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_LedgerInfo_descriptor;
-        }
-        
-        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-            internalGetFieldAccessorTable() {
-          return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_LedgerInfo_fieldAccessorTable;
-        }
-        
-        // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.newBuilder()
-        private Builder() {
-          maybeForceBuilderInitialization();
-        }
-        
-        private Builder(BuilderParent parent) {
-          super(parent);
-          maybeForceBuilderInitialization();
-        }
-        private void maybeForceBuilderInitialization() {
-          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-            getOffloadContextFieldBuilder();
-          }
-        }
-        private static Builder create() {
-          return new Builder();
-        }
-        
-        public Builder clear() {
-          super.clear();
-          ledgerId_ = 0L;
-          bitField0_ = (bitField0_ & ~0x00000001);
-          entries_ = 0L;
-          bitField0_ = (bitField0_ & ~0x00000002);
-          size_ = 0L;
-          bitField0_ = (bitField0_ & ~0x00000004);
-          timestamp_ = 0L;
-          bitField0_ = (bitField0_ & ~0x00000008);
-          if (offloadContextBuilder_ == null) {
-            offloadContext_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance();
-          } else {
-            offloadContextBuilder_.clear();
-          }
-          bitField0_ = (bitField0_ & ~0x00000010);
-          return this;
-        }
-        
-        public Builder clone() {
-          return create().mergeFrom(buildPartial());
-        }
-        
-        public com.google.protobuf.Descriptors.Descriptor
-            getDescriptorForType() {
-          return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.getDescriptor();
-        }
-        
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo getDefaultInstanceForType() {
-          return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.getDefaultInstance();
-        }
-        
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo build() {
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo result = buildPartial();
-          if (!result.isInitialized()) {
-            throw newUninitializedMessageException(result);
-          }
-          return result;
-        }
-        
-        private org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo buildParsed()
-            throws com.google.protobuf.InvalidProtocolBufferException {
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo result = buildPartial();
-          if (!result.isInitialized()) {
-            throw newUninitializedMessageException(
-              result).asInvalidProtocolBufferException();
-          }
-          return result;
-        }
-        
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo buildPartial() {
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo(this);
-          int from_bitField0_ = bitField0_;
-          int to_bitField0_ = 0;
-          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-            to_bitField0_ |= 0x00000001;
-          }
-          result.ledgerId_ = ledgerId_;
-          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-            to_bitField0_ |= 0x00000002;
-          }
-          result.entries_ = entries_;
-          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-            to_bitField0_ |= 0x00000004;
-          }
-          result.size_ = size_;
-          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-            to_bitField0_ |= 0x00000008;
-          }
-          result.timestamp_ = timestamp_;
-          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-            to_bitField0_ |= 0x00000010;
-          }
-          if (offloadContextBuilder_ == null) {
-            result.offloadContext_ = offloadContext_;
-          } else {
-            result.offloadContext_ = offloadContextBuilder_.build();
-          }
-          result.bitField0_ = to_bitField0_;
-          onBuilt();
-          return result;
-        }
-        
-        public Builder mergeFrom(com.google.protobuf.Message other) {
-          if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo) {
-            return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo)other);
-          } else {
-            super.mergeFrom(other);
-            return this;
-          }
-        }
-        
-        public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo other) {
-          if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.getDefaultInstance()) return this;
-          if (other.hasLedgerId()) {
-            setLedgerId(other.getLedgerId());
-          }
-          if (other.hasEntries()) {
-            setEntries(other.getEntries());
-          }
-          if (other.hasSize()) {
-            setSize(other.getSize());
-          }
-          if (other.hasTimestamp()) {
-            setTimestamp(other.getTimestamp());
-          }
-          if (other.hasOffloadContext()) {
-            mergeOffloadContext(other.getOffloadContext());
-          }
-          this.mergeUnknownFields(other.getUnknownFields());
-          return this;
-        }
-        
-        public final boolean isInitialized() {
-          if (!hasLedgerId()) {
-            
-            return false;
-          }
-          return true;
-        }
-        
-        public Builder mergeFrom(
-            com.google.protobuf.CodedInputStream input,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
-          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.protobuf.UnknownFieldSet.newBuilder(
-              this.getUnknownFields());
-          while (true) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              default: {
-                if (!parseUnknownField(input, unknownFields,
-                                       extensionRegistry, tag)) {
-                  this.setUnknownFields(unknownFields.build());
-                  onChanged();
-                  return this;
-                }
-                break;
-              }
-              case 8: {
-                bitField0_ |= 0x00000001;
-                ledgerId_ = input.readInt64();
-                break;
-              }
-              case 16: {
-                bitField0_ |= 0x00000002;
-                entries_ = input.readInt64();
-                break;
-              }
-              case 24: {
-                bitField0_ |= 0x00000004;
-                size_ = input.readInt64();
-                break;
-              }
-              case 32: {
-                bitField0_ |= 0x00000008;
-                timestamp_ = input.readInt64();
-                break;
-              }
-              case 42: {
-                org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.newBuilder();
-                if (hasOffloadContext()) {
-                  subBuilder.mergeFrom(getOffloadContext());
-                }
-                input.readMessage(subBuilder, extensionRegistry);
-                setOffloadContext(subBuilder.buildPartial());
-                break;
-              }
-            }
-          }
-        }
-        
-        private int bitField0_;
-        
-        // required int64 ledgerId = 1;
-        private long ledgerId_ ;
-        public boolean hasLedgerId() {
-          return ((bitField0_ & 0x00000001) == 0x00000001);
-        }
-        public long getLedgerId() {
-          return ledgerId_;
-        }
-        public Builder setLedgerId(long value) {
-          bitField0_ |= 0x00000001;
-          ledgerId_ = value;
-          onChanged();
-          return this;
-        }
-        public Builder clearLedgerId() {
-          bitField0_ = (bitField0_ & ~0x00000001);
-          ledgerId_ = 0L;
-          onChanged();
-          return this;
-        }
-        
-        // optional int64 entries = 2;
-        private long entries_ ;
-        public boolean hasEntries() {
-          return ((bitField0_ & 0x00000002) == 0x00000002);
-        }
-        public long getEntries() {
-          return entries_;
-        }
-        public Builder setEntries(long value) {
-          bitField0_ |= 0x00000002;
-          entries_ = value;
-          onChanged();
-          return this;
-        }
-        public Builder clearEntries() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          entries_ = 0L;
-          onChanged();
-          return this;
-        }
-        
-        // optional int64 size = 3;
-        private long size_ ;
-        public boolean hasSize() {
-          return ((bitField0_ & 0x00000004) == 0x00000004);
-        }
-        public long getSize() {
-          return size_;
-        }
-        public Builder setSize(long value) {
-          bitField0_ |= 0x00000004;
-          size_ = value;
-          onChanged();
-          return this;
-        }
-        public Builder clearSize() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          size_ = 0L;
-          onChanged();
-          return this;
-        }
-        
-        // optional int64 timestamp = 4;
-        private long timestamp_ ;
-        public boolean hasTimestamp() {
-          return ((bitField0_ & 0x00000008) == 0x00000008);
-        }
-        public long getTimestamp() {
-          return timestamp_;
-        }
-        public Builder setTimestamp(long value) {
-          bitField0_ |= 0x00000008;
-          timestamp_ = value;
-          onChanged();
-          return this;
-        }
-        public Builder clearTimestamp() {
-          bitField0_ = (bitField0_ & ~0x00000008);
-          timestamp_ = 0L;
-          onChanged();
-          return this;
-        }
-        
-        // optional .OffloadContext offloadContext = 5;
-        private org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext offloadContext_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance();
-        private com.google.protobuf.SingleFieldBuilder<
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder> offloadContextBuilder_;
-        public boolean hasOffloadContext() {
-          return ((bitField0_ & 0x00000010) == 0x00000010);
-        }
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext getOffloadContext() {
-          if (offloadContextBuilder_ == null) {
-            return offloadContext_;
-          } else {
-            return offloadContextBuilder_.getMessage();
-          }
-        }
-        public Builder setOffloadContext(org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext value) {
-          if (offloadContextBuilder_ == null) {
-            if (value == null) {
-              throw new NullPointerException();
-            }
-            offloadContext_ = value;
-            onChanged();
-          } else {
-            offloadContextBuilder_.setMessage(value);
-          }
-          bitField0_ |= 0x00000010;
-          return this;
-        }
-        public Builder setOffloadContext(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder builderForValue) {
-          if (offloadContextBuilder_ == null) {
-            offloadContext_ = builderForValue.build();
-            onChanged();
-          } else {
-            offloadContextBuilder_.setMessage(builderForValue.build());
-          }
-          bitField0_ |= 0x00000010;
-          return this;
-        }
-        public Builder mergeOffloadContext(org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext value) {
-          if (offloadContextBuilder_ == null) {
-            if (((bitField0_ & 0x00000010) == 0x00000010) &&
-                offloadContext_ != org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance()) {
-              offloadContext_ =
-                org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.newBuilder(offloadContext_).mergeFrom(value).buildPartial();
-            } else {
-              offloadContext_ = value;
-            }
-            onChanged();
-          } else {
-            offloadContextBuilder_.mergeFrom(value);
-          }
-          bitField0_ |= 0x00000010;
-          return this;
-        }
-        public Builder clearOffloadContext() {
-          if (offloadContextBuilder_ == null) {
-            offloadContext_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.getDefaultInstance();
-            onChanged();
-          } else {
-            offloadContextBuilder_.clear();
-          }
-          bitField0_ = (bitField0_ & ~0x00000010);
-          return this;
-        }
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder getOffloadContextBuilder() {
-          bitField0_ |= 0x00000010;
-          onChanged();
-          return getOffloadContextFieldBuilder().getBuilder();
-        }
-        public org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder getOffloadContextOrBuilder() {
-          if (offloadContextBuilder_ != null) {
-            return offloadContextBuilder_.getMessageOrBuilder();
-          } else {
-            return offloadContext_;
-          }
-        }
-        private com.google.protobuf.SingleFieldBuilder<
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder> 
-            getOffloadContextFieldBuilder() {
-          if (offloadContextBuilder_ == null) {
-            offloadContextBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-                org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContextOrBuilder>(
-                    offloadContext_,
-                    getParentForChildren(),
-                    isClean());
-            offloadContext_ = null;
-          }
-          return offloadContextBuilder_;
-        }
-        
-        // @@protoc_insertion_point(builder_scope:ManagedLedgerInfo.LedgerInfo)
-      }
-      
-      static {
-        defaultInstance = new LedgerInfo(true);
-        defaultInstance.initFields();
-      }
-      
-      // @@protoc_insertion_point(class_scope:ManagedLedgerInfo.LedgerInfo)
-    }
-    
-    private int bitField0_;
-    // repeated .ManagedLedgerInfo.LedgerInfo ledgerInfo = 1;
-    public static final int LEDGERINFO_FIELD_NUMBER = 1;
-    private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> ledgerInfo_;
-    public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> getLedgerInfoList() {
-      return ledgerInfo_;
-    }
-    public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder> 
-        getLedgerInfoOrBuilderList() {
-      return ledgerInfo_;
-    }
-    public int getLedgerInfoCount() {
-      return ledgerInfo_.size();
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo getLedgerInfo(int index) {
-      return ledgerInfo_.get(index);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder getLedgerInfoOrBuilder(
-        int index) {
-      return ledgerInfo_.get(index);
-    }
-    
-    // optional .NestedPositionInfo terminatedPosition = 2;
-    public static final int TERMINATEDPOSITION_FIELD_NUMBER = 2;
-    private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo terminatedPosition_;
-    public boolean hasTerminatedPosition() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getTerminatedPosition() {
-      return terminatedPosition_;
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getTerminatedPositionOrBuilder() {
-      return terminatedPosition_;
-    }
-    
-    private void initFields() {
-      ledgerInfo_ = java.util.Collections.emptyList();
-      terminatedPosition_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      for (int i = 0; i < getLedgerInfoCount(); i++) {
-        if (!getLedgerInfo(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      if (hasTerminatedPosition()) {
-        if (!getTerminatedPosition().isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      for (int i = 0; i < ledgerInfo_.size(); i++) {
-        output.writeMessage(1, ledgerInfo_.get(i));
-      }
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeMessage(2, terminatedPosition_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      for (int i = 0; i < ledgerInfo_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, ledgerInfo_.get(i));
-      }
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, terminatedPosition_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfoOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedLedgerInfo_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getLedgerInfoFieldBuilder();
-          getTerminatedPositionFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        if (ledgerInfoBuilder_ == null) {
-          ledgerInfo_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        } else {
-          ledgerInfoBuilder_.clear();
-        }
-        if (terminatedPositionBuilder_ == null) {
-          terminatedPosition_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-        } else {
-          terminatedPositionBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (ledgerInfoBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) == 0x00000001)) {
-            ledgerInfo_ = java.util.Collections.unmodifiableList(ledgerInfo_);
-            bitField0_ = (bitField0_ & ~0x00000001);
-          }
-          result.ledgerInfo_ = ledgerInfo_;
-        } else {
-          result.ledgerInfo_ = ledgerInfoBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        if (terminatedPositionBuilder_ == null) {
-          result.terminatedPosition_ = terminatedPosition_;
-        } else {
-          result.terminatedPosition_ = terminatedPositionBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.getDefaultInstance()) return this;
-        if (ledgerInfoBuilder_ == null) {
-          if (!other.ledgerInfo_.isEmpty()) {
-            if (ledgerInfo_.isEmpty()) {
-              ledgerInfo_ = other.ledgerInfo_;
-              bitField0_ = (bitField0_ & ~0x00000001);
-            } else {
-              ensureLedgerInfoIsMutable();
-              ledgerInfo_.addAll(other.ledgerInfo_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.ledgerInfo_.isEmpty()) {
-            if (ledgerInfoBuilder_.isEmpty()) {
-              ledgerInfoBuilder_.dispose();
-              ledgerInfoBuilder_ = null;
-              ledgerInfo_ = other.ledgerInfo_;
-              bitField0_ = (bitField0_ & ~0x00000001);
-              ledgerInfoBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLedgerInfoFieldBuilder() : null;
-            } else {
-              ledgerInfoBuilder_.addAllMessages(other.ledgerInfo_);
-            }
-          }
-        }
-        if (other.hasTerminatedPosition()) {
-          mergeTerminatedPosition(other.getTerminatedPosition());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        for (int i = 0; i < getLedgerInfoCount(); i++) {
-          if (!getLedgerInfo(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        if (hasTerminatedPosition()) {
-          if (!getTerminatedPosition().isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLedgerInfo(subBuilder.buildPartial());
-              break;
-            }
-            case 18: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder();
-              if (hasTerminatedPosition()) {
-                subBuilder.mergeFrom(getTerminatedPosition());
-              }
-              input.readMessage(subBuilder, extensionRegistry);
-              setTerminatedPosition(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // repeated .ManagedLedgerInfo.LedgerInfo ledgerInfo = 1;
-      private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> ledgerInfo_ =
-        java.util.Collections.emptyList();
-      private void ensureLedgerInfoIsMutable() {
-        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
-          ledgerInfo_ = new java.util.ArrayList<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo>(ledgerInfo_);
-          bitField0_ |= 0x00000001;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder> ledgerInfoBuilder_;
-      
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> getLedgerInfoList() {
-        if (ledgerInfoBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(ledgerInfo_);
-        } else {
-          return ledgerInfoBuilder_.getMessageList();
-        }
-      }
-      public int getLedgerInfoCount() {
-        if (ledgerInfoBuilder_ == null) {
-          return ledgerInfo_.size();
-        } else {
-          return ledgerInfoBuilder_.getCount();
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo getLedgerInfo(int index) {
-        if (ledgerInfoBuilder_ == null) {
-          return ledgerInfo_.get(index);
-        } else {
-          return ledgerInfoBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLedgerInfo(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo value) {
-        if (ledgerInfoBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.set(index, value);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLedgerInfo(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder builderForValue) {
-        if (ledgerInfoBuilder_ == null) {
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLedgerInfo(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo value) {
-        if (ledgerInfoBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.add(value);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLedgerInfo(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo value) {
-        if (ledgerInfoBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.add(index, value);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLedgerInfo(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder builderForValue) {
-        if (ledgerInfoBuilder_ == null) {
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.add(builderForValue.build());
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLedgerInfo(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder builderForValue) {
-        if (ledgerInfoBuilder_ == null) {
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLedgerInfo(
-          java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo> values) {
-        if (ledgerInfoBuilder_ == null) {
-          ensureLedgerInfoIsMutable();
-          super.addAll(values, ledgerInfo_);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLedgerInfo() {
-        if (ledgerInfoBuilder_ == null) {
-          ledgerInfo_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLedgerInfo(int index) {
-        if (ledgerInfoBuilder_ == null) {
-          ensureLedgerInfoIsMutable();
-          ledgerInfo_.remove(index);
-          onChanged();
-        } else {
-          ledgerInfoBuilder_.remove(index);
-        }
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder getLedgerInfoBuilder(
-          int index) {
-        return getLedgerInfoFieldBuilder().getBuilder(index);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder getLedgerInfoOrBuilder(
-          int index) {
-        if (ledgerInfoBuilder_ == null) {
-          return ledgerInfo_.get(index);  } else {
-          return ledgerInfoBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder> 
-           getLedgerInfoOrBuilderList() {
-        if (ledgerInfoBuilder_ != null) {
-          return ledgerInfoBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(ledgerInfo_);
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder addLedgerInfoBuilder() {
-        return getLedgerInfoFieldBuilder().addBuilder(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.getDefaultInstance());
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder addLedgerInfoBuilder(
-          int index) {
-        return getLedgerInfoFieldBuilder().addBuilder(
-            index, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.getDefaultInstance());
-      }
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder> 
-           getLedgerInfoBuilderList() {
-        return getLedgerInfoFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder> 
-          getLedgerInfoFieldBuilder() {
-        if (ledgerInfoBuilder_ == null) {
-          ledgerInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfoOrBuilder>(
-                  ledgerInfo_,
-                  ((bitField0_ & 0x00000001) == 0x00000001),
-                  getParentForChildren(),
-                  isClean());
-          ledgerInfo_ = null;
-        }
-        return ledgerInfoBuilder_;
-      }
-      
-      // optional .NestedPositionInfo terminatedPosition = 2;
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo terminatedPosition_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> terminatedPositionBuilder_;
-      public boolean hasTerminatedPosition() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getTerminatedPosition() {
-        if (terminatedPositionBuilder_ == null) {
-          return terminatedPosition_;
-        } else {
-          return terminatedPositionBuilder_.getMessage();
-        }
-      }
-      public Builder setTerminatedPosition(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (terminatedPositionBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          terminatedPosition_ = value;
-          onChanged();
-        } else {
-          terminatedPositionBuilder_.setMessage(value);
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder setTerminatedPosition(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder builderForValue) {
-        if (terminatedPositionBuilder_ == null) {
-          terminatedPosition_ = builderForValue.build();
-          onChanged();
-        } else {
-          terminatedPositionBuilder_.setMessage(builderForValue.build());
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder mergeTerminatedPosition(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (terminatedPositionBuilder_ == null) {
-          if (((bitField0_ & 0x00000002) == 0x00000002) &&
-              terminatedPosition_ != org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance()) {
-            terminatedPosition_ =
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder(terminatedPosition_).mergeFrom(value).buildPartial();
-          } else {
-            terminatedPosition_ = value;
-          }
-          onChanged();
-        } else {
-          terminatedPositionBuilder_.mergeFrom(value);
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder clearTerminatedPosition() {
-        if (terminatedPositionBuilder_ == null) {
-          terminatedPosition_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-          onChanged();
-        } else {
-          terminatedPositionBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder getTerminatedPositionBuilder() {
-        bitField0_ |= 0x00000002;
-        onChanged();
-        return getTerminatedPositionFieldBuilder().getBuilder();
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getTerminatedPositionOrBuilder() {
-        if (terminatedPositionBuilder_ != null) {
-          return terminatedPositionBuilder_.getMessageOrBuilder();
-        } else {
-          return terminatedPosition_;
-        }
-      }
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> 
-          getTerminatedPositionFieldBuilder() {
-        if (terminatedPositionBuilder_ == null) {
-          terminatedPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder>(
-                  terminatedPosition_,
-                  getParentForChildren(),
-                  isClean());
-          terminatedPosition_ = null;
-        }
-        return terminatedPositionBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ManagedLedgerInfo)
-    }
-    
-    static {
-      defaultInstance = new ManagedLedgerInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ManagedLedgerInfo)
-  }
-  
-  public interface PositionInfoOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required int64 ledgerId = 1;
-    boolean hasLedgerId();
-    long getLedgerId();
-    
-    // required int64 entryId = 2;
-    boolean hasEntryId();
-    long getEntryId();
-    
-    // repeated .MessageRange individualDeletedMessages = 3;
-    java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> 
-        getIndividualDeletedMessagesList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index);
-    int getIndividualDeletedMessagesCount();
-    java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-        getIndividualDeletedMessagesOrBuilderList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-        int index);
-    
-    // repeated .LongProperty properties = 4;
-    java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> 
-        getPropertiesList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index);
-    int getPropertiesCount();
-    java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-        getPropertiesOrBuilderList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-        int index);
-  }
-  public static final class PositionInfo extends
-      com.google.protobuf.GeneratedMessage
-      implements PositionInfoOrBuilder {
-    // Use PositionInfo.newBuilder() to construct.
-    private PositionInfo(Builder builder) {
-      super(builder);
-    }
-    private PositionInfo(boolean noInit) {}
-    
-    private static final PositionInfo defaultInstance;
-    public static PositionInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public PositionInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_PositionInfo_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_PositionInfo_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required int64 ledgerId = 1;
-    public static final int LEDGERID_FIELD_NUMBER = 1;
-    private long ledgerId_;
-    public boolean hasLedgerId() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getLedgerId() {
-      return ledgerId_;
-    }
-    
-    // required int64 entryId = 2;
-    public static final int ENTRYID_FIELD_NUMBER = 2;
-    private long entryId_;
-    public boolean hasEntryId() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getEntryId() {
-      return entryId_;
-    }
-    
-    // repeated .MessageRange individualDeletedMessages = 3;
-    public static final int INDIVIDUALDELETEDMESSAGES_FIELD_NUMBER = 3;
-    private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> individualDeletedMessages_;
-    public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> getIndividualDeletedMessagesList() {
-      return individualDeletedMessages_;
-    }
-    public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-        getIndividualDeletedMessagesOrBuilderList() {
-      return individualDeletedMessages_;
-    }
-    public int getIndividualDeletedMessagesCount() {
-      return individualDeletedMessages_.size();
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index) {
-      return individualDeletedMessages_.get(index);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-        int index) {
-      return individualDeletedMessages_.get(index);
-    }
-    
-    // repeated .LongProperty properties = 4;
-    public static final int PROPERTIES_FIELD_NUMBER = 4;
-    private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> properties_;
-    public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> getPropertiesList() {
-      return properties_;
-    }
-    public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-        getPropertiesOrBuilderList() {
-      return properties_;
-    }
-    public int getPropertiesCount() {
-      return properties_.size();
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index) {
-      return properties_.get(index);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-        int index) {
-      return properties_.get(index);
-    }
-    
-    private void initFields() {
-      ledgerId_ = 0L;
-      entryId_ = 0L;
-      individualDeletedMessages_ = java.util.Collections.emptyList();
-      properties_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasLedgerId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasEntryId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getIndividualDeletedMessagesCount(); i++) {
-        if (!getIndividualDeletedMessages(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getPropertiesCount(); i++) {
-        if (!getProperties(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, entryId_);
-      }
-      for (int i = 0; i < individualDeletedMessages_.size(); i++) {
-        output.writeMessage(3, individualDeletedMessages_.get(i));
-      }
-      for (int i = 0; i < properties_.size(); i++) {
-        output.writeMessage(4, properties_.get(i));
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, entryId_);
-      }
-      for (int i = 0; i < individualDeletedMessages_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, individualDeletedMessages_.get(i));
-      }
-      for (int i = 0; i < properties_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, properties_.get(i));
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfoOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_PositionInfo_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_PositionInfo_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getIndividualDeletedMessagesFieldBuilder();
-          getPropertiesFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        ledgerId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        entryId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessages_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          individualDeletedMessagesBuilder_.clear();
-        }
-        if (propertiesBuilder_ == null) {
-          properties_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          propertiesBuilder_.clear();
-        }
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.ledgerId_ = ledgerId_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.entryId_ = entryId_;
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            individualDeletedMessages_ = java.util.Collections.unmodifiableList(individualDeletedMessages_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.individualDeletedMessages_ = individualDeletedMessages_;
-        } else {
-          result.individualDeletedMessages_ = individualDeletedMessagesBuilder_.build();
-        }
-        if (propertiesBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) == 0x00000008)) {
-            properties_ = java.util.Collections.unmodifiableList(properties_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.properties_ = properties_;
-        } else {
-          result.properties_ = propertiesBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.getDefaultInstance()) return this;
-        if (other.hasLedgerId()) {
-          setLedgerId(other.getLedgerId());
-        }
-        if (other.hasEntryId()) {
-          setEntryId(other.getEntryId());
-        }
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (!other.individualDeletedMessages_.isEmpty()) {
-            if (individualDeletedMessages_.isEmpty()) {
-              individualDeletedMessages_ = other.individualDeletedMessages_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureIndividualDeletedMessagesIsMutable();
-              individualDeletedMessages_.addAll(other.individualDeletedMessages_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.individualDeletedMessages_.isEmpty()) {
-            if (individualDeletedMessagesBuilder_.isEmpty()) {
-              individualDeletedMessagesBuilder_.dispose();
-              individualDeletedMessagesBuilder_ = null;
-              individualDeletedMessages_ = other.individualDeletedMessages_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              individualDeletedMessagesBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getIndividualDeletedMessagesFieldBuilder() : null;
-            } else {
-              individualDeletedMessagesBuilder_.addAllMessages(other.individualDeletedMessages_);
-            }
-          }
-        }
-        if (propertiesBuilder_ == null) {
-          if (!other.properties_.isEmpty()) {
-            if (properties_.isEmpty()) {
-              properties_ = other.properties_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensurePropertiesIsMutable();
-              properties_.addAll(other.properties_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.properties_.isEmpty()) {
-            if (propertiesBuilder_.isEmpty()) {
-              propertiesBuilder_.dispose();
-              propertiesBuilder_ = null;
-              properties_ = other.properties_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              propertiesBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getPropertiesFieldBuilder() : null;
-            } else {
-              propertiesBuilder_.addAllMessages(other.properties_);
-            }
-          }
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasLedgerId()) {
-          
-          return false;
-        }
-        if (!hasEntryId()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getIndividualDeletedMessagesCount(); i++) {
-          if (!getIndividualDeletedMessages(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getPropertiesCount(); i++) {
-          if (!getProperties(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              ledgerId_ = input.readInt64();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              entryId_ = input.readInt64();
-              break;
-            }
-            case 26: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addIndividualDeletedMessages(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addProperties(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required int64 ledgerId = 1;
-      private long ledgerId_ ;
-      public boolean hasLedgerId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getLedgerId() {
-        return ledgerId_;
-      }
-      public Builder setLedgerId(long value) {
-        bitField0_ |= 0x00000001;
-        ledgerId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearLedgerId() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        ledgerId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // required int64 entryId = 2;
-      private long entryId_ ;
-      public boolean hasEntryId() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getEntryId() {
-        return entryId_;
-      }
-      public Builder setEntryId(long value) {
-        bitField0_ |= 0x00000002;
-        entryId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearEntryId() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        entryId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .MessageRange individualDeletedMessages = 3;
-      private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> individualDeletedMessages_ =
-        java.util.Collections.emptyList();
-      private void ensureIndividualDeletedMessagesIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          individualDeletedMessages_ = new java.util.ArrayList<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange>(individualDeletedMessages_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> individualDeletedMessagesBuilder_;
-      
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> getIndividualDeletedMessagesList() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(individualDeletedMessages_);
-        } else {
-          return individualDeletedMessagesBuilder_.getMessageList();
-        }
-      }
-      public int getIndividualDeletedMessagesCount() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.size();
-        } else {
-          return individualDeletedMessagesBuilder_.getCount();
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.get(index);
-        } else {
-          return individualDeletedMessagesBuilder_.getMessage(index);
-        }
-      }
-      public Builder setIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.set(index, value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(index, value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllIndividualDeletedMessages(
-          java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> values) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          super.addAll(values, individualDeletedMessages_);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearIndividualDeletedMessages() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessages_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeIndividualDeletedMessages(int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.remove(index);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.remove(index);
-        }
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder getIndividualDeletedMessagesBuilder(
-          int index) {
-        return getIndividualDeletedMessagesFieldBuilder().getBuilder(index);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-          int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.get(index);  } else {
-          return individualDeletedMessagesBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-           getIndividualDeletedMessagesOrBuilderList() {
-        if (individualDeletedMessagesBuilder_ != null) {
-          return individualDeletedMessagesBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(individualDeletedMessages_);
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder addIndividualDeletedMessagesBuilder() {
-        return getIndividualDeletedMessagesFieldBuilder().addBuilder(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance());
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder addIndividualDeletedMessagesBuilder(
-          int index) {
-        return getIndividualDeletedMessagesFieldBuilder().addBuilder(
-            index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance());
-      }
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder> 
-           getIndividualDeletedMessagesBuilderList() {
-        return getIndividualDeletedMessagesFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-          getIndividualDeletedMessagesFieldBuilder() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder>(
-                  individualDeletedMessages_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          individualDeletedMessages_ = null;
-        }
-        return individualDeletedMessagesBuilder_;
-      }
-      
-      // repeated .LongProperty properties = 4;
-      private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> properties_ =
-        java.util.Collections.emptyList();
-      private void ensurePropertiesIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          properties_ = new java.util.ArrayList<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty>(properties_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> propertiesBuilder_;
-      
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> getPropertiesList() {
-        if (propertiesBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(properties_);
-        } else {
-          return propertiesBuilder_.getMessageList();
-        }
-      }
-      public int getPropertiesCount() {
-        if (propertiesBuilder_ == null) {
-          return properties_.size();
-        } else {
-          return propertiesBuilder_.getCount();
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index) {
-        if (propertiesBuilder_ == null) {
-          return properties_.get(index);
-        } else {
-          return propertiesBuilder_.getMessage(index);
-        }
-      }
-      public Builder setProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.set(index, value);
-          onChanged();
-        } else {
-          propertiesBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addProperties(org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.add(value);
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.add(index, value);
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addProperties(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.add(builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllProperties(
-          java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> values) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          super.addAll(values, properties_);
-          onChanged();
-        } else {
-          propertiesBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearProperties() {
-        if (propertiesBuilder_ == null) {
-          properties_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          propertiesBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeProperties(int index) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.remove(index);
-          onChanged();
-        } else {
-          propertiesBuilder_.remove(index);
-        }
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder getPropertiesBuilder(
-          int index) {
-        return getPropertiesFieldBuilder().getBuilder(index);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-          int index) {
-        if (propertiesBuilder_ == null) {
-          return properties_.get(index);  } else {
-          return propertiesBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-           getPropertiesOrBuilderList() {
-        if (propertiesBuilder_ != null) {
-          return propertiesBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(properties_);
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder addPropertiesBuilder() {
-        return getPropertiesFieldBuilder().addBuilder(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance());
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder addPropertiesBuilder(
-          int index) {
-        return getPropertiesFieldBuilder().addBuilder(
-            index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance());
-      }
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder> 
-           getPropertiesBuilderList() {
-        return getPropertiesFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-          getPropertiesFieldBuilder() {
-        if (propertiesBuilder_ == null) {
-          propertiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder>(
-                  properties_,
-                  ((bitField0_ & 0x00000008) == 0x00000008),
-                  getParentForChildren(),
-                  isClean());
-          properties_ = null;
-        }
-        return propertiesBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:PositionInfo)
-    }
-    
-    static {
-      defaultInstance = new PositionInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:PositionInfo)
-  }
-  
-  public interface NestedPositionInfoOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required int64 ledgerId = 1;
-    boolean hasLedgerId();
-    long getLedgerId();
-    
-    // required int64 entryId = 2;
-    boolean hasEntryId();
-    long getEntryId();
-  }
-  public static final class NestedPositionInfo extends
-      com.google.protobuf.GeneratedMessage
-      implements NestedPositionInfoOrBuilder {
-    // Use NestedPositionInfo.newBuilder() to construct.
-    private NestedPositionInfo(Builder builder) {
-      super(builder);
-    }
-    private NestedPositionInfo(boolean noInit) {}
-    
-    private static final NestedPositionInfo defaultInstance;
-    public static NestedPositionInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public NestedPositionInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_NestedPositionInfo_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_NestedPositionInfo_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required int64 ledgerId = 1;
-    public static final int LEDGERID_FIELD_NUMBER = 1;
-    private long ledgerId_;
-    public boolean hasLedgerId() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getLedgerId() {
-      return ledgerId_;
-    }
-    
-    // required int64 entryId = 2;
-    public static final int ENTRYID_FIELD_NUMBER = 2;
-    private long entryId_;
-    public boolean hasEntryId() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getEntryId() {
-      return entryId_;
-    }
-    
-    private void initFields() {
-      ledgerId_ = 0L;
-      entryId_ = 0L;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasLedgerId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasEntryId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, entryId_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, entryId_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_NestedPositionInfo_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_NestedPositionInfo_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        ledgerId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        entryId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.ledgerId_ = ledgerId_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.entryId_ = entryId_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance()) return this;
-        if (other.hasLedgerId()) {
-          setLedgerId(other.getLedgerId());
-        }
-        if (other.hasEntryId()) {
-          setEntryId(other.getEntryId());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasLedgerId()) {
-          
-          return false;
-        }
-        if (!hasEntryId()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              ledgerId_ = input.readInt64();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              entryId_ = input.readInt64();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required int64 ledgerId = 1;
-      private long ledgerId_ ;
-      public boolean hasLedgerId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getLedgerId() {
-        return ledgerId_;
-      }
-      public Builder setLedgerId(long value) {
-        bitField0_ |= 0x00000001;
-        ledgerId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearLedgerId() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        ledgerId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // required int64 entryId = 2;
-      private long entryId_ ;
-      public boolean hasEntryId() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getEntryId() {
-        return entryId_;
-      }
-      public Builder setEntryId(long value) {
-        bitField0_ |= 0x00000002;
-        entryId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearEntryId() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        entryId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:NestedPositionInfo)
-    }
-    
-    static {
-      defaultInstance = new NestedPositionInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:NestedPositionInfo)
-  }
-  
-  public interface MessageRangeOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required .NestedPositionInfo lowerEndpoint = 1;
-    boolean hasLowerEndpoint();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getLowerEndpoint();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getLowerEndpointOrBuilder();
-    
-    // required .NestedPositionInfo upperEndpoint = 2;
-    boolean hasUpperEndpoint();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getUpperEndpoint();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getUpperEndpointOrBuilder();
-  }
-  public static final class MessageRange extends
-      com.google.protobuf.GeneratedMessage
-      implements MessageRangeOrBuilder {
-    // Use MessageRange.newBuilder() to construct.
-    private MessageRange(Builder builder) {
-      super(builder);
-    }
-    private MessageRange(boolean noInit) {}
-    
-    private static final MessageRange defaultInstance;
-    public static MessageRange getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public MessageRange getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_MessageRange_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_MessageRange_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required .NestedPositionInfo lowerEndpoint = 1;
-    public static final int LOWERENDPOINT_FIELD_NUMBER = 1;
-    private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo lowerEndpoint_;
-    public boolean hasLowerEndpoint() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getLowerEndpoint() {
-      return lowerEndpoint_;
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getLowerEndpointOrBuilder() {
-      return lowerEndpoint_;
-    }
-    
-    // required .NestedPositionInfo upperEndpoint = 2;
-    public static final int UPPERENDPOINT_FIELD_NUMBER = 2;
-    private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo upperEndpoint_;
-    public boolean hasUpperEndpoint() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getUpperEndpoint() {
-      return upperEndpoint_;
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getUpperEndpointOrBuilder() {
-      return upperEndpoint_;
-    }
-    
-    private void initFields() {
-      lowerEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-      upperEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasLowerEndpoint()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasUpperEndpoint()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!getLowerEndpoint().isInitialized()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!getUpperEndpoint().isInitialized()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeMessage(1, lowerEndpoint_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeMessage(2, upperEndpoint_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, lowerEndpoint_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, upperEndpoint_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_MessageRange_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_MessageRange_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getLowerEndpointFieldBuilder();
-          getUpperEndpointFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        if (lowerEndpointBuilder_ == null) {
-          lowerEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-        } else {
-          lowerEndpointBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000001);
-        if (upperEndpointBuilder_ == null) {
-          upperEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-        } else {
-          upperEndpointBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        if (lowerEndpointBuilder_ == null) {
-          result.lowerEndpoint_ = lowerEndpoint_;
-        } else {
-          result.lowerEndpoint_ = lowerEndpointBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        if (upperEndpointBuilder_ == null) {
-          result.upperEndpoint_ = upperEndpoint_;
-        } else {
-          result.upperEndpoint_ = upperEndpointBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance()) return this;
-        if (other.hasLowerEndpoint()) {
-          mergeLowerEndpoint(other.getLowerEndpoint());
-        }
-        if (other.hasUpperEndpoint()) {
-          mergeUpperEndpoint(other.getUpperEndpoint());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasLowerEndpoint()) {
-          
-          return false;
-        }
-        if (!hasUpperEndpoint()) {
-          
-          return false;
-        }
-        if (!getLowerEndpoint().isInitialized()) {
-          
-          return false;
-        }
-        if (!getUpperEndpoint().isInitialized()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder();
-              if (hasLowerEndpoint()) {
-                subBuilder.mergeFrom(getLowerEndpoint());
-              }
-              input.readMessage(subBuilder, extensionRegistry);
-              setLowerEndpoint(subBuilder.buildPartial());
-              break;
-            }
-            case 18: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder();
-              if (hasUpperEndpoint()) {
-                subBuilder.mergeFrom(getUpperEndpoint());
-              }
-              input.readMessage(subBuilder, extensionRegistry);
-              setUpperEndpoint(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required .NestedPositionInfo lowerEndpoint = 1;
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo lowerEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> lowerEndpointBuilder_;
-      public boolean hasLowerEndpoint() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getLowerEndpoint() {
-        if (lowerEndpointBuilder_ == null) {
-          return lowerEndpoint_;
-        } else {
-          return lowerEndpointBuilder_.getMessage();
-        }
-      }
-      public Builder setLowerEndpoint(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (lowerEndpointBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          lowerEndpoint_ = value;
-          onChanged();
-        } else {
-          lowerEndpointBuilder_.setMessage(value);
-        }
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder setLowerEndpoint(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder builderForValue) {
-        if (lowerEndpointBuilder_ == null) {
-          lowerEndpoint_ = builderForValue.build();
-          onChanged();
-        } else {
-          lowerEndpointBuilder_.setMessage(builderForValue.build());
-        }
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder mergeLowerEndpoint(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (lowerEndpointBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) == 0x00000001) &&
-              lowerEndpoint_ != org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance()) {
-            lowerEndpoint_ =
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder(lowerEndpoint_).mergeFrom(value).buildPartial();
-          } else {
-            lowerEndpoint_ = value;
-          }
-          onChanged();
-        } else {
-          lowerEndpointBuilder_.mergeFrom(value);
-        }
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder clearLowerEndpoint() {
-        if (lowerEndpointBuilder_ == null) {
-          lowerEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-          onChanged();
-        } else {
-          lowerEndpointBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder getLowerEndpointBuilder() {
-        bitField0_ |= 0x00000001;
-        onChanged();
-        return getLowerEndpointFieldBuilder().getBuilder();
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getLowerEndpointOrBuilder() {
-        if (lowerEndpointBuilder_ != null) {
-          return lowerEndpointBuilder_.getMessageOrBuilder();
-        } else {
-          return lowerEndpoint_;
-        }
-      }
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> 
-          getLowerEndpointFieldBuilder() {
-        if (lowerEndpointBuilder_ == null) {
-          lowerEndpointBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder>(
-                  lowerEndpoint_,
-                  getParentForChildren(),
-                  isClean());
-          lowerEndpoint_ = null;
-        }
-        return lowerEndpointBuilder_;
-      }
-      
-      // required .NestedPositionInfo upperEndpoint = 2;
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo upperEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> upperEndpointBuilder_;
-      public boolean hasUpperEndpoint() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo getUpperEndpoint() {
-        if (upperEndpointBuilder_ == null) {
-          return upperEndpoint_;
-        } else {
-          return upperEndpointBuilder_.getMessage();
-        }
-      }
-      public Builder setUpperEndpoint(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (upperEndpointBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          upperEndpoint_ = value;
-          onChanged();
-        } else {
-          upperEndpointBuilder_.setMessage(value);
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder setUpperEndpoint(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder builderForValue) {
-        if (upperEndpointBuilder_ == null) {
-          upperEndpoint_ = builderForValue.build();
-          onChanged();
-        } else {
-          upperEndpointBuilder_.setMessage(builderForValue.build());
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder mergeUpperEndpoint(org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo value) {
-        if (upperEndpointBuilder_ == null) {
-          if (((bitField0_ & 0x00000002) == 0x00000002) &&
-              upperEndpoint_ != org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance()) {
-            upperEndpoint_ =
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.newBuilder(upperEndpoint_).mergeFrom(value).buildPartial();
-          } else {
-            upperEndpoint_ = value;
-          }
-          onChanged();
-        } else {
-          upperEndpointBuilder_.mergeFrom(value);
-        }
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder clearUpperEndpoint() {
-        if (upperEndpointBuilder_ == null) {
-          upperEndpoint_ = org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.getDefaultInstance();
-          onChanged();
-        } else {
-          upperEndpointBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder getUpperEndpointBuilder() {
-        bitField0_ |= 0x00000002;
-        onChanged();
-        return getUpperEndpointFieldBuilder().getBuilder();
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder getUpperEndpointOrBuilder() {
-        if (upperEndpointBuilder_ != null) {
-          return upperEndpointBuilder_.getMessageOrBuilder();
-        } else {
-          return upperEndpoint_;
-        }
-      }
-      private com.google.protobuf.SingleFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder> 
-          getUpperEndpointFieldBuilder() {
-        if (upperEndpointBuilder_ == null) {
-          upperEndpointBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfoOrBuilder>(
-                  upperEndpoint_,
-                  getParentForChildren(),
-                  isClean());
-          upperEndpoint_ = null;
-        }
-        return upperEndpointBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:MessageRange)
-    }
-    
-    static {
-      defaultInstance = new MessageRange(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:MessageRange)
-  }
-  
-  public interface LongPropertyOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string name = 1;
-    boolean hasName();
-    String getName();
-    
-    // required int64 value = 2;
-    boolean hasValue();
-    long getValue();
-  }
-  public static final class LongProperty extends
-      com.google.protobuf.GeneratedMessage
-      implements LongPropertyOrBuilder {
-    // Use LongProperty.newBuilder() to construct.
-    private LongProperty(Builder builder) {
-      super(builder);
-    }
-    private LongProperty(boolean noInit) {}
-    
-    private static final LongProperty defaultInstance;
-    public static LongProperty getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public LongProperty getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_LongProperty_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_LongProperty_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string name = 1;
-    public static final int NAME_FIELD_NUMBER = 1;
-    private java.lang.Object name_;
-    public boolean hasName() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getName() {
-      java.lang.Object ref = name_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          name_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getNameBytes() {
-      java.lang.Object ref = name_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        name_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required int64 value = 2;
-    public static final int VALUE_FIELD_NUMBER = 2;
-    private long value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getValue() {
-      return value_;
-    }
-    
-    private void initFields() {
-      name_ = "";
-      value_ = 0L;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getNameBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, value_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getNameBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, value_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_LongProperty_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_LongProperty_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        name_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.name_ = name_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.value_ = value_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance()) return this;
-        if (other.hasName()) {
-          setName(other.getName());
-        }
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasName()) {
-          
-          return false;
-        }
-        if (!hasValue()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              name_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              value_ = input.readInt64();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string name = 1;
-      private java.lang.Object name_ = "";
-      public boolean hasName() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getName() {
-        java.lang.Object ref = name_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          name_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        name_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearName() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        name_ = getDefaultInstance().getName();
-        onChanged();
-        return this;
-      }
-      void setName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        name_ = value;
-        onChanged();
-      }
-      
-      // required int64 value = 2;
-      private long value_ ;
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getValue() {
-        return value_;
-      }
-      public Builder setValue(long value) {
-        bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        value_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:LongProperty)
-    }
-    
-    static {
-      defaultInstance = new LongProperty(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:LongProperty)
-  }
-  
-  public interface ManagedCursorInfoOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required int64 cursorsLedgerId = 1;
-    boolean hasCursorsLedgerId();
-    long getCursorsLedgerId();
-    
-    // optional int64 markDeleteLedgerId = 2;
-    boolean hasMarkDeleteLedgerId();
-    long getMarkDeleteLedgerId();
-    
-    // optional int64 markDeleteEntryId = 3;
-    boolean hasMarkDeleteEntryId();
-    long getMarkDeleteEntryId();
-    
-    // repeated .MessageRange individualDeletedMessages = 4;
-    java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> 
-        getIndividualDeletedMessagesList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index);
-    int getIndividualDeletedMessagesCount();
-    java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-        getIndividualDeletedMessagesOrBuilderList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-        int index);
-    
-    // repeated .LongProperty properties = 5;
-    java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> 
-        getPropertiesList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index);
-    int getPropertiesCount();
-    java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-        getPropertiesOrBuilderList();
-    org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-        int index);
-    
-    // optional int64 lastActive = 6;
-    boolean hasLastActive();
-    long getLastActive();
-  }
-  public static final class ManagedCursorInfo extends
-      com.google.protobuf.GeneratedMessage
-      implements ManagedCursorInfoOrBuilder {
-    // Use ManagedCursorInfo.newBuilder() to construct.
-    private ManagedCursorInfo(Builder builder) {
-      super(builder);
-    }
-    private ManagedCursorInfo(boolean noInit) {}
-    
-    private static final ManagedCursorInfo defaultInstance;
-    public static ManagedCursorInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public ManagedCursorInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedCursorInfo_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedCursorInfo_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required int64 cursorsLedgerId = 1;
-    public static final int CURSORSLEDGERID_FIELD_NUMBER = 1;
-    private long cursorsLedgerId_;
-    public boolean hasCursorsLedgerId() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getCursorsLedgerId() {
-      return cursorsLedgerId_;
-    }
-    
-    // optional int64 markDeleteLedgerId = 2;
-    public static final int MARKDELETELEDGERID_FIELD_NUMBER = 2;
-    private long markDeleteLedgerId_;
-    public boolean hasMarkDeleteLedgerId() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getMarkDeleteLedgerId() {
-      return markDeleteLedgerId_;
-    }
-    
-    // optional int64 markDeleteEntryId = 3;
-    public static final int MARKDELETEENTRYID_FIELD_NUMBER = 3;
-    private long markDeleteEntryId_;
-    public boolean hasMarkDeleteEntryId() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public long getMarkDeleteEntryId() {
-      return markDeleteEntryId_;
-    }
-    
-    // repeated .MessageRange individualDeletedMessages = 4;
-    public static final int INDIVIDUALDELETEDMESSAGES_FIELD_NUMBER = 4;
-    private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> individualDeletedMessages_;
-    public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> getIndividualDeletedMessagesList() {
-      return individualDeletedMessages_;
-    }
-    public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-        getIndividualDeletedMessagesOrBuilderList() {
-      return individualDeletedMessages_;
-    }
-    public int getIndividualDeletedMessagesCount() {
-      return individualDeletedMessages_.size();
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index) {
-      return individualDeletedMessages_.get(index);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-        int index) {
-      return individualDeletedMessages_.get(index);
-    }
-    
-    // repeated .LongProperty properties = 5;
-    public static final int PROPERTIES_FIELD_NUMBER = 5;
-    private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> properties_;
-    public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> getPropertiesList() {
-      return properties_;
-    }
-    public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-        getPropertiesOrBuilderList() {
-      return properties_;
-    }
-    public int getPropertiesCount() {
-      return properties_.size();
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index) {
-      return properties_.get(index);
-    }
-    public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-        int index) {
-      return properties_.get(index);
-    }
-    
-    // optional int64 lastActive = 6;
-    public static final int LASTACTIVE_FIELD_NUMBER = 6;
-    private long lastActive_;
-    public boolean hasLastActive() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public long getLastActive() {
-      return lastActive_;
-    }
-    
-    private void initFields() {
-      cursorsLedgerId_ = 0L;
-      markDeleteLedgerId_ = 0L;
-      markDeleteEntryId_ = 0L;
-      individualDeletedMessages_ = java.util.Collections.emptyList();
-      properties_ = java.util.Collections.emptyList();
-      lastActive_ = 0L;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasCursorsLedgerId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getIndividualDeletedMessagesCount(); i++) {
-        if (!getIndividualDeletedMessages(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getPropertiesCount(); i++) {
-        if (!getProperties(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, cursorsLedgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, markDeleteLedgerId_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeInt64(3, markDeleteEntryId_);
-      }
-      for (int i = 0; i < individualDeletedMessages_.size(); i++) {
-        output.writeMessage(4, individualDeletedMessages_.get(i));
-      }
-      for (int i = 0; i < properties_.size(); i++) {
-        output.writeMessage(5, properties_.get(i));
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeInt64(6, lastActive_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, cursorsLedgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, markDeleteLedgerId_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(3, markDeleteEntryId_);
-      }
-      for (int i = 0; i < individualDeletedMessages_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, individualDeletedMessages_.get(i));
-      }
-      for (int i = 0; i < properties_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(5, properties_.get(i));
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(6, lastActive_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfoOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedCursorInfo_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.internal_static_ManagedCursorInfo_fieldAccessorTable;
-      }
-      
-      // Construct using org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getIndividualDeletedMessagesFieldBuilder();
-          getPropertiesFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        cursorsLedgerId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        markDeleteLedgerId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        markDeleteEntryId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000004);
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessages_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          individualDeletedMessagesBuilder_.clear();
-        }
-        if (propertiesBuilder_ == null) {
-          properties_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000010);
-        } else {
-          propertiesBuilder_.clear();
-        }
-        lastActive_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDescriptor();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo getDefaultInstanceForType() {
-        return org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDefaultInstance();
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo build() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo buildPartial() {
-        org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo result = new org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.cursorsLedgerId_ = cursorsLedgerId_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.markDeleteLedgerId_ = markDeleteLedgerId_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.markDeleteEntryId_ = markDeleteEntryId_;
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) == 0x00000008)) {
-            individualDeletedMessages_ = java.util.Collections.unmodifiableList(individualDeletedMessages_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.individualDeletedMessages_ = individualDeletedMessages_;
-        } else {
-          result.individualDeletedMessages_ = individualDeletedMessagesBuilder_.build();
-        }
-        if (propertiesBuilder_ == null) {
-          if (((bitField0_ & 0x00000010) == 0x00000010)) {
-            properties_ = java.util.Collections.unmodifiableList(properties_);
-            bitField0_ = (bitField0_ & ~0x00000010);
-          }
-          result.properties_ = properties_;
-        } else {
-          result.properties_ = propertiesBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.lastActive_ = lastActive_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo) {
-          return mergeFrom((org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo other) {
-        if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDefaultInstance()) return this;
-        if (other.hasCursorsLedgerId()) {
-          setCursorsLedgerId(other.getCursorsLedgerId());
-        }
-        if (other.hasMarkDeleteLedgerId()) {
-          setMarkDeleteLedgerId(other.getMarkDeleteLedgerId());
-        }
-        if (other.hasMarkDeleteEntryId()) {
-          setMarkDeleteEntryId(other.getMarkDeleteEntryId());
-        }
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (!other.individualDeletedMessages_.isEmpty()) {
-            if (individualDeletedMessages_.isEmpty()) {
-              individualDeletedMessages_ = other.individualDeletedMessages_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensureIndividualDeletedMessagesIsMutable();
-              individualDeletedMessages_.addAll(other.individualDeletedMessages_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.individualDeletedMessages_.isEmpty()) {
-            if (individualDeletedMessagesBuilder_.isEmpty()) {
-              individualDeletedMessagesBuilder_.dispose();
-              individualDeletedMessagesBuilder_ = null;
-              individualDeletedMessages_ = other.individualDeletedMessages_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              individualDeletedMessagesBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getIndividualDeletedMessagesFieldBuilder() : null;
-            } else {
-              individualDeletedMessagesBuilder_.addAllMessages(other.individualDeletedMessages_);
-            }
-          }
-        }
-        if (propertiesBuilder_ == null) {
-          if (!other.properties_.isEmpty()) {
-            if (properties_.isEmpty()) {
-              properties_ = other.properties_;
-              bitField0_ = (bitField0_ & ~0x00000010);
-            } else {
-              ensurePropertiesIsMutable();
-              properties_.addAll(other.properties_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.properties_.isEmpty()) {
-            if (propertiesBuilder_.isEmpty()) {
-              propertiesBuilder_.dispose();
-              propertiesBuilder_ = null;
-              properties_ = other.properties_;
-              bitField0_ = (bitField0_ & ~0x00000010);
-              propertiesBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getPropertiesFieldBuilder() : null;
-            } else {
-              propertiesBuilder_.addAllMessages(other.properties_);
-            }
-          }
-        }
-        if (other.hasLastActive()) {
-          setLastActive(other.getLastActive());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasCursorsLedgerId()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getIndividualDeletedMessagesCount(); i++) {
-          if (!getIndividualDeletedMessages(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getPropertiesCount(); i++) {
-          if (!getProperties(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              cursorsLedgerId_ = input.readInt64();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              markDeleteLedgerId_ = input.readInt64();
-              break;
-            }
-            case 24: {
-              bitField0_ |= 0x00000004;
-              markDeleteEntryId_ = input.readInt64();
-              break;
-            }
-            case 34: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addIndividualDeletedMessages(subBuilder.buildPartial());
-              break;
-            }
-            case 42: {
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder subBuilder = org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addProperties(subBuilder.buildPartial());
-              break;
-            }
-            case 48: {
-              bitField0_ |= 0x00000020;
-              lastActive_ = input.readInt64();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required int64 cursorsLedgerId = 1;
-      private long cursorsLedgerId_ ;
-      public boolean hasCursorsLedgerId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getCursorsLedgerId() {
-        return cursorsLedgerId_;
-      }
-      public Builder setCursorsLedgerId(long value) {
-        bitField0_ |= 0x00000001;
-        cursorsLedgerId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCursorsLedgerId() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        cursorsLedgerId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // optional int64 markDeleteLedgerId = 2;
-      private long markDeleteLedgerId_ ;
-      public boolean hasMarkDeleteLedgerId() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getMarkDeleteLedgerId() {
-        return markDeleteLedgerId_;
-      }
-      public Builder setMarkDeleteLedgerId(long value) {
-        bitField0_ |= 0x00000002;
-        markDeleteLedgerId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearMarkDeleteLedgerId() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        markDeleteLedgerId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // optional int64 markDeleteEntryId = 3;
-      private long markDeleteEntryId_ ;
-      public boolean hasMarkDeleteEntryId() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public long getMarkDeleteEntryId() {
-        return markDeleteEntryId_;
-      }
-      public Builder setMarkDeleteEntryId(long value) {
-        bitField0_ |= 0x00000004;
-        markDeleteEntryId_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearMarkDeleteEntryId() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        markDeleteEntryId_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .MessageRange individualDeletedMessages = 4;
-      private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> individualDeletedMessages_ =
-        java.util.Collections.emptyList();
-      private void ensureIndividualDeletedMessagesIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          individualDeletedMessages_ = new java.util.ArrayList<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange>(individualDeletedMessages_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> individualDeletedMessagesBuilder_;
-      
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> getIndividualDeletedMessagesList() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(individualDeletedMessages_);
-        } else {
-          return individualDeletedMessagesBuilder_.getMessageList();
-        }
-      }
-      public int getIndividualDeletedMessagesCount() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.size();
-        } else {
-          return individualDeletedMessagesBuilder_.getCount();
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange getIndividualDeletedMessages(int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.get(index);
-        } else {
-          return individualDeletedMessagesBuilder_.getMessage(index);
-        }
-      }
-      public Builder setIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.set(index, value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(index, value);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addIndividualDeletedMessages(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllIndividualDeletedMessages(
-          java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> values) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          super.addAll(values, individualDeletedMessages_);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearIndividualDeletedMessages() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessages_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeIndividualDeletedMessages(int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          ensureIndividualDeletedMessagesIsMutable();
-          individualDeletedMessages_.remove(index);
-          onChanged();
-        } else {
-          individualDeletedMessagesBuilder_.remove(index);
-        }
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder getIndividualDeletedMessagesBuilder(
-          int index) {
-        return getIndividualDeletedMessagesFieldBuilder().getBuilder(index);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder getIndividualDeletedMessagesOrBuilder(
-          int index) {
-        if (individualDeletedMessagesBuilder_ == null) {
-          return individualDeletedMessages_.get(index);  } else {
-          return individualDeletedMessagesBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-           getIndividualDeletedMessagesOrBuilderList() {
-        if (individualDeletedMessagesBuilder_ != null) {
-          return individualDeletedMessagesBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(individualDeletedMessages_);
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder addIndividualDeletedMessagesBuilder() {
-        return getIndividualDeletedMessagesFieldBuilder().addBuilder(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance());
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder addIndividualDeletedMessagesBuilder(
-          int index) {
-        return getIndividualDeletedMessagesFieldBuilder().addBuilder(
-            index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.getDefaultInstance());
-      }
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder> 
-           getIndividualDeletedMessagesBuilderList() {
-        return getIndividualDeletedMessagesFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder> 
-          getIndividualDeletedMessagesFieldBuilder() {
-        if (individualDeletedMessagesBuilder_ == null) {
-          individualDeletedMessagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRangeOrBuilder>(
-                  individualDeletedMessages_,
-                  ((bitField0_ & 0x00000008) == 0x00000008),
-                  getParentForChildren(),
-                  isClean());
-          individualDeletedMessages_ = null;
-        }
-        return individualDeletedMessagesBuilder_;
-      }
-      
-      // repeated .LongProperty properties = 5;
-      private java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> properties_ =
-        java.util.Collections.emptyList();
-      private void ensurePropertiesIsMutable() {
-        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
-          properties_ = new java.util.ArrayList<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty>(properties_);
-          bitField0_ |= 0x00000010;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> propertiesBuilder_;
-      
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> getPropertiesList() {
-        if (propertiesBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(properties_);
-        } else {
-          return propertiesBuilder_.getMessageList();
-        }
-      }
-      public int getPropertiesCount() {
-        if (propertiesBuilder_ == null) {
-          return properties_.size();
-        } else {
-          return propertiesBuilder_.getCount();
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty getProperties(int index) {
-        if (propertiesBuilder_ == null) {
-          return properties_.get(index);
-        } else {
-          return propertiesBuilder_.getMessage(index);
-        }
-      }
-      public Builder setProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.set(index, value);
-          onChanged();
-        } else {
-          propertiesBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addProperties(org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.add(value);
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty value) {
-        if (propertiesBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePropertiesIsMutable();
-          properties_.add(index, value);
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addProperties(
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.add(builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addProperties(
-          int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder builderForValue) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          propertiesBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllProperties(
-          java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty> values) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          super.addAll(values, properties_);
-          onChanged();
-        } else {
-          propertiesBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearProperties() {
-        if (propertiesBuilder_ == null) {
-          properties_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000010);
-          onChanged();
-        } else {
-          propertiesBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeProperties(int index) {
-        if (propertiesBuilder_ == null) {
-          ensurePropertiesIsMutable();
-          properties_.remove(index);
-          onChanged();
-        } else {
-          propertiesBuilder_.remove(index);
-        }
-        return this;
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder getPropertiesBuilder(
-          int index) {
-        return getPropertiesFieldBuilder().getBuilder(index);
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder getPropertiesOrBuilder(
-          int index) {
-        if (propertiesBuilder_ == null) {
-          return properties_.get(index);  } else {
-          return propertiesBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-           getPropertiesOrBuilderList() {
-        if (propertiesBuilder_ != null) {
-          return propertiesBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(properties_);
-        }
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder addPropertiesBuilder() {
-        return getPropertiesFieldBuilder().addBuilder(
-            org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance());
-      }
-      public org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder addPropertiesBuilder(
-          int index) {
-        return getPropertiesFieldBuilder().addBuilder(
-            index, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.getDefaultInstance());
-      }
-      public java.util.List<org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder> 
-           getPropertiesBuilderList() {
-        return getPropertiesFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder> 
-          getPropertiesFieldBuilder() {
-        if (propertiesBuilder_ == null) {
-          propertiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder, org.apache.bookkeeper.mledger.proto.MLDataFormats.LongPropertyOrBuilder>(
-                  properties_,
-                  ((bitField0_ & 0x00000010) == 0x00000010),
-                  getParentForChildren(),
-                  isClean());
-          properties_ = null;
-        }
-        return propertiesBuilder_;
-      }
-      
-      // optional int64 lastActive = 6;
-      private long lastActive_ ;
-      public boolean hasLastActive() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public long getLastActive() {
-        return lastActive_;
-      }
-      public Builder setLastActive(long value) {
-        bitField0_ |= 0x00000020;
-        lastActive_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearLastActive() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        lastActive_ = 0L;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ManagedCursorInfo)
-    }
-    
-    static {
-      defaultInstance = new ManagedCursorInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ManagedCursorInfo)
-  }
-  
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_OffloadContext_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_OffloadContext_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ManagedLedgerInfo_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ManagedLedgerInfo_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ManagedLedgerInfo_LedgerInfo_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ManagedLedgerInfo_LedgerInfo_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_PositionInfo_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_PositionInfo_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_NestedPositionInfo_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_NestedPositionInfo_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_MessageRange_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_MessageRange_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_LongProperty_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_LongProperty_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ManagedCursorInfo_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ManagedCursorInfo_fieldAccessorTable;
-  
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n\"src/main/proto/MLDataFormats.proto\"p\n\016" +
-      "OffloadContext\022\016\n\006uidMsb\030\001 \001(\003\022\016\n\006uidLsb" +
-      "\030\002 \001(\003\022\020\n\010complete\030\003 \001(\010\022\031\n\021bookkeeperDe" +
-      "leted\030\004 \001(\010\022\021\n\ttimestamp\030\005 \001(\003\"\362\001\n\021Manag" +
-      "edLedgerInfo\0221\n\nledgerInfo\030\001 \003(\0132\035.Manag" +
-      "edLedgerInfo.LedgerInfo\022/\n\022terminatedPos" +
-      "ition\030\002 \001(\0132\023.NestedPositionInfo\032y\n\nLedg" +
-      "erInfo\022\020\n\010ledgerId\030\001 \002(\003\022\017\n\007entries\030\002 \001(" +
-      "\003\022\014\n\004size\030\003 \001(\003\022\021\n\ttimestamp\030\004 \001(\003\022\'\n\016of" +
-      "floadContext\030\005 \001(\0132\017.OffloadContext\"\206\001\n\014",
-      "PositionInfo\022\020\n\010ledgerId\030\001 \002(\003\022\017\n\007entryI" +
-      "d\030\002 \002(\003\0220\n\031individualDeletedMessages\030\003 \003" +
-      "(\0132\r.MessageRange\022!\n\nproperties\030\004 \003(\0132\r." +
-      "LongProperty\"7\n\022NestedPositionInfo\022\020\n\010le" +
-      "dgerId\030\001 \002(\003\022\017\n\007entryId\030\002 \002(\003\"f\n\014Message" +
-      "Range\022*\n\rlowerEndpoint\030\001 \002(\0132\023.NestedPos" +
-      "itionInfo\022*\n\rupperEndpoint\030\002 \002(\0132\023.Neste" +
-      "dPositionInfo\"+\n\014LongProperty\022\014\n\004name\030\001 " +
-      "\002(\t\022\r\n\005value\030\002 \002(\003\"\314\001\n\021ManagedCursorInfo" +
-      "\022\027\n\017cursorsLedgerId\030\001 \002(\003\022\032\n\022markDeleteL",
-      "edgerId\030\002 \001(\003\022\031\n\021markDeleteEntryId\030\003 \001(\003" +
-      "\0220\n\031individualDeletedMessages\030\004 \003(\0132\r.Me" +
-      "ssageRange\022!\n\nproperties\030\005 \003(\0132\r.LongPro" +
-      "perty\022\022\n\nlastActive\030\006 \001(\003B\'\n#org.apache." +
-      "bookkeeper.mledger.protoH\001"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
-        public com.google.protobuf.ExtensionRegistry assignDescriptors(
-            com.google.protobuf.Descriptors.FileDescriptor root) {
-          descriptor = root;
-          internal_static_OffloadContext_descriptor =
-            getDescriptor().getMessageTypes().get(0);
-          internal_static_OffloadContext_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_OffloadContext_descriptor,
-              new java.lang.String[] { "UidMsb", "UidLsb", "Complete", "BookkeeperDeleted", "Timestamp", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext.Builder.class);
-          internal_static_ManagedLedgerInfo_descriptor =
-            getDescriptor().getMessageTypes().get(1);
-          internal_static_ManagedLedgerInfo_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ManagedLedgerInfo_descriptor,
-              new java.lang.String[] { "LedgerInfo", "TerminatedPosition", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.Builder.class);
-          internal_static_ManagedLedgerInfo_LedgerInfo_descriptor =
-            internal_static_ManagedLedgerInfo_descriptor.getNestedTypes().get(0);
-          internal_static_ManagedLedgerInfo_LedgerInfo_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ManagedLedgerInfo_LedgerInfo_descriptor,
-              new java.lang.String[] { "LedgerId", "Entries", "Size", "Timestamp", "OffloadContext", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo.LedgerInfo.Builder.class);
-          internal_static_PositionInfo_descriptor =
-            getDescriptor().getMessageTypes().get(2);
-          internal_static_PositionInfo_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_PositionInfo_descriptor,
-              new java.lang.String[] { "LedgerId", "EntryId", "IndividualDeletedMessages", "Properties", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.PositionInfo.Builder.class);
-          internal_static_NestedPositionInfo_descriptor =
-            getDescriptor().getMessageTypes().get(3);
-          internal_static_NestedPositionInfo_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_NestedPositionInfo_descriptor,
-              new java.lang.String[] { "LedgerId", "EntryId", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.NestedPositionInfo.Builder.class);
-          internal_static_MessageRange_descriptor =
-            getDescriptor().getMessageTypes().get(4);
-          internal_static_MessageRange_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_MessageRange_descriptor,
-              new java.lang.String[] { "LowerEndpoint", "UpperEndpoint", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder.class);
-          internal_static_LongProperty_descriptor =
-            getDescriptor().getMessageTypes().get(5);
-          internal_static_LongProperty_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_LongProperty_descriptor,
-              new java.lang.String[] { "Name", "Value", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.LongProperty.Builder.class);
-          internal_static_ManagedCursorInfo_descriptor =
-            getDescriptor().getMessageTypes().get(6);
-          internal_static_ManagedCursorInfo_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ManagedCursorInfo_descriptor,
-              new java.lang.String[] { "CursorsLedgerId", "MarkDeleteLedgerId", "MarkDeleteEntryId", "IndividualDeletedMessages", "Properties", "LastActive", },
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.class,
-              org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.Builder.class);
-          return null;
-        }
-      };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-        }, assigner);
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/pom.xml b/pom.xml
index 05906b03fd..4c8bebf7de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -155,6 +155,9 @@ flexible messaging model and an intuitive client API.</description>
     <!-- test dependencies -->
     <disruptor.version>3.4.0</disruptor.version>
     <s3mock.version>0.2.5</s3mock.version>
+
+    <!-- Plugin dependencies -->
+    <protobuf-maven-plugin.version>0.5.0</protobuf-maven-plugin.version>
   </properties>
 
   <dependencyManagement>
diff --git a/pulsar-broker/pom.xml b/pulsar-broker/pom.xml
index ed8405f9c1..600b374bf6 100644
--- a/pulsar-broker/pom.xml
+++ b/pulsar-broker/pom.xml
@@ -54,10 +54,16 @@
       <artifactId>netty-all</artifactId>
     </dependency>
 
+    <dependency>
+      <groupId>org.apache.pulsar</groupId>
+      <artifactId>protobuf-shaded</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
-      <version>${protobuf2.version}</version>
+      <version>${protobuf3.version}</version>
     </dependency>
 
     <dependency>
@@ -319,6 +325,24 @@
           </execution>
         </executions>
       </plugin>
+
+      <plugin>
+        <groupId>org.xolstice.maven.plugins</groupId>
+        <artifactId>protobuf-maven-plugin</artifactId>
+        <version>${protobuf-maven-plugin.version}</version>
+        <configuration>
+          <protocArtifact>com.google.protobuf:protoc:${protobuf3.version}:exe:${os.detected.classifier}</protocArtifact>
+          <checkStaleness>true</checkStaleness>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
     <resources>
       <resource>
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaStorageFormat.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaStorageFormat.java
deleted file mode 100644
index df95e697de..0000000000
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaStorageFormat.java
+++ /dev/null
@@ -1,1785 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: src/main/proto/SchemaStorageFormat.proto
-
-package org.apache.pulsar.broker.service.schema;
-
-public final class SchemaStorageFormat {
-  private SchemaStorageFormat() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistryLite registry) {
-  }
-  public interface PositionInfoOrBuilder
-      extends com.google.protobuf.MessageLiteOrBuilder {
-    
-    // required int64 ledgerId = 1;
-    boolean hasLedgerId();
-    long getLedgerId();
-    
-    // required int64 entryId = 2;
-    boolean hasEntryId();
-    long getEntryId();
-  }
-  public static final class PositionInfo extends
-      com.google.protobuf.GeneratedMessageLite
-      implements PositionInfoOrBuilder {
-    // Use PositionInfo.newBuilder() to construct.
-    private PositionInfo(Builder builder) {
-      super(builder);
-    }
-    private PositionInfo(boolean noInit) {}
-    
-    private static final PositionInfo defaultInstance;
-    public static PositionInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public PositionInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    private int bitField0_;
-    // required int64 ledgerId = 1;
-    public static final int LEDGERID_FIELD_NUMBER = 1;
-    private long ledgerId_;
-    public boolean hasLedgerId() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getLedgerId() {
-      return ledgerId_;
-    }
-    
-    // required int64 entryId = 2;
-    public static final int ENTRYID_FIELD_NUMBER = 2;
-    private long entryId_;
-    public boolean hasEntryId() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public long getEntryId() {
-      return entryId_;
-    }
-    
-    private void initFields() {
-      ledgerId_ = 0L;
-      entryId_ = 0L;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasLedgerId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasEntryId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeInt64(2, entryId_);
-      }
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, ledgerId_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(2, entryId_);
-      }
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageLite.Builder<
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo, Builder>
-        implements org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfoOrBuilder {
-      // Construct using org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private void maybeForceBuilderInitialization() {
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        ledgerId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        entryId_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo getDefaultInstanceForType() {
-        return org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance();
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo build() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo buildPartial() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo result = new org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.ledgerId_ = ledgerId_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.entryId_ = entryId_;
-        result.bitField0_ = to_bitField0_;
-        return result;
-      }
-      
-      public Builder mergeFrom(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo other) {
-        if (other == org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance()) return this;
-        if (other.hasLedgerId()) {
-          setLedgerId(other.getLedgerId());
-        }
-        if (other.hasEntryId()) {
-          setEntryId(other.getEntryId());
-        }
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasLedgerId()) {
-          
-          return false;
-        }
-        if (!hasEntryId()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              
-              return this;
-            default: {
-              if (!parseUnknownField(input, extensionRegistry, tag)) {
-                
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              ledgerId_ = input.readInt64();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              entryId_ = input.readInt64();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required int64 ledgerId = 1;
-      private long ledgerId_ ;
-      public boolean hasLedgerId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getLedgerId() {
-        return ledgerId_;
-      }
-      public Builder setLedgerId(long value) {
-        bitField0_ |= 0x00000001;
-        ledgerId_ = value;
-        
-        return this;
-      }
-      public Builder clearLedgerId() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        ledgerId_ = 0L;
-        
-        return this;
-      }
-      
-      // required int64 entryId = 2;
-      private long entryId_ ;
-      public boolean hasEntryId() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public long getEntryId() {
-        return entryId_;
-      }
-      public Builder setEntryId(long value) {
-        bitField0_ |= 0x00000002;
-        entryId_ = value;
-        
-        return this;
-      }
-      public Builder clearEntryId() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        entryId_ = 0L;
-        
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:pulsar.schema.PositionInfo)
-    }
-    
-    static {
-      defaultInstance = new PositionInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:pulsar.schema.PositionInfo)
-  }
-  
-  public interface IndexEntryOrBuilder
-      extends com.google.protobuf.MessageLiteOrBuilder {
-    
-    // required int64 version = 1;
-    boolean hasVersion();
-    long getVersion();
-    
-    // required .pulsar.schema.PositionInfo position = 2;
-    boolean hasPosition();
-    org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo getPosition();
-    
-    // required bytes hash = 3;
-    boolean hasHash();
-    com.google.protobuf.ByteString getHash();
-  }
-  public static final class IndexEntry extends
-      com.google.protobuf.GeneratedMessageLite
-      implements IndexEntryOrBuilder {
-    // Use IndexEntry.newBuilder() to construct.
-    private IndexEntry(Builder builder) {
-      super(builder);
-    }
-    private IndexEntry(boolean noInit) {}
-    
-    private static final IndexEntry defaultInstance;
-    public static IndexEntry getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IndexEntry getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    private int bitField0_;
-    // required int64 version = 1;
-    public static final int VERSION_FIELD_NUMBER = 1;
-    private long version_;
-    public boolean hasVersion() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public long getVersion() {
-      return version_;
-    }
-    
-    // required .pulsar.schema.PositionInfo position = 2;
-    public static final int POSITION_FIELD_NUMBER = 2;
-    private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo position_;
-    public boolean hasPosition() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo getPosition() {
-      return position_;
-    }
-    
-    // required bytes hash = 3;
-    public static final int HASH_FIELD_NUMBER = 3;
-    private com.google.protobuf.ByteString hash_;
-    public boolean hasHash() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public com.google.protobuf.ByteString getHash() {
-      return hash_;
-    }
-    
-    private void initFields() {
-      version_ = 0L;
-      position_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance();
-      hash_ = com.google.protobuf.ByteString.EMPTY;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasVersion()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasPosition()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasHash()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!getPosition().isInitialized()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeInt64(1, version_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeMessage(2, position_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, hash_);
-      }
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(1, version_);
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, position_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, hash_);
-      }
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageLite.Builder<
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry, Builder>
-        implements org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntryOrBuilder {
-      // Construct using org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private void maybeForceBuilderInitialization() {
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        version_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        position_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        hash_ = com.google.protobuf.ByteString.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getDefaultInstanceForType() {
-        return org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance();
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry build() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry buildPartial() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry result = new org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.version_ = version_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.position_ = position_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.hash_ = hash_;
-        result.bitField0_ = to_bitField0_;
-        return result;
-      }
-      
-      public Builder mergeFrom(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry other) {
-        if (other == org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance()) return this;
-        if (other.hasVersion()) {
-          setVersion(other.getVersion());
-        }
-        if (other.hasPosition()) {
-          mergePosition(other.getPosition());
-        }
-        if (other.hasHash()) {
-          setHash(other.getHash());
-        }
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasVersion()) {
-          
-          return false;
-        }
-        if (!hasPosition()) {
-          
-          return false;
-        }
-        if (!hasHash()) {
-          
-          return false;
-        }
-        if (!getPosition().isInitialized()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              
-              return this;
-            default: {
-              if (!parseUnknownField(input, extensionRegistry, tag)) {
-                
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              version_ = input.readInt64();
-              break;
-            }
-            case 18: {
-              org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.Builder subBuilder = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.newBuilder();
-              if (hasPosition()) {
-                subBuilder.mergeFrom(getPosition());
-              }
-              input.readMessage(subBuilder, extensionRegistry);
-              setPosition(subBuilder.buildPartial());
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              hash_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required int64 version = 1;
-      private long version_ ;
-      public boolean hasVersion() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public long getVersion() {
-        return version_;
-      }
-      public Builder setVersion(long value) {
-        bitField0_ |= 0x00000001;
-        version_ = value;
-        
-        return this;
-      }
-      public Builder clearVersion() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        version_ = 0L;
-        
-        return this;
-      }
-      
-      // required .pulsar.schema.PositionInfo position = 2;
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo position_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance();
-      public boolean hasPosition() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo getPosition() {
-        return position_;
-      }
-      public Builder setPosition(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        position_ = value;
-        
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder setPosition(
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.Builder builderForValue) {
-        position_ = builderForValue.build();
-        
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder mergePosition(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo value) {
-        if (((bitField0_ & 0x00000002) == 0x00000002) &&
-            position_ != org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance()) {
-          position_ =
-            org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.newBuilder(position_).mergeFrom(value).buildPartial();
-        } else {
-          position_ = value;
-        }
-        
-        bitField0_ |= 0x00000002;
-        return this;
-      }
-      public Builder clearPosition() {
-        position_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.PositionInfo.getDefaultInstance();
-        
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      // required bytes hash = 3;
-      private com.google.protobuf.ByteString hash_ = com.google.protobuf.ByteString.EMPTY;
-      public boolean hasHash() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public com.google.protobuf.ByteString getHash() {
-        return hash_;
-      }
-      public Builder setHash(com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        hash_ = value;
-        
-        return this;
-      }
-      public Builder clearHash() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        hash_ = getDefaultInstance().getHash();
-        
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:pulsar.schema.IndexEntry)
-    }
-    
-    static {
-      defaultInstance = new IndexEntry(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:pulsar.schema.IndexEntry)
-  }
-  
-  public interface SchemaEntryOrBuilder
-      extends com.google.protobuf.MessageLiteOrBuilder {
-    
-    // required bytes schema_data = 2;
-    boolean hasSchemaData();
-    com.google.protobuf.ByteString getSchemaData();
-    
-    // repeated .pulsar.schema.IndexEntry index = 5;
-    java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> 
-        getIndexList();
-    org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index);
-    int getIndexCount();
-  }
-  public static final class SchemaEntry extends
-      com.google.protobuf.GeneratedMessageLite
-      implements SchemaEntryOrBuilder {
-    // Use SchemaEntry.newBuilder() to construct.
-    private SchemaEntry(Builder builder) {
-      super(builder);
-    }
-    private SchemaEntry(boolean noInit) {}
-    
-    private static final SchemaEntry defaultInstance;
-    public static SchemaEntry getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public SchemaEntry getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    private int bitField0_;
-    // required bytes schema_data = 2;
-    public static final int SCHEMA_DATA_FIELD_NUMBER = 2;
-    private com.google.protobuf.ByteString schemaData_;
-    public boolean hasSchemaData() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public com.google.protobuf.ByteString getSchemaData() {
-      return schemaData_;
-    }
-    
-    // repeated .pulsar.schema.IndexEntry index = 5;
-    public static final int INDEX_FIELD_NUMBER = 5;
-    private java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> index_;
-    public java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> getIndexList() {
-      return index_;
-    }
-    public java.util.List<? extends org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntryOrBuilder> 
-        getIndexOrBuilderList() {
-      return index_;
-    }
-    public int getIndexCount() {
-      return index_.size();
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index) {
-      return index_.get(index);
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntryOrBuilder getIndexOrBuilder(
-        int index) {
-      return index_.get(index);
-    }
-    
-    private void initFields() {
-      schemaData_ = com.google.protobuf.ByteString.EMPTY;
-      index_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasSchemaData()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getIndexCount(); i++) {
-        if (!getIndex(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(2, schemaData_);
-      }
-      for (int i = 0; i < index_.size(); i++) {
-        output.writeMessage(5, index_.get(i));
-      }
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(2, schemaData_);
-      }
-      for (int i = 0; i < index_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(5, index_.get(i));
-      }
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageLite.Builder<
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry, Builder>
-        implements org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntryOrBuilder {
-      // Construct using org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private void maybeForceBuilderInitialization() {
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        schemaData_ = com.google.protobuf.ByteString.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        index_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry getDefaultInstanceForType() {
-        return org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry.getDefaultInstance();
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry build() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry buildPartial() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry result = new org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.schemaData_ = schemaData_;
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          index_ = java.util.Collections.unmodifiableList(index_);
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.index_ = index_;
-        result.bitField0_ = to_bitField0_;
-        return result;
-      }
-      
-      public Builder mergeFrom(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry other) {
-        if (other == org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaEntry.getDefaultInstance()) return this;
-        if (other.hasSchemaData()) {
-          setSchemaData(other.getSchemaData());
-        }
-        if (!other.index_.isEmpty()) {
-          if (index_.isEmpty()) {
-            index_ = other.index_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureIndexIsMutable();
-            index_.addAll(other.index_);
-          }
-          
-        }
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasSchemaData()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getIndexCount(); i++) {
-          if (!getIndex(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              
-              return this;
-            default: {
-              if (!parseUnknownField(input, extensionRegistry, tag)) {
-                
-                return this;
-              }
-              break;
-            }
-            case 18: {
-              bitField0_ |= 0x00000001;
-              schemaData_ = input.readBytes();
-              break;
-            }
-            case 42: {
-              org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder subBuilder = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addIndex(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required bytes schema_data = 2;
-      private com.google.protobuf.ByteString schemaData_ = com.google.protobuf.ByteString.EMPTY;
-      public boolean hasSchemaData() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public com.google.protobuf.ByteString getSchemaData() {
-        return schemaData_;
-      }
-      public Builder setSchemaData(com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        schemaData_ = value;
-        
-        return this;
-      }
-      public Builder clearSchemaData() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        schemaData_ = getDefaultInstance().getSchemaData();
-        
-        return this;
-      }
-      
-      // repeated .pulsar.schema.IndexEntry index = 5;
-      private java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> index_ =
-        java.util.Collections.emptyList();
-      private void ensureIndexIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
-          index_ = new java.util.ArrayList<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry>(index_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      
-      public java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> getIndexList() {
-        return java.util.Collections.unmodifiableList(index_);
-      }
-      public int getIndexCount() {
-        return index_.size();
-      }
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index) {
-        return index_.get(index);
-      }
-      public Builder setIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.set(index, value);
-        
-        return this;
-      }
-      public Builder setIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.set(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addIndex(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.add(value);
-        
-        return this;
-      }
-      public Builder addIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.add(index, value);
-        
-        return this;
-      }
-      public Builder addIndex(
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.add(builderForValue.build());
-        
-        return this;
-      }
-      public Builder addIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.add(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addAllIndex(
-          java.lang.Iterable<? extends org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> values) {
-        ensureIndexIsMutable();
-        super.addAll(values, index_);
-        
-        return this;
-      }
-      public Builder clearIndex() {
-        index_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        
-        return this;
-      }
-      public Builder removeIndex(int index) {
-        ensureIndexIsMutable();
-        index_.remove(index);
-        
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:pulsar.schema.SchemaEntry)
-    }
-    
-    static {
-      defaultInstance = new SchemaEntry(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:pulsar.schema.SchemaEntry)
-  }
-  
-  public interface SchemaLocatorOrBuilder
-      extends com.google.protobuf.MessageLiteOrBuilder {
-    
-    // required .pulsar.schema.IndexEntry info = 1;
-    boolean hasInfo();
-    org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getInfo();
-    
-    // repeated .pulsar.schema.IndexEntry index = 2;
-    java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> 
-        getIndexList();
-    org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index);
-    int getIndexCount();
-  }
-  public static final class SchemaLocator extends
-      com.google.protobuf.GeneratedMessageLite
-      implements SchemaLocatorOrBuilder {
-    // Use SchemaLocator.newBuilder() to construct.
-    private SchemaLocator(Builder builder) {
-      super(builder);
-    }
-    private SchemaLocator(boolean noInit) {}
-    
-    private static final SchemaLocator defaultInstance;
-    public static SchemaLocator getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public SchemaLocator getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    private int bitField0_;
-    // required .pulsar.schema.IndexEntry info = 1;
-    public static final int INFO_FIELD_NUMBER = 1;
-    private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry info_;
-    public boolean hasInfo() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getInfo() {
-      return info_;
-    }
-    
-    // repeated .pulsar.schema.IndexEntry index = 2;
-    public static final int INDEX_FIELD_NUMBER = 2;
-    private java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> index_;
-    public java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> getIndexList() {
-      return index_;
-    }
-    public java.util.List<? extends org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntryOrBuilder> 
-        getIndexOrBuilderList() {
-      return index_;
-    }
-    public int getIndexCount() {
-      return index_.size();
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index) {
-      return index_.get(index);
-    }
-    public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntryOrBuilder getIndexOrBuilder(
-        int index) {
-      return index_.get(index);
-    }
-    
-    private void initFields() {
-      info_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance();
-      index_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasInfo()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!getInfo().isInitialized()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getIndexCount(); i++) {
-        if (!getIndex(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeMessage(1, info_);
-      }
-      for (int i = 0; i < index_.size(); i++) {
-        output.writeMessage(2, index_.get(i));
-      }
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, info_);
-      }
-      for (int i = 0; i < index_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, index_.get(i));
-      }
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageLite.Builder<
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator, Builder>
-        implements org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocatorOrBuilder {
-      // Construct using org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private void maybeForceBuilderInitialization() {
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        info_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance();
-        bitField0_ = (bitField0_ & ~0x00000001);
-        index_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator getDefaultInstanceForType() {
-        return org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator.getDefaultInstance();
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator build() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator buildPartial() {
-        org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator result = new org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.info_ = info_;
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          index_ = java.util.Collections.unmodifiableList(index_);
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.index_ = index_;
-        result.bitField0_ = to_bitField0_;
-        return result;
-      }
-      
-      public Builder mergeFrom(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator other) {
-        if (other == org.apache.pulsar.broker.service.schema.SchemaStorageFormat.SchemaLocator.getDefaultInstance()) return this;
-        if (other.hasInfo()) {
-          mergeInfo(other.getInfo());
-        }
-        if (!other.index_.isEmpty()) {
-          if (index_.isEmpty()) {
-            index_ = other.index_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureIndexIsMutable();
-            index_.addAll(other.index_);
-          }
-          
-        }
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasInfo()) {
-          
-          return false;
-        }
-        if (!getInfo().isInitialized()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getIndexCount(); i++) {
-          if (!getIndex(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              
-              return this;
-            default: {
-              if (!parseUnknownField(input, extensionRegistry, tag)) {
-                
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder subBuilder = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.newBuilder();
-              if (hasInfo()) {
-                subBuilder.mergeFrom(getInfo());
-              }
-              input.readMessage(subBuilder, extensionRegistry);
-              setInfo(subBuilder.buildPartial());
-              break;
-            }
-            case 18: {
-              org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder subBuilder = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addIndex(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required .pulsar.schema.IndexEntry info = 1;
-      private org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry info_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance();
-      public boolean hasInfo() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getInfo() {
-        return info_;
-      }
-      public Builder setInfo(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        info_ = value;
-        
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder setInfo(
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        info_ = builderForValue.build();
-        
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder mergeInfo(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (((bitField0_ & 0x00000001) == 0x00000001) &&
-            info_ != org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance()) {
-          info_ =
-            org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.newBuilder(info_).mergeFrom(value).buildPartial();
-        } else {
-          info_ = value;
-        }
-        
-        bitField0_ |= 0x00000001;
-        return this;
-      }
-      public Builder clearInfo() {
-        info_ = org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.getDefaultInstance();
-        
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-      
-      // repeated .pulsar.schema.IndexEntry index = 2;
-      private java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> index_ =
-        java.util.Collections.emptyList();
-      private void ensureIndexIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
-          index_ = new java.util.ArrayList<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry>(index_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      
-      public java.util.List<org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> getIndexList() {
-        return java.util.Collections.unmodifiableList(index_);
-      }
-      public int getIndexCount() {
-        return index_.size();
-      }
-      public org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry getIndex(int index) {
-        return index_.get(index);
-      }
-      public Builder setIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.set(index, value);
-        
-        return this;
-      }
-      public Builder setIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.set(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addIndex(org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.add(value);
-        
-        return this;
-      }
-      public Builder addIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensureIndexIsMutable();
-        index_.add(index, value);
-        
-        return this;
-      }
-      public Builder addIndex(
-          org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.add(builderForValue.build());
-        
-        return this;
-      }
-      public Builder addIndex(
-          int index, org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry.Builder builderForValue) {
-        ensureIndexIsMutable();
-        index_.add(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addAllIndex(
-          java.lang.Iterable<? extends org.apache.pulsar.broker.service.schema.SchemaStorageFormat.IndexEntry> values) {
-        ensureIndexIsMutable();
-        super.addAll(values, index_);
-        
-        return this;
-      }
-      public Builder clearIndex() {
-        index_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        
-        return this;
-      }
-      public Builder removeIndex(int index) {
-        ensureIndexIsMutable();
-        index_.remove(index);
-        
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:pulsar.schema.SchemaLocator)
-    }
-    
-    static {
-      defaultInstance = new SchemaLocator(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:pulsar.schema.SchemaLocator)
-  }
-  
-  
-  static {
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/proto/SchemaRegistryFormat.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/proto/SchemaRegistryFormat.java
deleted file mode 100644
index cfd14cbef8..0000000000
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/proto/SchemaRegistryFormat.java
+++ /dev/null
@@ -1,1349 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: src/main/proto/SchemaRegistryFormat.proto
-
-package org.apache.pulsar.broker.service.schema.proto;
-
-public final class SchemaRegistryFormat {
-  private SchemaRegistryFormat() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistryLite registry) {
-  }
-  public interface SchemaInfoOrBuilder
-      extends com.google.protobuf.MessageLiteOrBuilder {
-    
-    // required string schema_id = 1;
-    boolean hasSchemaId();
-    String getSchemaId();
-    
-    // required string user = 2;
-    boolean hasUser();
-    String getUser();
-    
-    // required .pulsar.schema.SchemaInfo.SchemaType type = 3;
-    boolean hasType();
-    org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType getType();
-    
-    // required bytes schema = 4;
-    boolean hasSchema();
-    com.google.protobuf.ByteString getSchema();
-    
-    // required int64 timestamp = 5;
-    boolean hasTimestamp();
-    long getTimestamp();
-    
-    // required bool deleted = 6;
-    boolean hasDeleted();
-    boolean getDeleted();
-    
-    // repeated .pulsar.schema.SchemaInfo.KeyValuePair props = 7;
-    java.util.List<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> 
-        getPropsList();
-    org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair getProps(int index);
-    int getPropsCount();
-  }
-  public static final class SchemaInfo extends
-      com.google.protobuf.GeneratedMessageLite
-      implements SchemaInfoOrBuilder {
-    // Use SchemaInfo.newBuilder() to construct.
-    private SchemaInfo(Builder builder) {
-      super(builder);
-    }
-    private SchemaInfo(boolean noInit) {}
-    
-    private static final SchemaInfo defaultInstance;
-    public static SchemaInfo getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public SchemaInfo getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public enum SchemaType
-        implements com.google.protobuf.Internal.EnumLite {
-      NONE(0, 1),
-      STRING(1, 2),
-      JSON(2, 3),
-      ;
-      
-      public static final int NONE_VALUE = 1;
-      public static final int STRING_VALUE = 2;
-      public static final int JSON_VALUE = 3;
-      
-      
-      public final int getNumber() { return value; }
-      
-      public static SchemaType valueOf(int value) {
-        switch (value) {
-          case 1: return NONE;
-          case 2: return STRING;
-          case 3: return JSON;
-          default: return null;
-        }
-      }
-      
-      public static com.google.protobuf.Internal.EnumLiteMap<SchemaType>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static com.google.protobuf.Internal.EnumLiteMap<SchemaType>
-          internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<SchemaType>() {
-              public SchemaType findValueByNumber(int number) {
-                return SchemaType.valueOf(number);
-              }
-            };
-      
-      private final int value;
-      
-      private SchemaType(int index, int value) {
-        this.value = value;
-      }
-      
-      // @@protoc_insertion_point(enum_scope:pulsar.schema.SchemaInfo.SchemaType)
-    }
-    
-    public interface KeyValuePairOrBuilder
-        extends com.google.protobuf.MessageLiteOrBuilder {
-      
-      // required string key = 1;
-      boolean hasKey();
-      String getKey();
-      
-      // required string value = 2;
-      boolean hasValue();
-      String getValue();
-    }
-    public static final class KeyValuePair extends
-        com.google.protobuf.GeneratedMessageLite
-        implements KeyValuePairOrBuilder {
-      // Use KeyValuePair.newBuilder() to construct.
-      private KeyValuePair(Builder builder) {
-        super(builder);
-      }
-      private KeyValuePair(boolean noInit) {}
-      
-      private static final KeyValuePair defaultInstance;
-      public static KeyValuePair getDefaultInstance() {
-        return defaultInstance;
-      }
-      
-      public KeyValuePair getDefaultInstanceForType() {
-        return defaultInstance;
-      }
-      
-      private int bitField0_;
-      // required string key = 1;
-      public static final int KEY_FIELD_NUMBER = 1;
-      private java.lang.Object key_;
-      public boolean hasKey() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getKey() {
-        java.lang.Object ref = key_;
-        if (ref instanceof String) {
-          return (String) ref;
-        } else {
-          com.google.protobuf.ByteString bs = 
-              (com.google.protobuf.ByteString) ref;
-          String s = bs.toStringUtf8();
-          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-            key_ = s;
-          }
-          return s;
-        }
-      }
-      private com.google.protobuf.ByteString getKeyBytes() {
-        java.lang.Object ref = key_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-          key_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      
-      // required string value = 2;
-      public static final int VALUE_FIELD_NUMBER = 2;
-      private java.lang.Object value_;
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public String getValue() {
-        java.lang.Object ref = value_;
-        if (ref instanceof String) {
-          return (String) ref;
-        } else {
-          com.google.protobuf.ByteString bs = 
-              (com.google.protobuf.ByteString) ref;
-          String s = bs.toStringUtf8();
-          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-            value_ = s;
-          }
-          return s;
-        }
-      }
-      private com.google.protobuf.ByteString getValueBytes() {
-        java.lang.Object ref = value_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-          value_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      
-      private void initFields() {
-        key_ = "";
-        value_ = "";
-      }
-      private byte memoizedIsInitialized = -1;
-      public final boolean isInitialized() {
-        byte isInitialized = memoizedIsInitialized;
-        if (isInitialized != -1) return isInitialized == 1;
-        
-        if (!hasKey()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-        if (!hasValue()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-        memoizedIsInitialized = 1;
-        return true;
-      }
-      
-      public void writeTo(com.google.protobuf.CodedOutputStream output)
-                          throws java.io.IOException {
-        getSerializedSize();
-        if (((bitField0_ & 0x00000001) == 0x00000001)) {
-          output.writeBytes(1, getKeyBytes());
-        }
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          output.writeBytes(2, getValueBytes());
-        }
-      }
-      
-      private int memoizedSerializedSize = -1;
-      public int getSerializedSize() {
-        int size = memoizedSerializedSize;
-        if (size != -1) return size;
-      
-        size = 0;
-        if (((bitField0_ & 0x00000001) == 0x00000001)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeBytesSize(1, getKeyBytes());
-        }
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          size += com.google.protobuf.CodedOutputStream
-            .computeBytesSize(2, getValueBytes());
-        }
-        memoizedSerializedSize = size;
-        return size;
-      }
-      
-      private static final long serialVersionUID = 0L;
-      @java.lang.Override
-      protected java.lang.Object writeReplace()
-          throws java.io.ObjectStreamException {
-        return super.writeReplace();
-      }
-      
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          com.google.protobuf.ByteString data)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data).buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          com.google.protobuf.ByteString data,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(byte[] data)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data).buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          byte[] data,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return newBuilder().mergeFrom(data, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(java.io.InputStream input)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input).buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          java.io.InputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input, extensionRegistry)
-                 .buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseDelimitedFrom(java.io.InputStream input)
-          throws java.io.IOException {
-        Builder builder = newBuilder();
-        if (builder.mergeDelimitedFrom(input)) {
-          return builder.buildParsed();
-        } else {
-          return null;
-        }
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseDelimitedFrom(
-          java.io.InputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        Builder builder = newBuilder();
-        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-          return builder.buildParsed();
-        } else {
-          return null;
-        }
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          com.google.protobuf.CodedInputStream input)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input).buildParsed();
-      }
-      public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair parseFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        return newBuilder().mergeFrom(input, extensionRegistry)
-                 .buildParsed();
-      }
-      
-      public static Builder newBuilder() { return Builder.create(); }
-      public Builder newBuilderForType() { return newBuilder(); }
-      public static Builder newBuilder(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair prototype) {
-        return newBuilder().mergeFrom(prototype);
-      }
-      public Builder toBuilder() { return newBuilder(this); }
-      
-      public static final class Builder extends
-          com.google.protobuf.GeneratedMessageLite.Builder<
-            org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair, Builder>
-          implements org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePairOrBuilder {
-        // Construct using org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.newBuilder()
-        private Builder() {
-          maybeForceBuilderInitialization();
-        }
-        
-        private void maybeForceBuilderInitialization() {
-        }
-        private static Builder create() {
-          return new Builder();
-        }
-        
-        public Builder clear() {
-          super.clear();
-          key_ = "";
-          bitField0_ = (bitField0_ & ~0x00000001);
-          value_ = "";
-          bitField0_ = (bitField0_ & ~0x00000002);
-          return this;
-        }
-        
-        public Builder clone() {
-          return create().mergeFrom(buildPartial());
-        }
-        
-        public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair getDefaultInstanceForType() {
-          return org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.getDefaultInstance();
-        }
-        
-        public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair build() {
-          org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair result = buildPartial();
-          if (!result.isInitialized()) {
-            throw newUninitializedMessageException(result);
-          }
-          return result;
-        }
-        
-        private org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair buildParsed()
-            throws com.google.protobuf.InvalidProtocolBufferException {
-          org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair result = buildPartial();
-          if (!result.isInitialized()) {
-            throw newUninitializedMessageException(
-              result).asInvalidProtocolBufferException();
-          }
-          return result;
-        }
-        
-        public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair buildPartial() {
-          org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair result = new org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair(this);
-          int from_bitField0_ = bitField0_;
-          int to_bitField0_ = 0;
-          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-            to_bitField0_ |= 0x00000001;
-          }
-          result.key_ = key_;
-          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-            to_bitField0_ |= 0x00000002;
-          }
-          result.value_ = value_;
-          result.bitField0_ = to_bitField0_;
-          return result;
-        }
-        
-        public Builder mergeFrom(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair other) {
-          if (other == org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.getDefaultInstance()) return this;
-          if (other.hasKey()) {
-            setKey(other.getKey());
-          }
-          if (other.hasValue()) {
-            setValue(other.getValue());
-          }
-          return this;
-        }
-        
-        public final boolean isInitialized() {
-          if (!hasKey()) {
-            
-            return false;
-          }
-          if (!hasValue()) {
-            
-            return false;
-          }
-          return true;
-        }
-        
-        public Builder mergeFrom(
-            com.google.protobuf.CodedInputStream input,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
-          while (true) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                
-                return this;
-              default: {
-                if (!parseUnknownField(input, extensionRegistry, tag)) {
-                  
-                  return this;
-                }
-                break;
-              }
-              case 10: {
-                bitField0_ |= 0x00000001;
-                key_ = input.readBytes();
-                break;
-              }
-              case 18: {
-                bitField0_ |= 0x00000002;
-                value_ = input.readBytes();
-                break;
-              }
-            }
-          }
-        }
-        
-        private int bitField0_;
-        
-        // required string key = 1;
-        private java.lang.Object key_ = "";
-        public boolean hasKey() {
-          return ((bitField0_ & 0x00000001) == 0x00000001);
-        }
-        public String getKey() {
-          java.lang.Object ref = key_;
-          if (!(ref instanceof String)) {
-            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-            key_ = s;
-            return s;
-          } else {
-            return (String) ref;
-          }
-        }
-        public Builder setKey(String value) {
-          if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-          key_ = value;
-          
-          return this;
-        }
-        public Builder clearKey() {
-          bitField0_ = (bitField0_ & ~0x00000001);
-          key_ = getDefaultInstance().getKey();
-          
-          return this;
-        }
-        void setKey(com.google.protobuf.ByteString value) {
-          bitField0_ |= 0x00000001;
-          key_ = value;
-          
-        }
-        
-        // required string value = 2;
-        private java.lang.Object value_ = "";
-        public boolean hasValue() {
-          return ((bitField0_ & 0x00000002) == 0x00000002);
-        }
-        public String getValue() {
-          java.lang.Object ref = value_;
-          if (!(ref instanceof String)) {
-            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-            value_ = s;
-            return s;
-          } else {
-            return (String) ref;
-          }
-        }
-        public Builder setValue(String value) {
-          if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000002;
-          value_ = value;
-          
-          return this;
-        }
-        public Builder clearValue() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          value_ = getDefaultInstance().getValue();
-          
-          return this;
-        }
-        void setValue(com.google.protobuf.ByteString value) {
-          bitField0_ |= 0x00000002;
-          value_ = value;
-          
-        }
-        
-        // @@protoc_insertion_point(builder_scope:pulsar.schema.SchemaInfo.KeyValuePair)
-      }
-      
-      static {
-        defaultInstance = new KeyValuePair(true);
-        defaultInstance.initFields();
-      }
-      
-      // @@protoc_insertion_point(class_scope:pulsar.schema.SchemaInfo.KeyValuePair)
-    }
-    
-    private int bitField0_;
-    // required string schema_id = 1;
-    public static final int SCHEMA_ID_FIELD_NUMBER = 1;
-    private java.lang.Object schemaId_;
-    public boolean hasSchemaId() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getSchemaId() {
-      java.lang.Object ref = schemaId_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          schemaId_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getSchemaIdBytes() {
-      java.lang.Object ref = schemaId_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        schemaId_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string user = 2;
-    public static final int USER_FIELD_NUMBER = 2;
-    private java.lang.Object user_;
-    public boolean hasUser() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public String getUser() {
-      java.lang.Object ref = user_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          user_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUserBytes() {
-      java.lang.Object ref = user_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        user_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required .pulsar.schema.SchemaInfo.SchemaType type = 3;
-    public static final int TYPE_FIELD_NUMBER = 3;
-    private org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType getType() {
-      return type_;
-    }
-    
-    // required bytes schema = 4;
-    public static final int SCHEMA_FIELD_NUMBER = 4;
-    private com.google.protobuf.ByteString schema_;
-    public boolean hasSchema() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public com.google.protobuf.ByteString getSchema() {
-      return schema_;
-    }
-    
-    // required int64 timestamp = 5;
-    public static final int TIMESTAMP_FIELD_NUMBER = 5;
-    private long timestamp_;
-    public boolean hasTimestamp() {
-      return ((bitField0_ & 0x00000010) == 0x00000010);
-    }
-    public long getTimestamp() {
-      return timestamp_;
-    }
-    
-    // required bool deleted = 6;
-    public static final int DELETED_FIELD_NUMBER = 6;
-    private boolean deleted_;
-    public boolean hasDeleted() {
-      return ((bitField0_ & 0x00000020) == 0x00000020);
-    }
-    public boolean getDeleted() {
-      return deleted_;
-    }
-    
-    // repeated .pulsar.schema.SchemaInfo.KeyValuePair props = 7;
-    public static final int PROPS_FIELD_NUMBER = 7;
-    private java.util.List<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> props_;
-    public java.util.List<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> getPropsList() {
-      return props_;
-    }
-    public java.util.List<? extends org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePairOrBuilder> 
-        getPropsOrBuilderList() {
-      return props_;
-    }
-    public int getPropsCount() {
-      return props_.size();
-    }
-    public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair getProps(int index) {
-      return props_.get(index);
-    }
-    public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePairOrBuilder getPropsOrBuilder(
-        int index) {
-      return props_.get(index);
-    }
-    
-    private void initFields() {
-      schemaId_ = "";
-      user_ = "";
-      type_ = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType.NONE;
-      schema_ = com.google.protobuf.ByteString.EMPTY;
-      timestamp_ = 0L;
-      deleted_ = false;
-      props_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasSchemaId()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasUser()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasSchema()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasTimestamp()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasDeleted()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getPropsCount(); i++) {
-        if (!getProps(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getSchemaIdBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeBytes(2, getUserBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeEnum(3, type_.getNumber());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(4, schema_);
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        output.writeInt64(5, timestamp_);
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        output.writeBool(6, deleted_);
-      }
-      for (int i = 0; i < props_.size(); i++) {
-        output.writeMessage(7, props_.get(i));
-      }
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getSchemaIdBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(2, getUserBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(3, type_.getNumber());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(4, schema_);
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeInt64Size(5, timestamp_);
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(6, deleted_);
-      }
-      for (int i = 0; i < props_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(7, props_.get(i));
-      }
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageLite.Builder<
-          org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo, Builder>
-        implements org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfoOrBuilder {
-      // Construct using org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private void maybeForceBuilderInitialization() {
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        schemaId_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        user_ = "";
-        bitField0_ = (bitField0_ & ~0x00000002);
-        type_ = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType.NONE;
-        bitField0_ = (bitField0_ & ~0x00000004);
-        schema_ = com.google.protobuf.ByteString.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        timestamp_ = 0L;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        deleted_ = false;
-        bitField0_ = (bitField0_ & ~0x00000020);
-        props_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000040);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo getDefaultInstanceForType() {
-        return org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.getDefaultInstance();
-      }
-      
-      public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo build() {
-        org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo buildPartial() {
-        org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo result = new org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.schemaId_ = schemaId_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.user_ = user_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.type_ = type_;
-        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.schema_ = schema_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000010;
-        }
-        result.timestamp_ = timestamp_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000020;
-        }
-        result.deleted_ = deleted_;
-        if (((bitField0_ & 0x00000040) == 0x00000040)) {
-          props_ = java.util.Collections.unmodifiableList(props_);
-          bitField0_ = (bitField0_ & ~0x00000040);
-        }
-        result.props_ = props_;
-        result.bitField0_ = to_bitField0_;
-        return result;
-      }
-      
-      public Builder mergeFrom(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo other) {
-        if (other == org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.getDefaultInstance()) return this;
-        if (other.hasSchemaId()) {
-          setSchemaId(other.getSchemaId());
-        }
-        if (other.hasUser()) {
-          setUser(other.getUser());
-        }
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        if (other.hasSchema()) {
-          setSchema(other.getSchema());
-        }
-        if (other.hasTimestamp()) {
-          setTimestamp(other.getTimestamp());
-        }
-        if (other.hasDeleted()) {
-          setDeleted(other.getDeleted());
-        }
-        if (!other.props_.isEmpty()) {
-          if (props_.isEmpty()) {
-            props_ = other.props_;
-            bitField0_ = (bitField0_ & ~0x00000040);
-          } else {
-            ensurePropsIsMutable();
-            props_.addAll(other.props_);
-          }
-          
-        }
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasSchemaId()) {
-          
-          return false;
-        }
-        if (!hasUser()) {
-          
-          return false;
-        }
-        if (!hasType()) {
-          
-          return false;
-        }
-        if (!hasSchema()) {
-          
-          return false;
-        }
-        if (!hasTimestamp()) {
-          
-          return false;
-        }
-        if (!hasDeleted()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getPropsCount(); i++) {
-          if (!getProps(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              
-              return this;
-            default: {
-              if (!parseUnknownField(input, extensionRegistry, tag)) {
-                
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              schemaId_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              bitField0_ |= 0x00000002;
-              user_ = input.readBytes();
-              break;
-            }
-            case 24: {
-              int rawValue = input.readEnum();
-              org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType value = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType.valueOf(rawValue);
-              if (value != null) {
-                bitField0_ |= 0x00000004;
-                type_ = value;
-              }
-              break;
-            }
-            case 34: {
-              bitField0_ |= 0x00000008;
-              schema_ = input.readBytes();
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              timestamp_ = input.readInt64();
-              break;
-            }
-            case 48: {
-              bitField0_ |= 0x00000020;
-              deleted_ = input.readBool();
-              break;
-            }
-            case 58: {
-              org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.Builder subBuilder = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addProps(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string schema_id = 1;
-      private java.lang.Object schemaId_ = "";
-      public boolean hasSchemaId() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getSchemaId() {
-        java.lang.Object ref = schemaId_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          schemaId_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setSchemaId(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        schemaId_ = value;
-        
-        return this;
-      }
-      public Builder clearSchemaId() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        schemaId_ = getDefaultInstance().getSchemaId();
-        
-        return this;
-      }
-      void setSchemaId(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        schemaId_ = value;
-        
-      }
-      
-      // required string user = 2;
-      private java.lang.Object user_ = "";
-      public boolean hasUser() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public String getUser() {
-        java.lang.Object ref = user_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          user_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUser(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000002;
-        user_ = value;
-        
-        return this;
-      }
-      public Builder clearUser() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        user_ = getDefaultInstance().getUser();
-        
-        return this;
-      }
-      void setUser(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000002;
-        user_ = value;
-        
-      }
-      
-      // required .pulsar.schema.SchemaInfo.SchemaType type = 3;
-      private org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType type_ = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType.NONE;
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType getType() {
-        return type_;
-      }
-      public Builder setType(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        bitField0_ |= 0x00000004;
-        type_ = value;
-        
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        type_ = org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.SchemaType.NONE;
-        
-        return this;
-      }
-      
-      // required bytes schema = 4;
-      private com.google.protobuf.ByteString schema_ = com.google.protobuf.ByteString.EMPTY;
-      public boolean hasSchema() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public com.google.protobuf.ByteString getSchema() {
-        return schema_;
-      }
-      public Builder setSchema(com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000008;
-        schema_ = value;
-        
-        return this;
-      }
-      public Builder clearSchema() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        schema_ = getDefaultInstance().getSchema();
-        
-        return this;
-      }
-      
-      // required int64 timestamp = 5;
-      private long timestamp_ ;
-      public boolean hasTimestamp() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public long getTimestamp() {
-        return timestamp_;
-      }
-      public Builder setTimestamp(long value) {
-        bitField0_ |= 0x00000010;
-        timestamp_ = value;
-        
-        return this;
-      }
-      public Builder clearTimestamp() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        timestamp_ = 0L;
-        
-        return this;
-      }
-      
-      // required bool deleted = 6;
-      private boolean deleted_ ;
-      public boolean hasDeleted() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public boolean getDeleted() {
-        return deleted_;
-      }
-      public Builder setDeleted(boolean value) {
-        bitField0_ |= 0x00000020;
-        deleted_ = value;
-        
-        return this;
-      }
-      public Builder clearDeleted() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        deleted_ = false;
-        
-        return this;
-      }
-      
-      // repeated .pulsar.schema.SchemaInfo.KeyValuePair props = 7;
-      private java.util.List<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> props_ =
-        java.util.Collections.emptyList();
-      private void ensurePropsIsMutable() {
-        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
-          props_ = new java.util.ArrayList<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair>(props_);
-          bitField0_ |= 0x00000040;
-         }
-      }
-      
-      public java.util.List<org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> getPropsList() {
-        return java.util.Collections.unmodifiableList(props_);
-      }
-      public int getPropsCount() {
-        return props_.size();
-      }
-      public org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair getProps(int index) {
-        return props_.get(index);
-      }
-      public Builder setProps(
-          int index, org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensurePropsIsMutable();
-        props_.set(index, value);
-        
-        return this;
-      }
-      public Builder setProps(
-          int index, org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.Builder builderForValue) {
-        ensurePropsIsMutable();
-        props_.set(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addProps(org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensurePropsIsMutable();
-        props_.add(value);
-        
-        return this;
-      }
-      public Builder addProps(
-          int index, org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        ensurePropsIsMutable();
-        props_.add(index, value);
-        
-        return this;
-      }
-      public Builder addProps(
-          org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.Builder builderForValue) {
-        ensurePropsIsMutable();
-        props_.add(builderForValue.build());
-        
-        return this;
-      }
-      public Builder addProps(
-          int index, org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair.Builder builderForValue) {
-        ensurePropsIsMutable();
-        props_.add(index, builderForValue.build());
-        
-        return this;
-      }
-      public Builder addAllProps(
-          java.lang.Iterable<? extends org.apache.pulsar.broker.service.schema.proto.SchemaRegistryFormat.SchemaInfo.KeyValuePair> values) {
-        ensurePropsIsMutable();
-        super.addAll(values, props_);
-        
-        return this;
-      }
-      public Builder clearProps() {
-        props_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000040);
-        
-        return this;
-      }
-      public Builder removeProps(int index) {
-        ensurePropsIsMutable();
-        props_.remove(index);
-        
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:pulsar.schema.SchemaInfo)
-    }
-    
-    static {
-      defaultInstance = new SchemaInfo(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:pulsar.schema.SchemaInfo)
-  }
-  
-  
-  static {
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/pulsar-broker/src/main/proto/SchemaRegistryFormat.proto b/pulsar-broker/src/main/proto/SchemaRegistryFormat.proto
index 08dd506372..8776ddf45f 100644
--- a/pulsar-broker/src/main/proto/SchemaRegistryFormat.proto
+++ b/pulsar-broker/src/main/proto/SchemaRegistryFormat.proto
@@ -20,7 +20,7 @@ syntax = "proto2";
 
 package pulsar.schema;
 option java_package = "org.apache.pulsar.broker.service.schema.proto";
-option optimize_for = LITE_RUNTIME;
+option optimize_for = SPEED;
 
 message SchemaInfo {
     enum SchemaType {
diff --git a/pulsar-broker/src/main/proto/SchemaStorageFormat.proto b/pulsar-broker/src/main/proto/SchemaStorageFormat.proto
index 42cfc9f734..7523a4f10f 100644
--- a/pulsar-broker/src/main/proto/SchemaStorageFormat.proto
+++ b/pulsar-broker/src/main/proto/SchemaStorageFormat.proto
@@ -20,7 +20,7 @@ syntax = "proto2";
 
 package pulsar.schema;
 option java_package = "org.apache.pulsar.broker.service.schema";
-option optimize_for = LITE_RUNTIME;
+option optimize_for = SPEED;
 
 message PositionInfo {
     required int64 ledgerId = 1;
diff --git a/pulsar-functions/proto/pom.xml b/pulsar-functions/proto/pom.xml
index ef9037ae2d..38fca3e35f 100644
--- a/pulsar-functions/proto/pom.xml
+++ b/pulsar-functions/proto/pom.xml
@@ -59,7 +59,7 @@
             <plugin>
                 <groupId>org.xolstice.maven.plugins</groupId>
                 <artifactId>protobuf-maven-plugin</artifactId>
-                <version>0.5.0</version>
+                <version>${protobuf-maven-plugin.version}</version>
                 <configuration>
                     <protocArtifact>com.google.protobuf:protoc:${protobuf3.version}:exe:${os.detected.classifier}</protocArtifact>
                     <checkStaleness>true</checkStaleness>


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services