http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/bc15807c/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java 
b/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java
index 9174f88..3a495e7 100644
--- a/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java
+++ b/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java
@@ -1,20 +1,3 @@
-/*
- * 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: SliderClusterMessages.proto
 
@@ -12909,6 +12892,11378 @@ public final class Messages {
     // 
@@protoc_insertion_point(class_scope:org.apache.slider.api.GetInstanceDefinitionResponseProto)
   }
 
+  public interface ApplicationLivenessInformationProtoOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional bool allRequestsSatisfied = 1;
+    /**
+     * <code>optional bool allRequestsSatisfied = 1;</code>
+     */
+    boolean hasAllRequestsSatisfied();
+    /**
+     * <code>optional bool allRequestsSatisfied = 1;</code>
+     */
+    boolean getAllRequestsSatisfied();
+
+    // optional int32 requestsOutstanding = 2;
+    /**
+     * <code>optional int32 requestsOutstanding = 2;</code>
+     */
+    boolean hasRequestsOutstanding();
+    /**
+     * <code>optional int32 requestsOutstanding = 2;</code>
+     */
+    int getRequestsOutstanding();
+  }
+  /**
+   * Protobuf type {@code 
org.apache.slider.api.ApplicationLivenessInformationProto}
+   *
+   * <pre>
+   **
+   * See org.apache.slider.api.types.ApplicationLivenessInformation
+   * </pre>
+   */
+  public static final class ApplicationLivenessInformationProto extends
+      com.google.protobuf.GeneratedMessage
+      implements ApplicationLivenessInformationProtoOrBuilder {
+    // Use ApplicationLivenessInformationProto.newBuilder() to construct.
+    private 
ApplicationLivenessInformationProto(com.google.protobuf.GeneratedMessage.Builder<?>
 builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private ApplicationLivenessInformationProto(boolean noInit) { 
this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final ApplicationLivenessInformationProto defaultInstance;
+    public static ApplicationLivenessInformationProto getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public ApplicationLivenessInformationProto getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ApplicationLivenessInformationProto(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              bitField0_ |= 0x00000001;
+              allRequestsSatisfied_ = input.readBool();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              requestsOutstanding_ = input.readInt32();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.class, 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.Builder.class);
+    }
+
+    public static 
com.google.protobuf.Parser<ApplicationLivenessInformationProto> PARSER =
+        new 
com.google.protobuf.AbstractParser<ApplicationLivenessInformationProto>() {
+      public ApplicationLivenessInformationProto parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ApplicationLivenessInformationProto(input, 
extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ApplicationLivenessInformationProto> 
getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional bool allRequestsSatisfied = 1;
+    public static final int ALLREQUESTSSATISFIED_FIELD_NUMBER = 1;
+    private boolean allRequestsSatisfied_;
+    /**
+     * <code>optional bool allRequestsSatisfied = 1;</code>
+     */
+    public boolean hasAllRequestsSatisfied() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional bool allRequestsSatisfied = 1;</code>
+     */
+    public boolean getAllRequestsSatisfied() {
+      return allRequestsSatisfied_;
+    }
+
+    // optional int32 requestsOutstanding = 2;
+    public static final int REQUESTSOUTSTANDING_FIELD_NUMBER = 2;
+    private int requestsOutstanding_;
+    /**
+     * <code>optional int32 requestsOutstanding = 2;</code>
+     */
+    public boolean hasRequestsOutstanding() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional int32 requestsOutstanding = 2;</code>
+     */
+    public int getRequestsOutstanding() {
+      return requestsOutstanding_;
+    }
+
+    private void initFields() {
+      allRequestsSatisfied_ = false;
+      requestsOutstanding_ = 0;
+    }
+    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.writeBool(1, allRequestsSatisfied_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeInt32(2, requestsOutstanding_);
+      }
+      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
+          .computeBoolSize(1, allRequestsSatisfied_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, requestsOutstanding_);
+      }
+      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();
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto)) {
+        return super.equals(obj);
+      }
+      org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
other = 
(org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto) obj;
+
+      boolean result = true;
+      result = result && (hasAllRequestsSatisfied() == 
other.hasAllRequestsSatisfied());
+      if (hasAllRequestsSatisfied()) {
+        result = result && (getAllRequestsSatisfied()
+            == other.getAllRequestsSatisfied());
+      }
+      result = result && (hasRequestsOutstanding() == 
other.hasRequestsOutstanding());
+      if (hasRequestsOutstanding()) {
+        result = result && (getRequestsOutstanding()
+            == other.getRequestsOutstanding());
+      }
+      result = result &&
+          getUnknownFields().equals(other.getUnknownFields());
+      return result;
+    }
+
+    private int memoizedHashCode = 0;
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptorForType().hashCode();
+      if (hasAllRequestsSatisfied()) {
+        hash = (37 * hash) + ALLREQUESTSSATISFIED_FIELD_NUMBER;
+        hash = (53 * hash) + hashBoolean(getAllRequestsSatisfied());
+      }
+      if (hasRequestsOutstanding()) {
+        hash = (37 * hash) + REQUESTSOUTSTANDING_FIELD_NUMBER;
+        hash = (53 * hash) + getRequestsOutstanding();
+      }
+      hash = (29 * hash) + getUnknownFields().hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder 
newBuilder(org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto
 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;
+    }
+    /**
+     * Protobuf type {@code 
org.apache.slider.api.ApplicationLivenessInformationProto}
+     *
+     * <pre>
+     **
+     * See org.apache.slider.api.types.ApplicationLivenessInformation
+     * </pre>
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProtoOrBuilder
 {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.class, 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.Builder.class);
+      }
+
+      // Construct using 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.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();
+        allRequestsSatisfied_ = false;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        requestsOutstanding_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor;
+      }
+
+      public 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
getDefaultInstanceForType() {
+        return 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.getDefaultInstance();
+      }
+
+      public 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
build() {
+        
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto result 
= buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
buildPartial() {
+        
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto result 
= new 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.allRequestsSatisfied_ = allRequestsSatisfied_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.requestsOutstanding_ = requestsOutstanding_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto) {
+          return 
mergeFrom((org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder 
mergeFrom(org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto
 other) {
+        if (other == 
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto.getDefaultInstance())
 return this;
+        if (other.hasAllRequestsSatisfied()) {
+          setAllRequestsSatisfied(other.getAllRequestsSatisfied());
+        }
+        if (other.hasRequestsOutstanding()) {
+          setRequestsOutstanding(other.getRequestsOutstanding());
+        }
+        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 {
+        
org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto 
parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = 
(org.apache.slider.api.proto.Messages.ApplicationLivenessInformationProto) 
e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional bool allRequestsSatisfied = 1;
+      private boolean allRequestsSatisfied_ ;
+      /**
+       * <code>optional bool allRequestsSatisfied = 1;</code>
+       */
+      public boolean hasAllRequestsSatisfied() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional bool allRequestsSatisfied = 1;</code>
+       */
+      public boolean getAllRequestsSatisfied() {
+        return allRequestsSatisfied_;
+      }
+      /**
+       * <code>optional bool allRequestsSatisfied = 1;</code>
+       */
+      public Builder setAllRequestsSatisfied(boolean value) {
+        bitField0_ |= 0x00000001;
+        allRequestsSatisfied_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool allRequestsSatisfied = 1;</code>
+       */
+      public Builder clearAllRequestsSatisfied() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        allRequestsSatisfied_ = false;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 requestsOutstanding = 2;
+      private int requestsOutstanding_ ;
+      /**
+       * <code>optional int32 requestsOutstanding = 2;</code>
+       */
+      public boolean hasRequestsOutstanding() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional int32 requestsOutstanding = 2;</code>
+       */
+      public int getRequestsOutstanding() {
+        return requestsOutstanding_;
+      }
+      /**
+       * <code>optional int32 requestsOutstanding = 2;</code>
+       */
+      public Builder setRequestsOutstanding(int value) {
+        bitField0_ |= 0x00000002;
+        requestsOutstanding_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 requestsOutstanding = 2;</code>
+       */
+      public Builder clearRequestsOutstanding() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        requestsOutstanding_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // 
@@protoc_insertion_point(builder_scope:org.apache.slider.api.ApplicationLivenessInformationProto)
+    }
+
+    static {
+      defaultInstance = new ApplicationLivenessInformationProto(true);
+      defaultInstance.initFields();
+    }
+
+    // 
@@protoc_insertion_point(class_scope:org.apache.slider.api.ApplicationLivenessInformationProto)
+  }
+
+  public interface ComponentInformationProtoOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string name = 1;
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    boolean hasName();
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    java.lang.String getName();
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    // optional int32 priority = 2;
+    /**
+     * <code>optional int32 priority = 2;</code>
+     */
+    boolean hasPriority();
+    /**
+     * <code>optional int32 priority = 2;</code>
+     */
+    int getPriority();
+
+    // optional int32 desired = 3;
+    /**
+     * <code>optional int32 desired = 3;</code>
+     */
+    boolean hasDesired();
+    /**
+     * <code>optional int32 desired = 3;</code>
+     */
+    int getDesired();
+
+    // optional int32 actual = 4;
+    /**
+     * <code>optional int32 actual = 4;</code>
+     */
+    boolean hasActual();
+    /**
+     * <code>optional int32 actual = 4;</code>
+     */
+    int getActual();
+
+    // optional int32 releasing = 5;
+    /**
+     * <code>optional int32 releasing = 5;</code>
+     */
+    boolean hasReleasing();
+    /**
+     * <code>optional int32 releasing = 5;</code>
+     */
+    int getReleasing();
+
+    // optional int32 requested = 6;
+    /**
+     * <code>optional int32 requested = 6;</code>
+     */
+    boolean hasRequested();
+    /**
+     * <code>optional int32 requested = 6;</code>
+     */
+    int getRequested();
+
+    // optional int32 failed = 7;
+    /**
+     * <code>optional int32 failed = 7;</code>
+     */
+    boolean hasFailed();
+    /**
+     * <code>optional int32 failed = 7;</code>
+     */
+    int getFailed();
+
+    // optional int32 started = 8;
+    /**
+     * <code>optional int32 started = 8;</code>
+     */
+    boolean hasStarted();
+    /**
+     * <code>optional int32 started = 8;</code>
+     */
+    int getStarted();
+
+    // optional int32 startFailed = 9;
+    /**
+     * <code>optional int32 startFailed = 9;</code>
+     */
+    boolean hasStartFailed();
+    /**
+     * <code>optional int32 startFailed = 9;</code>
+     */
+    int getStartFailed();
+
+    // optional int32 completed = 10;
+    /**
+     * <code>optional int32 completed = 10;</code>
+     */
+    boolean hasCompleted();
+    /**
+     * <code>optional int32 completed = 10;</code>
+     */
+    int getCompleted();
+
+    // optional int32 totalRequested = 11;
+    /**
+     * <code>optional int32 totalRequested = 11;</code>
+     */
+    boolean hasTotalRequested();
+    /**
+     * <code>optional int32 totalRequested = 11;</code>
+     */
+    int getTotalRequested();
+
+    // optional string failureMessage = 12;
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    boolean hasFailureMessage();
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    java.lang.String getFailureMessage();
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    com.google.protobuf.ByteString
+        getFailureMessageBytes();
+
+    // optional int32 placementPolicy = 13;
+    /**
+     * <code>optional int32 placementPolicy = 13;</code>
+     */
+    boolean hasPlacementPolicy();
+    /**
+     * <code>optional int32 placementPolicy = 13;</code>
+     */
+    int getPlacementPolicy();
+
+    // repeated string containers = 14;
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    java.util.List<java.lang.String>
+    getContainersList();
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    int getContainersCount();
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    java.lang.String getContainers(int index);
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    com.google.protobuf.ByteString
+        getContainersBytes(int index);
+  }
+  /**
+   * Protobuf type {@code org.apache.slider.api.ComponentInformationProto}
+   *
+   * <pre>
+   *
+   * see org.apache.slider.api.types.ComponentInformation
+   * </pre>
+   */
+  public static final class ComponentInformationProto extends
+      com.google.protobuf.GeneratedMessage
+      implements ComponentInformationProtoOrBuilder {
+    // Use ComponentInformationProto.newBuilder() to construct.
+    private 
ComponentInformationProto(com.google.protobuf.GeneratedMessage.Builder<?> 
builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private ComponentInformationProto(boolean noInit) { this.unknownFields = 
com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final ComponentInformationProto defaultInstance;
+    public static ComponentInformationProto getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public ComponentInformationProto getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ComponentInformationProto(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              name_ = input.readBytes();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              priority_ = input.readInt32();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              desired_ = input.readInt32();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000008;
+              actual_ = input.readInt32();
+              break;
+            }
+            case 40: {
+              bitField0_ |= 0x00000010;
+              releasing_ = input.readInt32();
+              break;
+            }
+            case 48: {
+              bitField0_ |= 0x00000020;
+              requested_ = input.readInt32();
+              break;
+            }
+            case 56: {
+              bitField0_ |= 0x00000040;
+              failed_ = input.readInt32();
+              break;
+            }
+            case 64: {
+              bitField0_ |= 0x00000080;
+              started_ = input.readInt32();
+              break;
+            }
+            case 72: {
+              bitField0_ |= 0x00000100;
+              startFailed_ = input.readInt32();
+              break;
+            }
+            case 80: {
+              bitField0_ |= 0x00000200;
+              completed_ = input.readInt32();
+              break;
+            }
+            case 88: {
+              bitField0_ |= 0x00000400;
+              totalRequested_ = input.readInt32();
+              break;
+            }
+            case 98: {
+              bitField0_ |= 0x00000800;
+              failureMessage_ = input.readBytes();
+              break;
+            }
+            case 104: {
+              bitField0_ |= 0x00001000;
+              placementPolicy_ = input.readInt32();
+              break;
+            }
+            case 114: {
+              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
+                containers_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00002000;
+              }
+              containers_.add(input.readBytes());
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
+          containers_ = new 
com.google.protobuf.UnmodifiableLazyStringList(containers_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ComponentInformationProto_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ComponentInformationProto_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.slider.api.proto.Messages.ComponentInformationProto.class, 
org.apache.slider.api.proto.Messages.ComponentInformationProto.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<ComponentInformationProto> PARSER 
=
+        new com.google.protobuf.AbstractParser<ComponentInformationProto>() {
+      public ComponentInformationProto parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ComponentInformationProto(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ComponentInformationProto> 
getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional string name = 1;
+    public static final int NAME_FIELD_NUMBER = 1;
+    private java.lang.Object name_;
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    public boolean hasName() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          name_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string name = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional int32 priority = 2;
+    public static final int PRIORITY_FIELD_NUMBER = 2;
+    private int priority_;
+    /**
+     * <code>optional int32 priority = 2;</code>
+     */
+    public boolean hasPriority() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional int32 priority = 2;</code>
+     */
+    public int getPriority() {
+      return priority_;
+    }
+
+    // optional int32 desired = 3;
+    public static final int DESIRED_FIELD_NUMBER = 3;
+    private int desired_;
+    /**
+     * <code>optional int32 desired = 3;</code>
+     */
+    public boolean hasDesired() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional int32 desired = 3;</code>
+     */
+    public int getDesired() {
+      return desired_;
+    }
+
+    // optional int32 actual = 4;
+    public static final int ACTUAL_FIELD_NUMBER = 4;
+    private int actual_;
+    /**
+     * <code>optional int32 actual = 4;</code>
+     */
+    public boolean hasActual() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional int32 actual = 4;</code>
+     */
+    public int getActual() {
+      return actual_;
+    }
+
+    // optional int32 releasing = 5;
+    public static final int RELEASING_FIELD_NUMBER = 5;
+    private int releasing_;
+    /**
+     * <code>optional int32 releasing = 5;</code>
+     */
+    public boolean hasReleasing() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    /**
+     * <code>optional int32 releasing = 5;</code>
+     */
+    public int getReleasing() {
+      return releasing_;
+    }
+
+    // optional int32 requested = 6;
+    public static final int REQUESTED_FIELD_NUMBER = 6;
+    private int requested_;
+    /**
+     * <code>optional int32 requested = 6;</code>
+     */
+    public boolean hasRequested() {
+      return ((bitField0_ & 0x00000020) == 0x00000020);
+    }
+    /**
+     * <code>optional int32 requested = 6;</code>
+     */
+    public int getRequested() {
+      return requested_;
+    }
+
+    // optional int32 failed = 7;
+    public static final int FAILED_FIELD_NUMBER = 7;
+    private int failed_;
+    /**
+     * <code>optional int32 failed = 7;</code>
+     */
+    public boolean hasFailed() {
+      return ((bitField0_ & 0x00000040) == 0x00000040);
+    }
+    /**
+     * <code>optional int32 failed = 7;</code>
+     */
+    public int getFailed() {
+      return failed_;
+    }
+
+    // optional int32 started = 8;
+    public static final int STARTED_FIELD_NUMBER = 8;
+    private int started_;
+    /**
+     * <code>optional int32 started = 8;</code>
+     */
+    public boolean hasStarted() {
+      return ((bitField0_ & 0x00000080) == 0x00000080);
+    }
+    /**
+     * <code>optional int32 started = 8;</code>
+     */
+    public int getStarted() {
+      return started_;
+    }
+
+    // optional int32 startFailed = 9;
+    public static final int STARTFAILED_FIELD_NUMBER = 9;
+    private int startFailed_;
+    /**
+     * <code>optional int32 startFailed = 9;</code>
+     */
+    public boolean hasStartFailed() {
+      return ((bitField0_ & 0x00000100) == 0x00000100);
+    }
+    /**
+     * <code>optional int32 startFailed = 9;</code>
+     */
+    public int getStartFailed() {
+      return startFailed_;
+    }
+
+    // optional int32 completed = 10;
+    public static final int COMPLETED_FIELD_NUMBER = 10;
+    private int completed_;
+    /**
+     * <code>optional int32 completed = 10;</code>
+     */
+    public boolean hasCompleted() {
+      return ((bitField0_ & 0x00000200) == 0x00000200);
+    }
+    /**
+     * <code>optional int32 completed = 10;</code>
+     */
+    public int getCompleted() {
+      return completed_;
+    }
+
+    // optional int32 totalRequested = 11;
+    public static final int TOTALREQUESTED_FIELD_NUMBER = 11;
+    private int totalRequested_;
+    /**
+     * <code>optional int32 totalRequested = 11;</code>
+     */
+    public boolean hasTotalRequested() {
+      return ((bitField0_ & 0x00000400) == 0x00000400);
+    }
+    /**
+     * <code>optional int32 totalRequested = 11;</code>
+     */
+    public int getTotalRequested() {
+      return totalRequested_;
+    }
+
+    // optional string failureMessage = 12;
+    public static final int FAILUREMESSAGE_FIELD_NUMBER = 12;
+    private java.lang.Object failureMessage_;
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    public boolean hasFailureMessage() {
+      return ((bitField0_ & 0x00000800) == 0x00000800);
+    }
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    public java.lang.String getFailureMessage() {
+      java.lang.Object ref = failureMessage_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          failureMessage_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string failureMessage = 12;</code>
+     */
+    public com.google.protobuf.ByteString
+        getFailureMessageBytes() {
+      java.lang.Object ref = failureMessage_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        failureMessage_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional int32 placementPolicy = 13;
+    public static final int PLACEMENTPOLICY_FIELD_NUMBER = 13;
+    private int placementPolicy_;
+    /**
+     * <code>optional int32 placementPolicy = 13;</code>
+     */
+    public boolean hasPlacementPolicy() {
+      return ((bitField0_ & 0x00001000) == 0x00001000);
+    }
+    /**
+     * <code>optional int32 placementPolicy = 13;</code>
+     */
+    public int getPlacementPolicy() {
+      return placementPolicy_;
+    }
+
+    // repeated string containers = 14;
+    public static final int CONTAINERS_FIELD_NUMBER = 14;
+    private com.google.protobuf.LazyStringList containers_;
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    public java.util.List<java.lang.String>
+        getContainersList() {
+      return containers_;
+    }
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    public int getContainersCount() {
+      return containers_.size();
+    }
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    public java.lang.String getContainers(int index) {
+      return containers_.get(index);
+    }
+    /**
+     * <code>repeated string containers = 14;</code>
+     */
+    public com.google.protobuf.ByteString
+        getContainersBytes(int index) {
+      return containers_.getByteString(index);
+    }
+
+    private void initFields() {
+      name_ = "";
+      priority_ = 0;
+      desired_ = 0;
+      actual_ = 0;
+      releasing_ = 0;
+      requested_ = 0;
+      failed_ = 0;
+      started_ = 0;
+      startFailed_ = 0;
+      completed_ = 0;
+      totalRequested_ = 0;
+      failureMessage_ = "";
+      placementPolicy_ = 0;
+      containers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    }
+    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.writeBytes(1, getNameBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeInt32(2, priority_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeInt32(3, desired_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeInt32(4, actual_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeInt32(5, releasing_);
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        output.writeInt32(6, requested_);
+      }
+      if (((bitField0_ & 0x00000040) == 0x00000040)) {
+        output.writeInt32(7, failed_);
+      }
+      if (((bitField0_ & 0x00000080) == 0x00000080)) {
+        output.writeInt32(8, started_);
+      }
+      if (((bitField0_ & 0x00000100) == 0x00000100)) {
+        output.writeInt32(9, startFailed_);
+      }
+      if (((bitField0_ & 0x00000200) == 0x00000200)) {
+        output.writeInt32(10, completed_);
+      }
+      if (((bitField0_ & 0x00000400) == 0x00000400)) {
+        output.writeInt32(11, totalRequested_);
+      }
+      if (((bitField0_ & 0x00000800) == 0x00000800)) {
+        output.writeBytes(12, getFailureMessageBytes());
+      }
+      if (((bitField0_ & 0x00001000) == 0x00001000)) {
+        output.writeInt32(13, placementPolicy_);
+      }
+      for (int i = 0; i < containers_.size(); i++) {
+        output.writeBytes(14, containers_.getByteString(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
+          .computeBytesSize(1, getNameBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, priority_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, desired_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, actual_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, releasing_);
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(6, requested_);
+      }
+      if (((bitField0_ & 0x00000040) == 0x00000040)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(7, failed_);
+      }
+      if (((bitField0_ & 0x00000080) == 0x00000080)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(8, started_);
+      }
+      if (((bitField0_ & 0x00000100) == 0x00000100)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(9, startFailed_);
+      }
+      if (((bitField0_ & 0x00000200) == 0x00000200)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(10, completed_);
+      }
+      if (((bitField0_ & 0x00000400) == 0x00000400)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(11, totalRequested_);
+      }
+      if (((bitField0_ & 0x00000800) == 0x00000800)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(12, getFailureMessageBytes());
+      }
+      if (((bitField0_ & 0x00001000) == 0x00001000)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(13, placementPolicy_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < containers_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeBytesSizeNoTag(containers_.getByteString(i));
+        }
+        size += dataSize;
+        size += 1 * getContainersList().size();
+      }
+      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();
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof 
org.apache.slider.api.proto.Messages.ComponentInformationProto)) {
+        return super.equals(obj);
+      }
+      org.apache.slider.api.proto.Messages.ComponentInformationProto other = 
(org.apache.slider.api.proto.Messages.ComponentInformationProto) obj;
+
+      boolean result = true;
+      result = result && (hasName() == other.hasName());
+      if (hasName()) {
+        result = result && getName()
+            .equals(other.getName());
+      }
+      result = result && (hasPriority() == other.hasPriority());
+      if (hasPriority()) {
+        result = result && (getPriority()
+            == other.getPriority());
+      }
+      result = result && (hasDesired() == other.hasDesired());
+      if (hasDesired()) {
+        result = result && (getDesired()
+            == other.getDesired());
+      }
+      result = result && (hasActual() == other.hasActual());
+      if (hasActual()) {
+        result = result && (getActual()
+            == other.getActual());
+      }
+      result = result && (hasReleasing() == other.hasReleasing());
+      if (hasReleasing()) {
+        result = result && (getReleasing()
+            == other.getReleasing());
+      }
+      result = result && (hasRequested() == other.hasRequested());
+      if (hasRequested()) {
+        result = result && (getRequested()
+            == other.getRequested());
+      }
+      result = result && (hasFailed() == other.hasFailed());
+      if (hasFailed()) {
+        result = result && (getFailed()
+            == other.getFailed());
+      }
+      result = result && (hasStarted() == other.hasStarted());
+      if (hasStarted()) {
+        result = result && (getStarted()
+            == other.getStarted());
+      }
+      result = result && (hasStartFailed() == other.hasStartFailed());
+      if (hasStartFailed()) {
+        result = result && (getStartFailed()
+            == other.getStartFailed());
+      }
+      result = result && (hasCompleted() == other.hasCompleted());
+      if (hasCompleted()) {
+        result = result && (getCompleted()
+            == other.getCompleted());
+      }
+      result = result && (hasTotalRequested() == other.hasTotalRequested());
+      if (hasTotalRequested()) {
+        result = result && (getTotalRequested()
+            == other.getTotalRequested());
+      }
+      result = result && (hasFailureMessage() == other.hasFailureMessage());
+      if (hasFailureMessage()) {
+        result = result && getFailureMessage()
+            .equals(other.getFailureMessage());
+      }
+      result = result && (hasPlacementPolicy() == other.hasPlacementPolicy());
+      if (hasPlacementPolicy()) {
+        result = result && (getPlacementPolicy()
+            == other.getPlacementPolicy());
+      }
+      result = result && getContainersList()
+          .equals(other.getContainersList());
+      result = result &&
+          getUnknownFields().equals(other.getUnknownFields());
+      return result;
+    }
+
+    private int memoizedHashCode = 0;
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptorForType().hashCode();
+      if (hasName()) {
+        hash = (37 * hash) + NAME_FIELD_NUMBER;
+        hash = (53 * hash) + getName().hashCode();
+      }
+      if (hasPriority()) {
+        hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
+        hash = (53 * hash) + getPriority();
+      }
+      if (hasDesired()) {
+        hash = (37 * hash) + DESIRED_FIELD_NUMBER;
+        hash = (53 * hash) + getDesired();
+      }
+      if (hasActual()) {
+        hash = (37 * hash) + ACTUAL_FIELD_NUMBER;
+        hash = (53 * hash) + getActual();
+      }
+      if (hasReleasing()) {
+        hash = (37 * hash) + RELEASING_FIELD_NUMBER;
+        hash = (53 * hash) + getReleasing();
+      }
+      if (hasRequested()) {
+        hash = (37 * hash) + REQUESTED_FIELD_NUMBER;
+        hash = (53 * hash) + getRequested();
+      }
+      if (hasFailed()) {
+        hash = (37 * hash) + FAILED_FIELD_NUMBER;
+        hash = (53 * hash) + getFailed();
+      }
+      if (hasStarted()) {
+        hash = (37 * hash) + STARTED_FIELD_NUMBER;
+        hash = (53 * hash) + getStarted();
+      }
+      if (hasStartFailed()) {
+        hash = (37 * hash) + STARTFAILED_FIELD_NUMBER;
+        hash = (53 * hash) + getStartFailed();
+      }
+      if (hasCompleted()) {
+        hash = (37 * hash) + COMPLETED_FIELD_NUMBER;
+        hash = (53 * hash) + getCompleted();
+      }
+      if (hasTotalRequested()) {
+        hash = (37 * hash) + TOTALREQUESTED_FIELD_NUMBER;
+        hash = (53 * hash) + getTotalRequested();
+      }
+      if (hasFailureMessage()) {
+        hash = (37 * hash) + FAILUREMESSAGE_FIELD_NUMBER;
+        hash = (53 * hash) + getFailureMessage().hashCode();
+      }
+      if (hasPlacementPolicy()) {
+        hash = (37 * hash) + PLACEMENTPOLICY_FIELD_NUMBER;
+        hash = (53 * hash) + getPlacementPolicy();
+      }
+      if (getContainersCount() > 0) {
+        hash = (37 * hash) + CONTAINERS_FIELD_NUMBER;
+        hash = (53 * hash) + getContainersList().hashCode();
+      }
+      hash = (29 * hash) + getUnknownFields().hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(byte[] 
data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto 
parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto 
parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto 
parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static 
org.apache.slider.api.proto.Messages.ComponentInformationProto parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder 
newBuilder(org.apache.slider.api.proto.Messages.ComponentInformationProto 
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;
+    }
+    /**
+     * Protobuf type {@code org.apache.slider.api.ComponentInformationProto}
+     *
+     * <pre>
+     *
+     * see org.apache.slider.api.types.ComponentInformation
+     * </pre>
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements 
org.apache.slider.api.proto.Messages.ComponentInformationProtoOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ComponentInformationProto_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ComponentInformationProto_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                
org.apache.slider.api.proto.Messages.ComponentInformationProto.class, 
org.apache.slider.api.proto.Messages.ComponentInformationProto.Builder.class);
+      }
+
+      // Construct using 
org.apache.slider.api.proto.Messages.ComponentInformationProto.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.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);
+        priority_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        desired_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        actual_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        releasing_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000010);
+        requested_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000020);
+        failed_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000040);
+        started_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000080);
+        startFailed_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000100);
+        completed_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000200);
+        totalRequested_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000400);
+        failureMessage_ = "";
+        bitField0_ = (bitField0_ & ~0x00000800);
+        placementPolicy_ = 0;
+        bitField0_ = (bitField0_ & ~0x00001000);
+        containers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00002000);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ComponentInformationProto_descriptor;
+      }
+
+      public org.apache.slider.api.proto.Messages.ComponentInformationProto 
getDefaultInstanceForType() {
+        return 
org.apache.slider.api.proto.Messages.ComponentInformationProto.getDefaultInstance();
+      }
+
+      public org.apache.slider.api.proto.Messages.ComponentInformationProto 
build() {
+        org.apache.slider.api.proto.Messages.ComponentInformationProto result 
= buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.slider.api.proto.Messages.ComponentInformationProto 
buildPartial() {
+        org.apache.slider.api.proto.Messages.ComponentInformationProto result 
= new org.apache.slider.api.proto.Messages.ComponentInformationProto(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.priority_ = priority_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.desired_ = desired_;
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000008;
+        }
+        result.actual_ = actual_;
+        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+          to_bitField0_ |= 0x00000010;
+        }
+        result.releasing_ = releasing_;
+        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+          to_bitField0_ |= 0x00000020;
+        }
+        result.requested_ = requested_;
+        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+          to_bitField0_ |= 0x00000040;
+        }
+        result.failed_ = failed_;
+        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+          to_bitField0_ |= 0x00000080;
+        }
+        result.started_ = started_;
+        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
+          to_bitField0_ |= 0x00000100;
+        }
+        result.startFailed_ = startFailed_;
+        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
+          to_bitField0_ |= 0x00000200;
+        }
+        result.completed_ = completed_;
+        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
+          to_bitField0_ |= 0x00000400;
+        }
+        result.totalRequested_ = totalRequested_;
+        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
+          to_bitField0_ |= 0x00000800;
+        }
+        result.failureMessage_ = failureMessage_;
+        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
+          to_bitField0_ |= 0x00001000;
+        }
+        result.placementPolicy_ = placementPolicy_;
+        if (((bitField0_ & 0x00002000) == 0x00002000)) {
+          containers_ = new com.google.protobuf.UnmodifiableLazyStringList(
+              containers_);
+          bitField0_ = (bitField0_ & ~0x00002000);
+        }
+        result.containers_ = containers_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof 
org.apache.slider.api.proto.Messages.ComponentInformationProto) {
+          return 
mergeFrom((org.apache.slider.api.proto.Messages.ComponentInformationProto)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder 
mergeFrom(org.apache.slider.api.proto.Messages.ComponentInformationProto other) 
{
+        if (other == 
org.apache.slider.api.proto.Messages.ComponentInformationProto.getDefaultInstance())
 return this;
+        if (other.hasName()) {
+          bitField0_ |= 0x00000001;
+          name_ = other.name_;
+          onChanged();
+        }
+        if (other.hasPriority()) {
+          setPriority(other.getPriority());
+        }
+        if (other.hasDesired()) {
+          setDesired(other.getDesired());
+        }
+        if (other.hasActual()) {
+          setActual(other.getActual());
+        }
+        if (other.hasReleasing()) {
+          setReleasing(other.getReleasing());
+        }
+        if (other.hasRequested()) {
+          setRequested(other.getRequested());
+        }
+        if (other.hasFailed()) {
+          setFailed(other.getFailed());
+        }
+        if (other.hasStarted()) {
+          setStarted(other.getStarted());
+        }
+        if (other.hasStartFailed()) {
+          setStartFailed(other.getStartFailed());
+        }
+        if (other.hasCompleted()) {
+          setCompleted(other.getCompleted());
+        }
+        if (other.hasTotalRequested()) {
+          setTotalRequested(other.getTotalRequested());
+        }
+        if (other.hasFailureMessage()) {
+          bitField0_ |= 0x00000800;
+          failureMessage_ = other.failureMessage_;
+          onChanged();
+        }
+        if (other.hasPlacementPolicy()) {
+          setPlacementPolicy(other.getPlacementPolicy());
+        }
+        if (!other.containers_.isEmpty()) {
+          if (containers_.isEmpty()) {
+            containers_ = other.containers_;
+            bitField0_ = (bitField0_ & ~0x00002000);
+          } else {
+            ensureContainersIsMutable();
+            containers_.addAll(other.containers_);
+          }
+          onChanged();
+        }
+        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 {
+        org.apache.slider.api.proto.Messages.ComponentInformationProto 
parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = 
(org.apache.slider.api.proto.Messages.ComponentInformationProto) 
e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional string name = 1;
+      private java.lang.Object name_ = "";
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public boolean hasName() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public Builder clearName() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string name = 1;</code>
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 priority = 2;
+      private int priority_ ;
+      /**
+       * <code>optional int32 priority = 2;</code>
+       */
+      public boolean hasPriority() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional int32 priority = 2;</code>
+       */
+      public int getPriority() {
+        return priority_;
+      }
+      /**
+       * <code>optional int32 priority = 2;</code>
+       */
+      public Builder setPriority(int value) {
+        bitField0_ |= 0x00000002;
+        priority_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 priority = 2;</code>
+       */
+      public Builder clearPriority() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        priority_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 desired = 3;
+      private int desired_ ;
+      /**
+       * <code>optional int32 desired = 3;</code>
+       */
+      public boolean hasDesired() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional int32 desired = 3;</code>
+       */
+      public int getDesired() {
+        return desired_;
+      }
+      /**
+       * <code>optional int32 desired = 3;</code>
+       */
+      public Builder setDesired(int value) {
+        bitField0_ |= 0x00000004;
+        desired_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 desired = 3;</code>
+       */
+      public Builder clearDesired() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        desired_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 actual = 4;
+      private int actual_ ;
+      /**
+       * <code>optional int32 actual = 4;</code>
+       */
+      public boolean hasActual() {
+        return ((bitField0_ & 0x00000008) == 0x00000008);
+      }
+      /**
+       * <code>optional int32 actual = 4;</code>
+       */
+      public int getActual() {
+        return actual_;
+      }
+      /**
+       * <code>optional int32 actual = 4;</code>
+       */
+      public Builder setActual(int value) {
+        bitField0_ |= 0x00000008;
+        actual_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 actual = 4;</code>
+       */
+      public Builder clearActual() {
+        bitField0_ = (bitField0_ & ~0x00000008);
+        actual_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 releasing = 5;
+      private int releasing_ ;
+      /**
+       * <code>optional int32 releasing = 5;</code>
+       */
+      public boolean hasReleasing() {
+        return ((bitField0_ & 0x00000010) == 0x00000010);
+      }
+      /**
+       * <code>optional int32 releasing = 5;</code>
+       */
+      public int getReleasing() {
+        return releasing_;
+      }
+      /**
+       * <code>optional int32 releasing = 5;</code>
+       */
+      public Builder setReleasing(int value) {
+        bitField0_ |= 0x00000010;
+        releasing_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 releasing = 5;</code>
+       */
+      public Builder clearReleasing() {
+        bitField0_ = (bitField0_ & ~0x00000010);
+        releasing_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 requested = 6;
+      private int requested_ ;
+      /**
+       * <code>optional int32 requested = 6;</code>
+       */
+      public boolean hasRequested() {
+        return ((bitField0_ & 0x00000020) == 0x00000020);
+      }
+      /**
+       * <code>optional int32 requested = 6;</code>
+       */
+      public int getRequested() {
+        return requested_;
+      }
+      /**
+       * <code>optional int32 requested = 6;</code>
+       */
+      public Builder setRequested(int value) {
+        bitField0_ |= 0x00000020;
+        requested_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 requested = 6;</code>
+       */
+      public Builder clearRequested() {
+        bitField0_ = (bitField0_ & ~0x00000020);
+        requested_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 failed = 7;
+      private int failed_ ;
+      /**
+       * <code>optional int32 failed = 7;</code>
+       */
+      public boolean hasFailed() {
+        return ((bitField0_ & 0x00000040) == 0x00000040);
+      }
+      /**
+       * <code>optional int32 failed = 7;</code>
+       */
+      public int getFailed() {
+        return failed_;
+      }
+      /**
+       * <code>optional int32 failed = 7;</code>
+       */
+      public Builder setFailed(int value) {
+        bitField0_ |= 0x00000040;
+        failed_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 failed = 7;</code>
+       */
+      public Builder clearFailed() {
+        bitField0_ = (bitField0_ & ~0x00000040);
+        failed_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 started = 8;
+      private int started_ ;
+      /**
+       * <code>optional int32 started = 8;</code>
+       */
+      public boolean hasStarted() {
+        return ((bitField0_ & 0x00000080) == 0x00000080);
+      }
+      /**
+       * <code>optional int32 started = 8;</code>
+       */
+      public int getStarted() {
+        return started_;
+      }
+      /**
+       * <code>optional int32 started = 8;</code>
+       */
+      public Builder setStarted(int value) {
+        bitField0_ |= 0x00000080;
+        started_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 started = 8;</code>
+       */
+      public Builder clearStarted() {
+        bitField0_ = (bitField0_ & ~0x00000080);
+        started_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 startFailed = 9;
+      private int startFailed_ ;
+      /**
+       * <code>optional int32 startFailed = 9;</code>
+       */
+      public boolean hasStartFailed() {
+        return ((bitField0_ & 0x00000100) == 0x00000100);
+      }
+      /**
+       * <code>optional int32 startFailed = 9;</code>
+       */
+      public int getStartFailed() {
+        return startFailed_;
+      }
+      /**
+       * <code>optional int32 startFailed = 9;</code>
+       */
+      public Builder setStartFailed(int value) {
+        bitField0_ |= 0x00000100;
+        startFailed_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 startFailed = 9;</code>
+       */
+      public Builder clearStartFailed() {
+        bitField0_ = (bitField0_ & ~0x00000100);
+        startFailed_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 completed = 10;
+      private int completed_ ;
+      /**
+       * <code>optional int32 completed = 10;</code>
+       */
+      public boolean hasCompleted() {
+        return ((bitField0_ & 0x00000200) == 0x00000200);
+      }
+      /**
+       * <code>optional int32 completed = 10;</code>
+       */
+      public int getCompleted() {
+        return completed_;
+      }
+      /**
+       * <code>optional int32 completed = 10;</code>
+       */
+      public Builder setCompleted(int value) {
+        bitField0_ |= 0x00000200;
+        completed_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 completed = 10;</code>
+       */
+      public Builder clearCompleted() {
+        bitField0_ = (bitField0_ & ~0x00000200);
+        completed_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 totalRequested = 11;
+      private int totalRequested_ ;
+      /**
+       * <code>optional int32 totalRequested = 11;</code>
+       */
+      public boolean hasTotalRequested() {
+        return ((bitField0_ & 0x00000400) == 0x00000400);
+      }
+      /**
+       * <code>optional int32 totalRequested = 11;</code>
+       */
+      public int getTotalRequested() {
+        return totalRequested_;
+      }
+      /**
+       * <code>optional int32 totalRequested = 11;</code>
+       */
+      public Builder setTotalRequested(int value) {
+        bitField0_ |= 0x00000400;
+        totalRequested_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 totalRequested = 11;</code>
+       */
+      public Builder clearTotalRequested() {
+        bitField0_ = (bitField0_ & ~0x00000400);
+        totalRequested_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional string failureMessage = 12;
+      private java.lang.Object failureMessage_ = "";
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public boolean hasFailureMessage() {
+        return ((bitField0_ & 0x00000800) == 0x00000800);
+      }
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public java.lang.String getFailureMessage() {
+        java.lang.Object ref = failureMessage_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          failureMessage_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public com.google.protobuf.ByteString
+          getFailureMessageBytes() {
+        java.lang.Object ref = failureMessage_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          failureMessage_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public Builder setFailureMessage(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000800;
+        failureMessage_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public Builder clearFailureMessage() {
+        bitField0_ = (bitField0_ & ~0x00000800);
+        failureMessage_ = getDefaultInstance().getFailureMessage();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string failureMessage = 12;</code>
+       */
+      public Builder setFailureMessageBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000800;
+        failureMessage_ = value;
+        onChanged();
+        return this;
+      }
+
+      // optional int32 placementPolicy = 13;
+      private int placementPolicy_ ;
+      /**
+       * <code>optional int32 placementPolicy = 13;</code>
+       */
+      public boolean hasPlacementPolicy() {
+        return ((bitField0_ & 0x00001000) == 0x00001000);
+      }
+      /**
+       * <code>optional int32 placementPolicy = 13;</code>
+       */
+      public int getPlacementPolicy() {
+        return placementPolicy_;
+      }
+      /**
+       * <code>optional int32 placementPolicy = 13;</code>
+       */
+      public Builder setPlacementPolicy(int value) {
+        bitField0_ |= 0x00001000;
+        placementPolicy_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 placementPolicy = 13;</code>
+       */
+      public Builder clearPlacementPolicy() {
+        bitField0_ = (bitField0_ & ~0x00001000);
+        placementPolicy_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // repeated string containers = 14;
+      private com.google.protobuf.LazyStringList containers_ = 
com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureContainersIsMutable() {
+        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
+          containers_ = new 
com.google.protobuf.LazyStringArrayList(containers_);
+          bitField0_ |= 0x00002000;
+         }
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public java.util.List<java.lang.String>
+          getContainersList() {
+        return java.util.Collections.unmodifiableList(containers_);
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public int getContainersCount() {
+        return containers_.size();
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public java.lang.String getContainers(int index) {
+        return containers_.get(index);
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public com.google.protobuf.ByteString
+          getContainersBytes(int index) {
+        return containers_.getByteString(index);
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public Builder setContainers(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureContainersIsMutable();
+        containers_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public Builder addContainers(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureContainersIsMutable();
+        containers_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public Builder addAllContainers(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureContainersIsMutable();
+        super.addAll(values, containers_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public Builder clearContainers() {
+        containers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00002000);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string containers = 14;</code>
+       */
+      public Builder addContainersBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureContainersIsMutable();
+        containers_.add(value);
+        onChanged();
+        return this;
+      }
+
+      // 
@@protoc_insertion_point(builder_scope:org.apache.slider.api.ComponentInformationProto)
+    }
+
+    static {
+      defaultInstance = new ComponentInformationProto(true);
+      defaultInstance.initFields();
+    }
+
+    // 
@@protoc_insertion_point(class_scope:org.apache.slider.api.ComponentInformationProto)
+  }
+
+  public interface ContainerInformationProtoOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string containerId = 1;
+    /**
+     * <code>optional string containerId = 1;</code>
+     */
+    boolean hasContainerId();
+    /**
+     * <code>optional string containerId = 1;</code>
+     */
+    java.lang.String getContainerId();
+    /**
+     * <code>optional string containerId = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getContainerIdBytes();
+
+    // optional string component = 2;
+    /**
+     * <code>optional string component = 2;</code>
+     */
+    boolean hasComponent();
+    /**
+     * <code>optional string component = 2;</code>
+     */
+    java.lang.String getComponent();
+    /**
+     * <code>optional string component = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getComponentBytes();
+
+    // optional bool released = 3;
+    /**
+     * <code>optional bool released = 3;</code>
+     */
+    boolean hasReleased();
+    /**
+     * <code>optional bool released = 3;</code>
+     */
+    boolean getReleased();
+
+    // optional int32 state = 4;
+    /**
+     * <code>optional int32 state = 4;</code>
+     */
+    boolean hasState();
+    /**
+     * <code>optional int32 state = 4;</code>
+     */
+    int getState();
+
+    // optional int32 exitCode = 5;
+    /**
+     * <code>optional int32 exitCode = 5;</code>
+     */
+    boolean hasExitCode();
+    /**
+     * <code>optional int32 exitCode = 5;</code>
+     */
+    int getExitCode();
+
+    // optional string diagnostics = 6;
+    /**
+     * <code>optional string diagnostics = 6;</code>
+     */
+    boolean hasDiagnostics();
+    /**
+     * <code>optional string diagnostics = 6;</code>
+     */
+    java.lang.String getDiagnostics();
+    /**
+     * <code>optional string diagnostics = 6;</code>
+     */
+    com.google.protobuf.ByteString
+        getDiagnosticsBytes();
+
+    // optional int64 createTime = 7;
+    /**
+     * <code>optional int64 createTime = 7;</code>
+     */
+    boolean hasCreateTime();
+    /**
+     * <code>optional int64 createTime = 7;</code>
+     */
+    long getCreateTime();
+
+    // optional int64 startTime = 8;
+    /**
+     * <code>optional int64 startTime = 8;</code>
+     */
+    boolean hasStartTime();
+    /**
+     * <code>optional int64 startTime = 8;</code>
+     */
+    long getStartTime();
+
+    // repeated string output = 9;
+    /**
+     * <code>repeated string output = 9;</code>
+     */
+    java.util.List<java.lang.String>
+    getOutputList();
+    /**
+     * <code>repeated string output = 9;</code>
+     */
+    int getOutputCount();
+    /**
+     * <code>repeated string output = 9;</code>
+     */
+    java.lang.String getOutput(int index);
+    /**
+     * <code>repeated string output = 9;</code>
+     */
+    com.google.protobuf.ByteString
+        getOutputBytes(int index);
+
+    // optional string host = 10;
+    /**
+     * <code>optional string host = 10;</code>
+     */
+    boolean hasHost();
+    /**
+     * <code>optional string host = 10;</code>
+     */
+    java.lang.String getHost();
+    /**
+     * <code>optional string host = 10;</code>
+     */
+    com.google.protobuf.ByteString
+        getHostBytes();
+
+    // optional string hostURL = 11;
+    /**
+     * <code>optional string hostURL = 11;</code>
+     */
+    boolean hasHostURL();
+    /**
+     * <code>optional string hostURL = 11;</code>
+     */
+    java.lang.String getHostURL();
+    /**
+     * <code>optional string hostURL = 11;</code>
+     */
+    com.google.protobuf.ByteString
+        getHostURLBytes();
+  }
+  /**
+   * Protobuf type {@code org.apache.slider.api.ContainerInformationProto}
+   *
+   * <pre>
+   *
+   * see org.apache.slider.api.types.ContainerInformation
+   * </pre>
+   */
+  public static final class ContainerInformationProto extends
+      com.google.protobuf.GeneratedMessage
+      implements ContainerInformationProtoOrBuilder {
+    // Use ContainerInformationProto.newBuilder() to construct.
+    private 
ContainerInformationProto(com.google.protobuf.GeneratedMessage.Builder<?> 
builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private ContainerInformationProto(boolean noInit) { this.unknownFields = 
com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final ContainerInformationProto defaultInstance;
+    public static ContainerInformationProto getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public ContainerInformationProto getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ContainerInformationProto(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              containerId_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              component_ = input.readBytes();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              released_ = input.readBool();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000008;
+              state_ = input.readInt32();
+              break;
+            }
+            case 40: {
+              bitField0_ |= 0x00000010;
+              exitCode_ = input.readInt32();
+              break;
+            }
+            case 50: {
+              bitField0_ |= 0x00

<TRUNCATED>

Reply via email to