diff --git a/akka-cluster-metrics/src/main/java/akka/cluster/metrics/protobuf/msg/ClusterMetricsMessages.java b/akka-cluster-metrics/src/main/java/akka/cluster/metrics/protobuf/msg/ClusterMetricsMessages.java index b087c7e385..d03efc4c2c 100644 --- a/akka-cluster-metrics/src/main/java/akka/cluster/metrics/protobuf/msg/ClusterMetricsMessages.java +++ b/akka-cluster-metrics/src/main/java/akka/cluster/metrics/protobuf/msg/ClusterMetricsMessages.java @@ -5945,6 +5945,2321 @@ public final class ClusterMetricsMessages { // @@protoc_insertion_point(class_scope:Address) } + public interface AdaptiveLoadBalancingPoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // optional .MetricsSelector metricsSelector = 1; + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + boolean hasMetricsSelector(); + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getMetricsSelector(); + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getMetricsSelectorOrBuilder(); + + // required uint32 nrOfInstances = 2; + /** + * required uint32 nrOfInstances = 2; + */ + boolean hasNrOfInstances(); + /** + * required uint32 nrOfInstances = 2; + */ + int getNrOfInstances(); + + // optional string routerDispatcher = 3; + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + boolean hasRouterDispatcher(); + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + java.lang.String getRouterDispatcher(); + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + akka.protobuf.ByteString + getRouterDispatcherBytes(); + + // required bool usePoolDispatcher = 4; + /** + * required bool usePoolDispatcher = 4; + */ + boolean hasUsePoolDispatcher(); + /** + * required bool usePoolDispatcher = 4; + */ + boolean getUsePoolDispatcher(); + } + /** + * Protobuf type {@code AdaptiveLoadBalancingPool} + */ + public static final class AdaptiveLoadBalancingPool extends + akka.protobuf.GeneratedMessage + implements AdaptiveLoadBalancingPoolOrBuilder { + // Use AdaptiveLoadBalancingPool.newBuilder() to construct. + private AdaptiveLoadBalancingPool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private AdaptiveLoadBalancingPool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final AdaptiveLoadBalancingPool defaultInstance; + public static AdaptiveLoadBalancingPool getDefaultInstance() { + return defaultInstance; + } + + public AdaptiveLoadBalancingPool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private AdaptiveLoadBalancingPool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = metricsSelector_.toBuilder(); + } + metricsSelector_ = input.readMessage(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(metricsSelector_); + metricsSelector_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 16: { + bitField0_ |= 0x00000002; + nrOfInstances_ = input.readUInt32(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + routerDispatcher_ = input.readBytes(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + usePoolDispatcher_ = input.readBool(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_AdaptiveLoadBalancingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_AdaptiveLoadBalancingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public AdaptiveLoadBalancingPool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new AdaptiveLoadBalancingPool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .MetricsSelector metricsSelector = 1; + public static final int METRICSSELECTOR_FIELD_NUMBER = 1; + private akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector metricsSelector_; + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + public boolean hasMetricsSelector() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getMetricsSelector() { + return metricsSelector_; + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+     * omitted if default
+     * 
+ */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getMetricsSelectorOrBuilder() { + return metricsSelector_; + } + + // required uint32 nrOfInstances = 2; + public static final int NROFINSTANCES_FIELD_NUMBER = 2; + private int nrOfInstances_; + /** + * required uint32 nrOfInstances = 2; + */ + public boolean hasNrOfInstances() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 nrOfInstances = 2; + */ + public int getNrOfInstances() { + return nrOfInstances_; + } + + // optional string routerDispatcher = 3; + public static final int ROUTERDISPATCHER_FIELD_NUMBER = 3; + private java.lang.Object routerDispatcher_; + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + routerDispatcher_ = s; + } + return s; + } + } + /** + * optional string routerDispatcher = 3; + * + *
+     * omitted if default
+     * 
+ */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // required bool usePoolDispatcher = 4; + public static final int USEPOOLDISPATCHER_FIELD_NUMBER = 4; + private boolean usePoolDispatcher_; + /** + * required bool usePoolDispatcher = 4; + */ + public boolean hasUsePoolDispatcher() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * required bool usePoolDispatcher = 4; + */ + public boolean getUsePoolDispatcher() { + return usePoolDispatcher_; + } + + private void initFields() { + metricsSelector_ = akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance(); + nrOfInstances_ = 0; + routerDispatcher_ = ""; + usePoolDispatcher_ = false; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasNrOfInstances()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasUsePoolDispatcher()) { + memoizedIsInitialized = 0; + return false; + } + if (hasMetricsSelector()) { + if (!getMetricsSelector().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, metricsSelector_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeUInt32(2, nrOfInstances_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, getRouterDispatcherBytes()); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeBool(4, usePoolDispatcher_); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, metricsSelector_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeUInt32Size(2, nrOfInstances_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(3, getRouterDispatcherBytes()); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += akka.protobuf.CodedOutputStream + .computeBoolSize(4, usePoolDispatcher_); + } + 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 akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code AdaptiveLoadBalancingPool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_AdaptiveLoadBalancingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_AdaptiveLoadBalancingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.Builder.class); + } + + // Construct using akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getMetricsSelectorFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (metricsSelectorBuilder_ == null) { + metricsSelector_ = akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance(); + } else { + metricsSelectorBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + nrOfInstances_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + routerDispatcher_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + usePoolDispatcher_ = false; + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_AdaptiveLoadBalancingPool_descriptor; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool getDefaultInstanceForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.getDefaultInstance(); + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool build() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool buildPartial() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool result = new akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (metricsSelectorBuilder_ == null) { + result.metricsSelector_ = metricsSelector_; + } else { + result.metricsSelector_ = metricsSelectorBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.nrOfInstances_ = nrOfInstances_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.routerDispatcher_ = routerDispatcher_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.usePoolDispatcher_ = usePoolDispatcher_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool) { + return mergeFrom((akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool other) { + if (other == akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool.getDefaultInstance()) return this; + if (other.hasMetricsSelector()) { + mergeMetricsSelector(other.getMetricsSelector()); + } + if (other.hasNrOfInstances()) { + setNrOfInstances(other.getNrOfInstances()); + } + if (other.hasRouterDispatcher()) { + bitField0_ |= 0x00000004; + routerDispatcher_ = other.routerDispatcher_; + onChanged(); + } + if (other.hasUsePoolDispatcher()) { + setUsePoolDispatcher(other.getUsePoolDispatcher()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasNrOfInstances()) { + + return false; + } + if (!hasUsePoolDispatcher()) { + + return false; + } + if (hasMetricsSelector()) { + if (!getMetricsSelector().isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.AdaptiveLoadBalancingPool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .MetricsSelector metricsSelector = 1; + private akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector metricsSelector_ = akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder> metricsSelectorBuilder_; + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public boolean hasMetricsSelector() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getMetricsSelector() { + if (metricsSelectorBuilder_ == null) { + return metricsSelector_; + } else { + return metricsSelectorBuilder_.getMessage(); + } + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public Builder setMetricsSelector(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector value) { + if (metricsSelectorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + metricsSelector_ = value; + onChanged(); + } else { + metricsSelectorBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public Builder setMetricsSelector( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder builderForValue) { + if (metricsSelectorBuilder_ == null) { + metricsSelector_ = builderForValue.build(); + onChanged(); + } else { + metricsSelectorBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public Builder mergeMetricsSelector(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector value) { + if (metricsSelectorBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + metricsSelector_ != akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance()) { + metricsSelector_ = + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.newBuilder(metricsSelector_).mergeFrom(value).buildPartial(); + } else { + metricsSelector_ = value; + } + onChanged(); + } else { + metricsSelectorBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public Builder clearMetricsSelector() { + if (metricsSelectorBuilder_ == null) { + metricsSelector_ = akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance(); + onChanged(); + } else { + metricsSelectorBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder getMetricsSelectorBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getMetricsSelectorFieldBuilder().getBuilder(); + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getMetricsSelectorOrBuilder() { + if (metricsSelectorBuilder_ != null) { + return metricsSelectorBuilder_.getMessageOrBuilder(); + } else { + return metricsSelector_; + } + } + /** + * optional .MetricsSelector metricsSelector = 1; + * + *
+       * omitted if default
+       * 
+ */ + private akka.protobuf.SingleFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder> + getMetricsSelectorFieldBuilder() { + if (metricsSelectorBuilder_ == null) { + metricsSelectorBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder>( + metricsSelector_, + getParentForChildren(), + isClean()); + metricsSelector_ = null; + } + return metricsSelectorBuilder_; + } + + // required uint32 nrOfInstances = 2; + private int nrOfInstances_ ; + /** + * required uint32 nrOfInstances = 2; + */ + public boolean hasNrOfInstances() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 nrOfInstances = 2; + */ + public int getNrOfInstances() { + return nrOfInstances_; + } + /** + * required uint32 nrOfInstances = 2; + */ + public Builder setNrOfInstances(int value) { + bitField0_ |= 0x00000002; + nrOfInstances_ = value; + onChanged(); + return this; + } + /** + * required uint32 nrOfInstances = 2; + */ + public Builder clearNrOfInstances() { + bitField0_ = (bitField0_ & ~0x00000002); + nrOfInstances_ = 0; + onChanged(); + return this; + } + + // optional string routerDispatcher = 3; + private java.lang.Object routerDispatcher_ = ""; + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + routerDispatcher_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public Builder setRouterDispatcher( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + routerDispatcher_ = value; + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public Builder clearRouterDispatcher() { + bitField0_ = (bitField0_ & ~0x00000004); + routerDispatcher_ = getDefaultInstance().getRouterDispatcher(); + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 3; + * + *
+       * omitted if default
+       * 
+ */ + public Builder setRouterDispatcherBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + routerDispatcher_ = value; + onChanged(); + return this; + } + + // required bool usePoolDispatcher = 4; + private boolean usePoolDispatcher_ ; + /** + * required bool usePoolDispatcher = 4; + */ + public boolean hasUsePoolDispatcher() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * required bool usePoolDispatcher = 4; + */ + public boolean getUsePoolDispatcher() { + return usePoolDispatcher_; + } + /** + * required bool usePoolDispatcher = 4; + */ + public Builder setUsePoolDispatcher(boolean value) { + bitField0_ |= 0x00000008; + usePoolDispatcher_ = value; + onChanged(); + return this; + } + /** + * required bool usePoolDispatcher = 4; + */ + public Builder clearUsePoolDispatcher() { + bitField0_ = (bitField0_ & ~0x00000008); + usePoolDispatcher_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:AdaptiveLoadBalancingPool) + } + + static { + defaultInstance = new AdaptiveLoadBalancingPool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:AdaptiveLoadBalancingPool) + } + + public interface MetricsSelectorOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required uint32 serializerId = 1; + /** + * required uint32 serializerId = 1; + */ + boolean hasSerializerId(); + /** + * required uint32 serializerId = 1; + */ + int getSerializerId(); + + // required string manifest = 2; + /** + * required string manifest = 2; + */ + boolean hasManifest(); + /** + * required string manifest = 2; + */ + java.lang.String getManifest(); + /** + * required string manifest = 2; + */ + akka.protobuf.ByteString + getManifestBytes(); + + // required bytes data = 3; + /** + * required bytes data = 3; + */ + boolean hasData(); + /** + * required bytes data = 3; + */ + akka.protobuf.ByteString getData(); + } + /** + * Protobuf type {@code MetricsSelector} + * + *
+   * couldn't figure out how to import Payload
+   * 
+ */ + public static final class MetricsSelector extends + akka.protobuf.GeneratedMessage + implements MetricsSelectorOrBuilder { + // Use MetricsSelector.newBuilder() to construct. + private MetricsSelector(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private MetricsSelector(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final MetricsSelector defaultInstance; + public static MetricsSelector getDefaultInstance() { + return defaultInstance; + } + + public MetricsSelector getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MetricsSelector( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + serializerId_ = input.readUInt32(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + manifest_ = input.readBytes(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + data_ = input.readBytes(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MetricsSelector_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MetricsSelector_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public MetricsSelector parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new MetricsSelector(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required uint32 serializerId = 1; + public static final int SERIALIZERID_FIELD_NUMBER = 1; + private int serializerId_; + /** + * required uint32 serializerId = 1; + */ + public boolean hasSerializerId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 serializerId = 1; + */ + public int getSerializerId() { + return serializerId_; + } + + // required string manifest = 2; + public static final int MANIFEST_FIELD_NUMBER = 2; + private java.lang.Object manifest_; + /** + * required string manifest = 2; + */ + public boolean hasManifest() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string manifest = 2; + */ + public java.lang.String getManifest() { + java.lang.Object ref = manifest_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + manifest_ = s; + } + return s; + } + } + /** + * required string manifest = 2; + */ + public akka.protobuf.ByteString + getManifestBytes() { + java.lang.Object ref = manifest_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // required bytes data = 3; + public static final int DATA_FIELD_NUMBER = 3; + private akka.protobuf.ByteString data_; + /** + * required bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes data = 3; + */ + public akka.protobuf.ByteString getData() { + return data_; + } + + private void initFields() { + serializerId_ = 0; + manifest_ = ""; + data_ = akka.protobuf.ByteString.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasSerializerId()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasManifest()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasData()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt32(1, serializerId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getManifestBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, data_); + } + 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 += akka.protobuf.CodedOutputStream + .computeUInt32Size(1, serializerId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(2, getManifestBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(3, data_); + } + 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 akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MetricsSelector} + * + *
+     * couldn't figure out how to import Payload
+     * 
+ */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MetricsSelector_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MetricsSelector_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder.class); + } + + // Construct using akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + serializerId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + manifest_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + data_ = akka.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MetricsSelector_descriptor; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getDefaultInstanceForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance(); + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector build() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector buildPartial() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector result = new akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.serializerId_ = serializerId_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.manifest_ = manifest_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.data_ = data_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector) { + return mergeFrom((akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector other) { + if (other == akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance()) return this; + if (other.hasSerializerId()) { + setSerializerId(other.getSerializerId()); + } + if (other.hasManifest()) { + bitField0_ |= 0x00000002; + manifest_ = other.manifest_; + onChanged(); + } + if (other.hasData()) { + setData(other.getData()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasSerializerId()) { + + return false; + } + if (!hasManifest()) { + + return false; + } + if (!hasData()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required uint32 serializerId = 1; + private int serializerId_ ; + /** + * required uint32 serializerId = 1; + */ + public boolean hasSerializerId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 serializerId = 1; + */ + public int getSerializerId() { + return serializerId_; + } + /** + * required uint32 serializerId = 1; + */ + public Builder setSerializerId(int value) { + bitField0_ |= 0x00000001; + serializerId_ = value; + onChanged(); + return this; + } + /** + * required uint32 serializerId = 1; + */ + public Builder clearSerializerId() { + bitField0_ = (bitField0_ & ~0x00000001); + serializerId_ = 0; + onChanged(); + return this; + } + + // required string manifest = 2; + private java.lang.Object manifest_ = ""; + /** + * required string manifest = 2; + */ + public boolean hasManifest() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string manifest = 2; + */ + public java.lang.String getManifest() { + java.lang.Object ref = manifest_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + manifest_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * required string manifest = 2; + */ + public akka.protobuf.ByteString + getManifestBytes() { + java.lang.Object ref = manifest_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * required string manifest = 2; + */ + public Builder setManifest( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + manifest_ = value; + onChanged(); + return this; + } + /** + * required string manifest = 2; + */ + public Builder clearManifest() { + bitField0_ = (bitField0_ & ~0x00000002); + manifest_ = getDefaultInstance().getManifest(); + onChanged(); + return this; + } + /** + * required string manifest = 2; + */ + public Builder setManifestBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + manifest_ = value; + onChanged(); + return this; + } + + // required bytes data = 3; + private akka.protobuf.ByteString data_ = akka.protobuf.ByteString.EMPTY; + /** + * required bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes data = 3; + */ + public akka.protobuf.ByteString getData() { + return data_; + } + /** + * required bytes data = 3; + */ + public Builder setData(akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + data_ = value; + onChanged(); + return this; + } + /** + * required bytes data = 3; + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000004); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:MetricsSelector) + } + + static { + defaultInstance = new MetricsSelector(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:MetricsSelector) + } + + public interface MixMetricsSelectorOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // repeated .MetricsSelector selectors = 1; + /** + * repeated .MetricsSelector selectors = 1; + */ + java.util.List + getSelectorsList(); + /** + * repeated .MetricsSelector selectors = 1; + */ + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getSelectors(int index); + /** + * repeated .MetricsSelector selectors = 1; + */ + int getSelectorsCount(); + /** + * repeated .MetricsSelector selectors = 1; + */ + java.util.List + getSelectorsOrBuilderList(); + /** + * repeated .MetricsSelector selectors = 1; + */ + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getSelectorsOrBuilder( + int index); + } + /** + * Protobuf type {@code MixMetricsSelector} + */ + public static final class MixMetricsSelector extends + akka.protobuf.GeneratedMessage + implements MixMetricsSelectorOrBuilder { + // Use MixMetricsSelector.newBuilder() to construct. + private MixMetricsSelector(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private MixMetricsSelector(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final MixMetricsSelector defaultInstance; + public static MixMetricsSelector getDefaultInstance() { + return defaultInstance; + } + + public MixMetricsSelector getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MixMetricsSelector( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + selectors_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + selectors_.add(input.readMessage(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.PARSER, extensionRegistry)); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + selectors_ = java.util.Collections.unmodifiableList(selectors_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MixMetricsSelector_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MixMetricsSelector_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public MixMetricsSelector parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new MixMetricsSelector(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + // repeated .MetricsSelector selectors = 1; + public static final int SELECTORS_FIELD_NUMBER = 1; + private java.util.List selectors_; + /** + * repeated .MetricsSelector selectors = 1; + */ + public java.util.List getSelectorsList() { + return selectors_; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public java.util.List + getSelectorsOrBuilderList() { + return selectors_; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public int getSelectorsCount() { + return selectors_.size(); + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getSelectors(int index) { + return selectors_.get(index); + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getSelectorsOrBuilder( + int index) { + return selectors_.get(index); + } + + private void initFields() { + selectors_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + for (int i = 0; i < getSelectorsCount(); i++) { + if (!getSelectors(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + for (int i = 0; i < selectors_.size(); i++) { + output.writeMessage(1, selectors_.get(i)); + } + 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 < selectors_.size(); i++) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(1, selectors_.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 akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MixMetricsSelector} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelectorOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MixMetricsSelector_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MixMetricsSelector_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.class, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.Builder.class); + } + + // Construct using akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getSelectorsFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (selectorsBuilder_ == null) { + selectors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + selectorsBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.internal_static_MixMetricsSelector_descriptor; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector getDefaultInstanceForType() { + return akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.getDefaultInstance(); + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector build() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector buildPartial() { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector result = new akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector(this); + int from_bitField0_ = bitField0_; + if (selectorsBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + selectors_ = java.util.Collections.unmodifiableList(selectors_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.selectors_ = selectors_; + } else { + result.selectors_ = selectorsBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector) { + return mergeFrom((akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector other) { + if (other == akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector.getDefaultInstance()) return this; + if (selectorsBuilder_ == null) { + if (!other.selectors_.isEmpty()) { + if (selectors_.isEmpty()) { + selectors_ = other.selectors_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSelectorsIsMutable(); + selectors_.addAll(other.selectors_); + } + onChanged(); + } + } else { + if (!other.selectors_.isEmpty()) { + if (selectorsBuilder_.isEmpty()) { + selectorsBuilder_.dispose(); + selectorsBuilder_ = null; + selectors_ = other.selectors_; + bitField0_ = (bitField0_ & ~0x00000001); + selectorsBuilder_ = + akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getSelectorsFieldBuilder() : null; + } else { + selectorsBuilder_.addAllMessages(other.selectors_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + for (int i = 0; i < getSelectorsCount(); i++) { + if (!getSelectors(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MixMetricsSelector) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // repeated .MetricsSelector selectors = 1; + private java.util.List selectors_ = + java.util.Collections.emptyList(); + private void ensureSelectorsIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + selectors_ = new java.util.ArrayList(selectors_); + bitField0_ |= 0x00000001; + } + } + + private akka.protobuf.RepeatedFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder> selectorsBuilder_; + + /** + * repeated .MetricsSelector selectors = 1; + */ + public java.util.List getSelectorsList() { + if (selectorsBuilder_ == null) { + return java.util.Collections.unmodifiableList(selectors_); + } else { + return selectorsBuilder_.getMessageList(); + } + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public int getSelectorsCount() { + if (selectorsBuilder_ == null) { + return selectors_.size(); + } else { + return selectorsBuilder_.getCount(); + } + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector getSelectors(int index) { + if (selectorsBuilder_ == null) { + return selectors_.get(index); + } else { + return selectorsBuilder_.getMessage(index); + } + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder setSelectors( + int index, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector value) { + if (selectorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSelectorsIsMutable(); + selectors_.set(index, value); + onChanged(); + } else { + selectorsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder setSelectors( + int index, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder builderForValue) { + if (selectorsBuilder_ == null) { + ensureSelectorsIsMutable(); + selectors_.set(index, builderForValue.build()); + onChanged(); + } else { + selectorsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder addSelectors(akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector value) { + if (selectorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSelectorsIsMutable(); + selectors_.add(value); + onChanged(); + } else { + selectorsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder addSelectors( + int index, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector value) { + if (selectorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSelectorsIsMutable(); + selectors_.add(index, value); + onChanged(); + } else { + selectorsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder addSelectors( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder builderForValue) { + if (selectorsBuilder_ == null) { + ensureSelectorsIsMutable(); + selectors_.add(builderForValue.build()); + onChanged(); + } else { + selectorsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder addSelectors( + int index, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder builderForValue) { + if (selectorsBuilder_ == null) { + ensureSelectorsIsMutable(); + selectors_.add(index, builderForValue.build()); + onChanged(); + } else { + selectorsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder addAllSelectors( + java.lang.Iterable values) { + if (selectorsBuilder_ == null) { + ensureSelectorsIsMutable(); + super.addAll(values, selectors_); + onChanged(); + } else { + selectorsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder clearSelectors() { + if (selectorsBuilder_ == null) { + selectors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + selectorsBuilder_.clear(); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public Builder removeSelectors(int index) { + if (selectorsBuilder_ == null) { + ensureSelectorsIsMutable(); + selectors_.remove(index); + onChanged(); + } else { + selectorsBuilder_.remove(index); + } + return this; + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder getSelectorsBuilder( + int index) { + return getSelectorsFieldBuilder().getBuilder(index); + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder getSelectorsOrBuilder( + int index) { + if (selectorsBuilder_ == null) { + return selectors_.get(index); } else { + return selectorsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public java.util.List + getSelectorsOrBuilderList() { + if (selectorsBuilder_ != null) { + return selectorsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(selectors_); + } + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder addSelectorsBuilder() { + return getSelectorsFieldBuilder().addBuilder( + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance()); + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder addSelectorsBuilder( + int index) { + return getSelectorsFieldBuilder().addBuilder( + index, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.getDefaultInstance()); + } + /** + * repeated .MetricsSelector selectors = 1; + */ + public java.util.List + getSelectorsBuilderList() { + return getSelectorsFieldBuilder().getBuilderList(); + } + private akka.protobuf.RepeatedFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder> + getSelectorsFieldBuilder() { + if (selectorsBuilder_ == null) { + selectorsBuilder_ = new akka.protobuf.RepeatedFieldBuilder< + akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelector.Builder, akka.cluster.metrics.protobuf.msg.ClusterMetricsMessages.MetricsSelectorOrBuilder>( + selectors_, + ((bitField0_ & 0x00000001) == 0x00000001), + getParentForChildren(), + isClean()); + selectors_ = null; + } + return selectorsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:MixMetricsSelector) + } + + static { + defaultInstance = new MixMetricsSelector(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:MixMetricsSelector) + } + private static akka.protobuf.Descriptors.Descriptor internal_static_MetricsGossipEnvelope_descriptor; private static @@ -5980,6 +8295,21 @@ public final class ClusterMetricsMessages { private static akka.protobuf.GeneratedMessage.FieldAccessorTable internal_static_Address_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_AdaptiveLoadBalancingPool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_AdaptiveLoadBalancingPool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_MetricsSelector_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_MetricsSelector_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_MixMetricsSelector_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_MixMetricsSelector_fieldAccessorTable; public static akka.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -6007,8 +8337,15 @@ public final class ClusterMetricsMessages { "\n\n\006Double\020\001\022\t\n\005Float\020\002\022\013\n\007Integer\020\003\022\010\n\004L" + "ong\020\004\"K\n\007Address\022\016\n\006system\030\001 \002(\t\022\020\n\010host" + "name\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010protocol\030\004 \001" + - "(\tB%\n!akka.cluster.metrics.protobuf.msgH" + - "\001" + "(\t\"\222\001\n\031AdaptiveLoadBalancingPool\022)\n\017metr" + + "icsSelector\030\001 \001(\0132\020.MetricsSelector\022\025\n\rn", + "rOfInstances\030\002 \002(\r\022\030\n\020routerDispatcher\030\003" + + " \001(\t\022\031\n\021usePoolDispatcher\030\004 \002(\010\"G\n\017Metri" + + "csSelector\022\024\n\014serializerId\030\001 \002(\r\022\020\n\010mani" + + "fest\030\002 \002(\t\022\014\n\004data\030\003 \002(\014\"9\n\022MixMetricsSe" + + "lector\022#\n\tselectors\030\001 \003(\0132\020.MetricsSelec" + + "torB%\n!akka.cluster.metrics.protobuf.msg" + + "H\001" }; akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -6057,6 +8394,24 @@ public final class ClusterMetricsMessages { akka.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_Address_descriptor, new java.lang.String[] { "System", "Hostname", "Port", "Protocol", }); + internal_static_AdaptiveLoadBalancingPool_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_AdaptiveLoadBalancingPool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_AdaptiveLoadBalancingPool_descriptor, + new java.lang.String[] { "MetricsSelector", "NrOfInstances", "RouterDispatcher", "UsePoolDispatcher", }); + internal_static_MetricsSelector_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_MetricsSelector_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_MetricsSelector_descriptor, + new java.lang.String[] { "SerializerId", "Manifest", "Data", }); + internal_static_MixMetricsSelector_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_MixMetricsSelector_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_MixMetricsSelector_descriptor, + new java.lang.String[] { "Selectors", }); return null; } }; diff --git a/akka-cluster-metrics/src/main/protobuf/ClusterMetricsMessages.proto b/akka-cluster-metrics/src/main/protobuf/ClusterMetricsMessages.proto index 3c897fabac..764c33bac7 100644 --- a/akka-cluster-metrics/src/main/protobuf/ClusterMetricsMessages.proto +++ b/akka-cluster-metrics/src/main/protobuf/ClusterMetricsMessages.proto @@ -71,3 +71,28 @@ message Address { required uint32 port = 3; optional string protocol = 4; } + +/**************************************** + * Router pool (for remote deployment + ****************************************/ + +message AdaptiveLoadBalancingPool { + // omitted if default + optional MetricsSelector metricsSelector = 1; + required uint32 nrOfInstances = 2; + // omitted if default + optional string routerDispatcher = 3; + required bool usePoolDispatcher = 4; +} + + +// couldn't figure out how to import Payload +message MetricsSelector { + required uint32 serializerId = 1; + required string manifest = 2; + required bytes data = 3; +} + +message MixMetricsSelector { + repeated MetricsSelector selectors = 1; +} \ No newline at end of file diff --git a/akka-cluster-metrics/src/main/resources/reference.conf b/akka-cluster-metrics/src/main/resources/reference.conf index 876746a7fb..7b53eed324 100644 --- a/akka-cluster-metrics/src/main/resources/reference.conf +++ b/akka-cluster-metrics/src/main/resources/reference.conf @@ -21,87 +21,92 @@ # Cluster metrics extension. # Provides periodic statistics collection and publication throughout the cluster. akka.cluster.metrics { - # Full path of dispatcher configuration key. - # Use "" for default key `akka.actor.default-dispatcher`. - dispatcher = "" - # How long should any actor wait before starting the periodic tasks. - periodic-tasks-initial-delay = 1s - # Sigar native library extract location. - # Use per-application-instance scoped location, such as program working directory. - native-library-extract-folder = ${user.dir}"/native" - # Metrics supervisor actor. - supervisor { - # Actor name. Example name space: /system/cluster-metrics - name = "cluster-metrics" - # Supervision strategy. - strategy { - # - # FQCN of class providing `akka.actor.SupervisorStrategy`. - # Must have a constructor with signature `(com.typesafe.config.Config)`. - # Default metrics strategy provider is a configurable extension of `OneForOneStrategy`. - provider = "akka.cluster.metrics.ClusterMetricsStrategy" - # - # Configuration of the default strategy provider. - # Replace with custom settings when overriding the provider. - configuration = { - # Log restart attempts. - loggingEnabled = true - # Child actor restart-on-failure window. - withinTimeRange = 3s - # Maximum number of restart attempts before child actor is stopped. - maxNrOfRetries = 3 - } - } - } - # Metrics collector actor. - collector { - # Enable or disable metrics collector for load-balancing nodes. - # Metrics collection can also be controlled at runtime by sending control messages - # to /system/cluster-metrics actor: `akka.cluster.metrics.{CollectionStartMessage,CollectionStopMessage}` - enabled = on - # FQCN of the metrics collector implementation. - # It must implement `akka.cluster.metrics.MetricsCollector` and - # have public constructor with akka.actor.ActorSystem parameter. - # Will try to load in the following order of priority: - # 1) configured custom collector 2) internal `SigarMetricsCollector` 3) internal `JmxMetricsCollector` - provider = "" - # Try all 3 available collector providers, or else fail on the configured custom collector provider. - fallback = true - # How often metrics are sampled on a node. - # Shorter interval will collect the metrics more often. - # Also controls frequency of the metrics publication to the node system event bus. - sample-interval = 3s - # How often a node publishes metrics information to the other nodes in the cluster. - # Shorter interval will publish the metrics gossip more often. - gossip-interval = 3s - # How quickly the exponential weighting of past data is decayed compared to - # new data. Set lower to increase the bias toward newer values. - # The relevance of each data sample is halved for every passing half-life - # duration, i.e. after 4 times the half-life, a data sample’s relevance is - # reduced to 6% of its original relevance. The initial relevance of a data - # sample is given by 1 – 0.5 ^ (collect-interval / half-life). - # See http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average - moving-average-half-life = 12s + # Full path of dispatcher configuration key. + # Use "" for default key `akka.actor.default-dispatcher`. + dispatcher = "" + # How long should any actor wait before starting the periodic tasks. + periodic-tasks-initial-delay = 1s + # Sigar native library extract location. + # Use per-application-instance scoped location, such as program working directory. + native-library-extract-folder = ${user.dir}"/native" + # Metrics supervisor actor. + supervisor { + # Actor name. Example name space: /system/cluster-metrics + name = "cluster-metrics" + # Supervision strategy. + strategy { + # + # FQCN of class providing `akka.actor.SupervisorStrategy`. + # Must have a constructor with signature `(com.typesafe.config.Config)`. + # Default metrics strategy provider is a configurable extension of `OneForOneStrategy`. + provider = "akka.cluster.metrics.ClusterMetricsStrategy" + # + # Configuration of the default strategy provider. + # Replace with custom settings when overriding the provider. + configuration = { + # Log restart attempts. + loggingEnabled = true + # Child actor restart-on-failure window. + withinTimeRange = 3s + # Maximum number of restart attempts before child actor is stopped. + maxNrOfRetries = 3 + } } + } + # Metrics collector actor. + collector { + # Enable or disable metrics collector for load-balancing nodes. + # Metrics collection can also be controlled at runtime by sending control messages + # to /system/cluster-metrics actor: `akka.cluster.metrics.{CollectionStartMessage,CollectionStopMessage}` + enabled = on + # FQCN of the metrics collector implementation. + # It must implement `akka.cluster.metrics.MetricsCollector` and + # have public constructor with akka.actor.ActorSystem parameter. + # Will try to load in the following order of priority: + # 1) configured custom collector 2) internal `SigarMetricsCollector` 3) internal `JmxMetricsCollector` + provider = "" + # Try all 3 available collector providers, or else fail on the configured custom collector provider. + fallback = true + # How often metrics are sampled on a node. + # Shorter interval will collect the metrics more often. + # Also controls frequency of the metrics publication to the node system event bus. + sample-interval = 3s + # How often a node publishes metrics information to the other nodes in the cluster. + # Shorter interval will publish the metrics gossip more often. + gossip-interval = 3s + # How quickly the exponential weighting of past data is decayed compared to + # new data. Set lower to increase the bias toward newer values. + # The relevance of each data sample is halved for every passing half-life + # duration, i.e. after 4 times the half-life, a data sample’s relevance is + # reduced to 6% of its original relevance. The initial relevance of a data + # sample is given by 1 – 0.5 ^ (collect-interval / half-life). + # See http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average + moving-average-half-life = 12s + } } # Cluster metrics extension serializers and routers. akka.actor { - # Protobuf serializer for remote cluster metrics messages. - serializers { - akka-cluster-metrics = "akka.cluster.metrics.protobuf.MessageSerializer" - } - # Interface binding for remote cluster metrics messages. - serialization-bindings { - "akka.cluster.metrics.ClusterMetricsMessage" = akka-cluster-metrics - } - # Globally unique metrics extension serializer identifier. - serialization-identifiers { - "akka.cluster.metrics.protobuf.MessageSerializer" = 10 - } - # Provide routing of messages based on cluster metrics. - router.type-mapping { - cluster-metrics-adaptive-pool = "akka.cluster.metrics.AdaptiveLoadBalancingPool" - cluster-metrics-adaptive-group = "akka.cluster.metrics.AdaptiveLoadBalancingGroup" - } + # Protobuf serializer for remote cluster metrics messages. + serializers { + akka-cluster-metrics = "akka.cluster.metrics.protobuf.MessageSerializer" + } + # Interface binding for remote cluster metrics messages. + serialization-bindings { + "akka.cluster.metrics.ClusterMetricsMessage" = akka-cluster-metrics + "akka.cluster.metrics.AdaptiveLoadBalancingPool" = akka-cluster-metrics + "akka.cluster.metrics.MixMetricsSelector" = akka-cluster-metrics + "akka.cluster.metrics.CpuMetricsSelector$" = akka-cluster-metrics + "akka.cluster.metrics.HeapMetricsSelector$" = akka-cluster-metrics + "akka.cluster.metrics.SystemLoadAverageMetricsSelector$" = akka-cluster-metrics + } + # Globally unique metrics extension serializer identifier. + serialization-identifiers { + "akka.cluster.metrics.protobuf.MessageSerializer" = 10 + } + # Provide routing of messages based on cluster metrics. + router.type-mapping { + cluster-metrics-adaptive-pool = "akka.cluster.metrics.AdaptiveLoadBalancingPool" + cluster-metrics-adaptive-group = "akka.cluster.metrics.AdaptiveLoadBalancingGroup" + } } diff --git a/akka-cluster-metrics/src/main/scala/akka/cluster/metrics/protobuf/MessageSerializer.scala b/akka-cluster-metrics/src/main/scala/akka/cluster/metrics/protobuf/MessageSerializer.scala index d03138b082..5a6d514fcc 100644 --- a/akka-cluster-metrics/src/main/scala/akka/cluster/metrics/protobuf/MessageSerializer.scala +++ b/akka-cluster-metrics/src/main/scala/akka/cluster/metrics/protobuf/MessageSerializer.scala @@ -7,17 +7,20 @@ package akka.cluster.metrics.protobuf import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, ObjectOutputStream } import java.util.zip.{ GZIPInputStream, GZIPOutputStream } import java.{ lang ⇒ jl } + import akka.actor.{ Address, ExtendedActorSystem } import akka.cluster.metrics.protobuf.msg.{ ClusterMetricsMessages ⇒ cm } -import akka.cluster.metrics.{ EWMA, Metric, MetricsGossip, MetricsGossipEnvelope, NodeMetrics } -import akka.serialization.BaseSerializer +import akka.cluster.metrics._ +import akka.serialization.{ BaseSerializer, SerializationExtension, SerializerWithStringManifest } import akka.util.ClassLoaderObjectInputStream import akka.protobuf.{ ByteString, MessageLite } + import scala.annotation.tailrec import scala.collection.JavaConverters.{ asJavaIterableConverter, asScalaBufferConverter, setAsJavaSetConverter } -import akka.serialization.SerializerWithStringManifest import java.io.NotSerializableException +import akka.dispatch.Dispatchers + /** * Protobuf serializer for [[akka.cluster.metrics.ClusterMetricsMessage]] types. */ @@ -26,16 +29,32 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS private final val BufferSize = 4 * 1024 private val MetricsGossipEnvelopeManifest = "a" + private val AdaptiveLoadBalancingPoolManifest = "b" + private val MixMetricsSelectorManifest = "c" + private val CpuMetricsSelectorManifest = "d" + private val HeapMetricsSelectorManifest = "e" + private val SystemLoadAverageMetricsSelectorManifest = "f" + + private lazy val serialization = SerializationExtension(system) override def manifest(obj: AnyRef): String = obj match { - case _: MetricsGossipEnvelope ⇒ MetricsGossipEnvelopeManifest + case _: MetricsGossipEnvelope ⇒ MetricsGossipEnvelopeManifest + case _: AdaptiveLoadBalancingPool ⇒ AdaptiveLoadBalancingPoolManifest + case _: MixMetricsSelector ⇒ MixMetricsSelectorManifest + case CpuMetricsSelector ⇒ CpuMetricsSelectorManifest + case HeapMetricsSelector ⇒ HeapMetricsSelectorManifest + case SystemLoadAverageMetricsSelector ⇒ SystemLoadAverageMetricsSelectorManifest case _ ⇒ throw new IllegalArgumentException(s"Can't serialize object of type ${obj.getClass} in [${getClass.getName}]") } override def toBinary(obj: AnyRef): Array[Byte] = obj match { - case m: MetricsGossipEnvelope ⇒ - compress(metricsGossipEnvelopeToProto(m)) + case m: MetricsGossipEnvelope ⇒ compress(metricsGossipEnvelopeToProto(m)) + case alb: AdaptiveLoadBalancingPool ⇒ adaptiveLoadBalancingPoolToBinary(alb) + case mms: MixMetricsSelector ⇒ mixMetricSelectorToBinary(mms) + case CpuMetricsSelector ⇒ Array.emptyByteArray + case HeapMetricsSelector ⇒ Array.emptyByteArray + case SystemLoadAverageMetricsSelector ⇒ Array.emptyByteArray case _ ⇒ throw new IllegalArgumentException(s"Can't serialize object of type ${obj.getClass} in [${getClass.getName}]") } @@ -66,7 +85,12 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS } override def fromBinary(bytes: Array[Byte], manifest: String): AnyRef = manifest match { - case MetricsGossipEnvelopeManifest ⇒ metricsGossipEnvelopeFromBinary(bytes) + case MetricsGossipEnvelopeManifest ⇒ metricsGossipEnvelopeFromBinary(bytes) + case AdaptiveLoadBalancingPoolManifest ⇒ adaptiveLoadBalancingPoolFromBinary(bytes) + case MixMetricsSelectorManifest ⇒ mixMetricSelectorFromBinary(bytes) + case CpuMetricsSelectorManifest ⇒ CpuMetricsSelector + case HeapMetricsSelectorManifest ⇒ HeapMetricsSelector + case SystemLoadAverageMetricsSelectorManifest ⇒ SystemLoadAverageMetricsSelector case _ ⇒ throw new NotSerializableException( s"Unimplemented deserialization of message with manifest [$manifest] in [${getClass.getName}") } @@ -77,6 +101,48 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS case _ ⇒ throw new IllegalArgumentException(s"Address [$address] could not be serialized: host or port missing.") } + def adaptiveLoadBalancingPoolToBinary(alb: AdaptiveLoadBalancingPool): Array[Byte] = { + val builder = cm.AdaptiveLoadBalancingPool.newBuilder() + if (alb.metricsSelector != MixMetricsSelector) { + builder.setMetricsSelector(metricsSelectorToProto(alb.metricsSelector)) + } + if (alb.routerDispatcher != Dispatchers.DefaultDispatcherId) { + builder.setRouterDispatcher(alb.routerDispatcher) + } + builder.setNrOfInstances(alb.nrOfInstances) + builder.setUsePoolDispatcher(alb.usePoolDispatcher) + + builder.build().toByteArray + } + + private def metricsSelectorToProto(selector: MetricsSelector): cm.MetricsSelector = { + val builder = cm.MetricsSelector.newBuilder() + val serializer = serialization.findSerializerFor(selector) + + builder.setData(ByteString.copyFrom(serializer.toBinary(selector))) + .setSerializerId(serializer.identifier) + + serializer match { + case ser2: SerializerWithStringManifest ⇒ + val manifest = ser2.manifest(selector) + builder.setManifest(manifest) + case _ ⇒ + builder.setManifest( + if (serializer.includeManifest) selector.getClass.getName + else "" + ) + } + builder.build() + } + + private def mixMetricSelectorToBinary(mms: MixMetricsSelector): Array[Byte] = { + val builder = cm.MixMetricsSelector.newBuilder() + mms.selectors.foreach { selector ⇒ + builder.addSelectors(metricsSelectorToProto(selector)) + } + builder.build().toByteArray + } + @volatile private var protocolCache: String = null @volatile @@ -200,4 +266,39 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS MetricsGossipEnvelope(addressFromProto(envelope.getFrom), MetricsGossip(nodeMetrics), envelope.getReply) } + def adaptiveLoadBalancingPoolFromBinary(bytes: Array[Byte]): AdaptiveLoadBalancingPool = { + val alb = cm.AdaptiveLoadBalancingPool.parseFrom(bytes) + + val selector = + if (alb.hasMetricsSelector) { + val ms = alb.getMetricsSelector + serialization.deserialize( + ms.getData.toByteArray, + ms.getSerializerId, + ms.getManifest + ).get.asInstanceOf[MetricsSelector] + } else MixMetricsSelector + + AdaptiveLoadBalancingPool( + metricsSelector = selector, + nrOfInstances = alb.getNrOfInstances, + routerDispatcher = if (alb.hasRouterDispatcher) alb.getRouterDispatcher else Dispatchers.DefaultDispatcherId, + usePoolDispatcher = alb.getUsePoolDispatcher + ) + } + + def mixMetricSelectorFromBinary(bytes: Array[Byte]): MixMetricsSelector = { + val mm = cm.MixMetricsSelector.parseFrom(bytes) + MixMetricsSelector(mm.getSelectorsList.asScala + // should be safe because we serialized only the right subtypes of MetricsSelector + .map(s ⇒ metricSelectorFromProto(s).asInstanceOf[CapacityMetricsSelector]).toIndexedSeq) + } + + def metricSelectorFromProto(selector: cm.MetricsSelector): MetricsSelector = + serialization.deserialize( + selector.getData.toByteArray, + selector.getSerializerId, + selector.getManifest + ).get.asInstanceOf[MetricsSelector] + } diff --git a/akka-cluster-metrics/src/test/scala/akka/cluster/metrics/protobuf/MessageSerializerSpec.scala b/akka-cluster-metrics/src/test/scala/akka/cluster/metrics/protobuf/MessageSerializerSpec.scala index 670f9e5551..bd5b35149e 100644 --- a/akka-cluster-metrics/src/test/scala/akka/cluster/metrics/protobuf/MessageSerializerSpec.scala +++ b/akka-cluster-metrics/src/test/scala/akka/cluster/metrics/protobuf/MessageSerializerSpec.scala @@ -4,18 +4,19 @@ package akka.cluster.metrics.protobuf -import akka.actor.{ ExtendedActorSystem, Address } +import akka.actor.{ Address, ExtendedActorSystem } import akka.testkit.AkkaSpec import akka.cluster.MemberStatus -import akka.cluster.metrics.MetricsGossip -import akka.cluster.metrics.NodeMetrics -import akka.cluster.metrics.Metric -import akka.cluster.metrics.EWMA +import akka.cluster.metrics._ import akka.cluster.TestMember -import akka.cluster.metrics.MetricsGossipEnvelope class MessageSerializerSpec extends AkkaSpec( - "akka.actor.provider = cluster") { + """ + akka.actor.provider = cluster + akka.actor.serialize-messages = off + akka.actor.allow-java-serialization = off + akka.actor.enable-additional-serialization-bindings = on + """) { val serializer = new MessageSerializer(system.asInstanceOf[ExtendedActorSystem]) @@ -56,4 +57,18 @@ class MessageSerializerSpec extends AkkaSpec( } } + + "AdaptiveLoadBalancingPool" must { + "be serializable" in { + val simplePool = AdaptiveLoadBalancingPool() + checkSerialization(simplePool) + + val complicatedPool = AdaptiveLoadBalancingPool( + metricsSelector = MixMetricsSelector(Vector(CpuMetricsSelector, HeapMetricsSelector, SystemLoadAverageMetricsSelector)), + nrOfInstances = 7, + routerDispatcher = "my-dispatcher", + usePoolDispatcher = true) + checkSerialization(complicatedPool) + } + } } diff --git a/akka-cluster/src/main/java/akka/cluster/protobuf/msg/ClusterMessages.java b/akka-cluster/src/main/java/akka/cluster/protobuf/msg/ClusterMessages.java index e642bd267e..9e8b1ce958 100644 --- a/akka-cluster/src/main/java/akka/cluster/protobuf/msg/ClusterMessages.java +++ b/akka-cluster/src/main/java/akka/cluster/protobuf/msg/ClusterMessages.java @@ -11711,6 +11711,2135 @@ public final class ClusterMessages { // @@protoc_insertion_point(class_scope:UniqueAddress) } + public interface ClusterRouterPoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required .Pool pool = 1; + /** + * required .Pool pool = 1; + */ + boolean hasPool(); + /** + * required .Pool pool = 1; + */ + akka.cluster.protobuf.msg.ClusterMessages.Pool getPool(); + /** + * required .Pool pool = 1; + */ + akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder getPoolOrBuilder(); + + // required .ClusterRouterPoolSettings settings = 2; + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + boolean hasSettings(); + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings getSettings(); + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder getSettingsOrBuilder(); + } + /** + * Protobuf type {@code ClusterRouterPool} + */ + public static final class ClusterRouterPool extends + akka.protobuf.GeneratedMessage + implements ClusterRouterPoolOrBuilder { + // Use ClusterRouterPool.newBuilder() to construct. + private ClusterRouterPool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClusterRouterPool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClusterRouterPool defaultInstance; + public static ClusterRouterPool getDefaultInstance() { + return defaultInstance; + } + + public ClusterRouterPool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClusterRouterPool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = pool_.toBuilder(); + } + pool_ = input.readMessage(akka.cluster.protobuf.msg.ClusterMessages.Pool.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(pool_); + pool_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = settings_.toBuilder(); + } + settings_ = input.readMessage(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(settings_); + settings_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.class, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public ClusterRouterPool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new ClusterRouterPool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required .Pool pool = 1; + public static final int POOL_FIELD_NUMBER = 1; + private akka.cluster.protobuf.msg.ClusterMessages.Pool pool_; + /** + * required .Pool pool = 1; + */ + public boolean hasPool() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .Pool pool = 1; + */ + public akka.cluster.protobuf.msg.ClusterMessages.Pool getPool() { + return pool_; + } + /** + * required .Pool pool = 1; + */ + public akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder getPoolOrBuilder() { + return pool_; + } + + // required .ClusterRouterPoolSettings settings = 2; + public static final int SETTINGS_FIELD_NUMBER = 2; + private akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings settings_; + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public boolean hasSettings() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings getSettings() { + return settings_; + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder getSettingsOrBuilder() { + return settings_; + } + + private void initFields() { + pool_ = akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance(); + settings_ = akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasPool()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasSettings()) { + memoizedIsInitialized = 0; + return false; + } + if (!getPool().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getSettings().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, pool_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(2, settings_); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, pool_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(2, settings_); + } + 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 akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ClusterRouterPool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.class, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.Builder.class); + } + + // Construct using akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getPoolFieldBuilder(); + getSettingsFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (poolBuilder_ == null) { + pool_ = akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance(); + } else { + poolBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (settingsBuilder_ == null) { + settings_ = akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance(); + } else { + settingsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPool_descriptor; + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool getDefaultInstanceForType() { + return akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.getDefaultInstance(); + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool build() { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool buildPartial() { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool result = new akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (poolBuilder_ == null) { + result.pool_ = pool_; + } else { + result.pool_ = poolBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + if (settingsBuilder_ == null) { + result.settings_ = settings_; + } else { + result.settings_ = settingsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool) { + return mergeFrom((akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool other) { + if (other == akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool.getDefaultInstance()) return this; + if (other.hasPool()) { + mergePool(other.getPool()); + } + if (other.hasSettings()) { + mergeSettings(other.getSettings()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasPool()) { + + return false; + } + if (!hasSettings()) { + + return false; + } + if (!getPool().isInitialized()) { + + return false; + } + if (!getSettings().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required .Pool pool = 1; + private akka.cluster.protobuf.msg.ClusterMessages.Pool pool_ = akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.Pool, akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder, akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder> poolBuilder_; + /** + * required .Pool pool = 1; + */ + public boolean hasPool() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .Pool pool = 1; + */ + public akka.cluster.protobuf.msg.ClusterMessages.Pool getPool() { + if (poolBuilder_ == null) { + return pool_; + } else { + return poolBuilder_.getMessage(); + } + } + /** + * required .Pool pool = 1; + */ + public Builder setPool(akka.cluster.protobuf.msg.ClusterMessages.Pool value) { + if (poolBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + pool_ = value; + onChanged(); + } else { + poolBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Pool pool = 1; + */ + public Builder setPool( + akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder builderForValue) { + if (poolBuilder_ == null) { + pool_ = builderForValue.build(); + onChanged(); + } else { + poolBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Pool pool = 1; + */ + public Builder mergePool(akka.cluster.protobuf.msg.ClusterMessages.Pool value) { + if (poolBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + pool_ != akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance()) { + pool_ = + akka.cluster.protobuf.msg.ClusterMessages.Pool.newBuilder(pool_).mergeFrom(value).buildPartial(); + } else { + pool_ = value; + } + onChanged(); + } else { + poolBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Pool pool = 1; + */ + public Builder clearPool() { + if (poolBuilder_ == null) { + pool_ = akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance(); + onChanged(); + } else { + poolBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * required .Pool pool = 1; + */ + public akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder getPoolBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getPoolFieldBuilder().getBuilder(); + } + /** + * required .Pool pool = 1; + */ + public akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder getPoolOrBuilder() { + if (poolBuilder_ != null) { + return poolBuilder_.getMessageOrBuilder(); + } else { + return pool_; + } + } + /** + * required .Pool pool = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.Pool, akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder, akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder> + getPoolFieldBuilder() { + if (poolBuilder_ == null) { + poolBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.Pool, akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder, akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder>( + pool_, + getParentForChildren(), + isClean()); + pool_ = null; + } + return poolBuilder_; + } + + // required .ClusterRouterPoolSettings settings = 2; + private akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings settings_ = akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder> settingsBuilder_; + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public boolean hasSettings() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings getSettings() { + if (settingsBuilder_ == null) { + return settings_; + } else { + return settingsBuilder_.getMessage(); + } + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public Builder setSettings(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings value) { + if (settingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + settings_ = value; + onChanged(); + } else { + settingsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public Builder setSettings( + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder builderForValue) { + if (settingsBuilder_ == null) { + settings_ = builderForValue.build(); + onChanged(); + } else { + settingsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public Builder mergeSettings(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings value) { + if (settingsBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + settings_ != akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance()) { + settings_ = + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.newBuilder(settings_).mergeFrom(value).buildPartial(); + } else { + settings_ = value; + } + onChanged(); + } else { + settingsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public Builder clearSettings() { + if (settingsBuilder_ == null) { + settings_ = akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance(); + onChanged(); + } else { + settingsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder getSettingsBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getSettingsFieldBuilder().getBuilder(); + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder getSettingsOrBuilder() { + if (settingsBuilder_ != null) { + return settingsBuilder_.getMessageOrBuilder(); + } else { + return settings_; + } + } + /** + * required .ClusterRouterPoolSettings settings = 2; + */ + private akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder> + getSettingsFieldBuilder() { + if (settingsBuilder_ == null) { + settingsBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder>( + settings_, + getParentForChildren(), + isClean()); + settings_ = null; + } + return settingsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:ClusterRouterPool) + } + + static { + defaultInstance = new ClusterRouterPool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:ClusterRouterPool) + } + + public interface PoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required uint32 serializerId = 1; + /** + * required uint32 serializerId = 1; + */ + boolean hasSerializerId(); + /** + * required uint32 serializerId = 1; + */ + int getSerializerId(); + + // required string manifest = 2; + /** + * required string manifest = 2; + */ + boolean hasManifest(); + /** + * required string manifest = 2; + */ + java.lang.String getManifest(); + /** + * required string manifest = 2; + */ + akka.protobuf.ByteString + getManifestBytes(); + + // required bytes data = 3; + /** + * required bytes data = 3; + */ + boolean hasData(); + /** + * required bytes data = 3; + */ + akka.protobuf.ByteString getData(); + } + /** + * Protobuf type {@code Pool} + */ + public static final class Pool extends + akka.protobuf.GeneratedMessage + implements PoolOrBuilder { + // Use Pool.newBuilder() to construct. + private Pool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private Pool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final Pool defaultInstance; + public static Pool getDefaultInstance() { + return defaultInstance; + } + + public Pool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Pool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + serializerId_ = input.readUInt32(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + manifest_ = input.readBytes(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + data_ = input.readBytes(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_Pool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_Pool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.Pool.class, akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public Pool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new Pool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required uint32 serializerId = 1; + public static final int SERIALIZERID_FIELD_NUMBER = 1; + private int serializerId_; + /** + * required uint32 serializerId = 1; + */ + public boolean hasSerializerId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 serializerId = 1; + */ + public int getSerializerId() { + return serializerId_; + } + + // required string manifest = 2; + public static final int MANIFEST_FIELD_NUMBER = 2; + private java.lang.Object manifest_; + /** + * required string manifest = 2; + */ + public boolean hasManifest() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string manifest = 2; + */ + public java.lang.String getManifest() { + java.lang.Object ref = manifest_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + manifest_ = s; + } + return s; + } + } + /** + * required string manifest = 2; + */ + public akka.protobuf.ByteString + getManifestBytes() { + java.lang.Object ref = manifest_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // required bytes data = 3; + public static final int DATA_FIELD_NUMBER = 3; + private akka.protobuf.ByteString data_; + /** + * required bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes data = 3; + */ + public akka.protobuf.ByteString getData() { + return data_; + } + + private void initFields() { + serializerId_ = 0; + manifest_ = ""; + data_ = akka.protobuf.ByteString.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasSerializerId()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasManifest()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasData()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt32(1, serializerId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getManifestBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, data_); + } + 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 += akka.protobuf.CodedOutputStream + .computeUInt32Size(1, serializerId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(2, getManifestBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(3, data_); + } + 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 akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.Pool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.protobuf.msg.ClusterMessages.Pool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Pool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.protobuf.msg.ClusterMessages.PoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_Pool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_Pool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.Pool.class, akka.cluster.protobuf.msg.ClusterMessages.Pool.Builder.class); + } + + // Construct using akka.cluster.protobuf.msg.ClusterMessages.Pool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + serializerId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + manifest_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + data_ = akka.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_Pool_descriptor; + } + + public akka.cluster.protobuf.msg.ClusterMessages.Pool getDefaultInstanceForType() { + return akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance(); + } + + public akka.cluster.protobuf.msg.ClusterMessages.Pool build() { + akka.cluster.protobuf.msg.ClusterMessages.Pool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.protobuf.msg.ClusterMessages.Pool buildPartial() { + akka.cluster.protobuf.msg.ClusterMessages.Pool result = new akka.cluster.protobuf.msg.ClusterMessages.Pool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.serializerId_ = serializerId_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.manifest_ = manifest_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.data_ = data_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.protobuf.msg.ClusterMessages.Pool) { + return mergeFrom((akka.cluster.protobuf.msg.ClusterMessages.Pool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.protobuf.msg.ClusterMessages.Pool other) { + if (other == akka.cluster.protobuf.msg.ClusterMessages.Pool.getDefaultInstance()) return this; + if (other.hasSerializerId()) { + setSerializerId(other.getSerializerId()); + } + if (other.hasManifest()) { + bitField0_ |= 0x00000002; + manifest_ = other.manifest_; + onChanged(); + } + if (other.hasData()) { + setData(other.getData()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasSerializerId()) { + + return false; + } + if (!hasManifest()) { + + return false; + } + if (!hasData()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.protobuf.msg.ClusterMessages.Pool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.protobuf.msg.ClusterMessages.Pool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required uint32 serializerId = 1; + private int serializerId_ ; + /** + * required uint32 serializerId = 1; + */ + public boolean hasSerializerId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 serializerId = 1; + */ + public int getSerializerId() { + return serializerId_; + } + /** + * required uint32 serializerId = 1; + */ + public Builder setSerializerId(int value) { + bitField0_ |= 0x00000001; + serializerId_ = value; + onChanged(); + return this; + } + /** + * required uint32 serializerId = 1; + */ + public Builder clearSerializerId() { + bitField0_ = (bitField0_ & ~0x00000001); + serializerId_ = 0; + onChanged(); + return this; + } + + // required string manifest = 2; + private java.lang.Object manifest_ = ""; + /** + * required string manifest = 2; + */ + public boolean hasManifest() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string manifest = 2; + */ + public java.lang.String getManifest() { + java.lang.Object ref = manifest_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + manifest_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * required string manifest = 2; + */ + public akka.protobuf.ByteString + getManifestBytes() { + java.lang.Object ref = manifest_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * required string manifest = 2; + */ + public Builder setManifest( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + manifest_ = value; + onChanged(); + return this; + } + /** + * required string manifest = 2; + */ + public Builder clearManifest() { + bitField0_ = (bitField0_ & ~0x00000002); + manifest_ = getDefaultInstance().getManifest(); + onChanged(); + return this; + } + /** + * required string manifest = 2; + */ + public Builder setManifestBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + manifest_ = value; + onChanged(); + return this; + } + + // required bytes data = 3; + private akka.protobuf.ByteString data_ = akka.protobuf.ByteString.EMPTY; + /** + * required bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes data = 3; + */ + public akka.protobuf.ByteString getData() { + return data_; + } + /** + * required bytes data = 3; + */ + public Builder setData(akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + data_ = value; + onChanged(); + return this; + } + /** + * required bytes data = 3; + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000004); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:Pool) + } + + static { + defaultInstance = new Pool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:Pool) + } + + public interface ClusterRouterPoolSettingsOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required uint32 totalInstances = 1; + /** + * required uint32 totalInstances = 1; + */ + boolean hasTotalInstances(); + /** + * required uint32 totalInstances = 1; + */ + int getTotalInstances(); + + // required uint32 maxInstancesPerNode = 2; + /** + * required uint32 maxInstancesPerNode = 2; + */ + boolean hasMaxInstancesPerNode(); + /** + * required uint32 maxInstancesPerNode = 2; + */ + int getMaxInstancesPerNode(); + + // required bool allowLocalRoutees = 3; + /** + * required bool allowLocalRoutees = 3; + */ + boolean hasAllowLocalRoutees(); + /** + * required bool allowLocalRoutees = 3; + */ + boolean getAllowLocalRoutees(); + + // optional string useRole = 4; + /** + * optional string useRole = 4; + */ + boolean hasUseRole(); + /** + * optional string useRole = 4; + */ + java.lang.String getUseRole(); + /** + * optional string useRole = 4; + */ + akka.protobuf.ByteString + getUseRoleBytes(); + } + /** + * Protobuf type {@code ClusterRouterPoolSettings} + */ + public static final class ClusterRouterPoolSettings extends + akka.protobuf.GeneratedMessage + implements ClusterRouterPoolSettingsOrBuilder { + // Use ClusterRouterPoolSettings.newBuilder() to construct. + private ClusterRouterPoolSettings(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClusterRouterPoolSettings(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClusterRouterPoolSettings defaultInstance; + public static ClusterRouterPoolSettings getDefaultInstance() { + return defaultInstance; + } + + public ClusterRouterPoolSettings getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClusterRouterPoolSettings( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + totalInstances_ = input.readUInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + maxInstancesPerNode_ = input.readUInt32(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + allowLocalRoutees_ = input.readBool(); + break; + } + case 34: { + bitField0_ |= 0x00000008; + useRole_ = input.readBytes(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPoolSettings_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPoolSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.class, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public ClusterRouterPoolSettings parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new ClusterRouterPoolSettings(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required uint32 totalInstances = 1; + public static final int TOTALINSTANCES_FIELD_NUMBER = 1; + private int totalInstances_; + /** + * required uint32 totalInstances = 1; + */ + public boolean hasTotalInstances() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 totalInstances = 1; + */ + public int getTotalInstances() { + return totalInstances_; + } + + // required uint32 maxInstancesPerNode = 2; + public static final int MAXINSTANCESPERNODE_FIELD_NUMBER = 2; + private int maxInstancesPerNode_; + /** + * required uint32 maxInstancesPerNode = 2; + */ + public boolean hasMaxInstancesPerNode() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 maxInstancesPerNode = 2; + */ + public int getMaxInstancesPerNode() { + return maxInstancesPerNode_; + } + + // required bool allowLocalRoutees = 3; + public static final int ALLOWLOCALROUTEES_FIELD_NUMBER = 3; + private boolean allowLocalRoutees_; + /** + * required bool allowLocalRoutees = 3; + */ + public boolean hasAllowLocalRoutees() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bool allowLocalRoutees = 3; + */ + public boolean getAllowLocalRoutees() { + return allowLocalRoutees_; + } + + // optional string useRole = 4; + public static final int USEROLE_FIELD_NUMBER = 4; + private java.lang.Object useRole_; + /** + * optional string useRole = 4; + */ + public boolean hasUseRole() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional string useRole = 4; + */ + public java.lang.String getUseRole() { + java.lang.Object ref = useRole_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + useRole_ = s; + } + return s; + } + } + /** + * optional string useRole = 4; + */ + public akka.protobuf.ByteString + getUseRoleBytes() { + java.lang.Object ref = useRole_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + useRole_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + private void initFields() { + totalInstances_ = 0; + maxInstancesPerNode_ = 0; + allowLocalRoutees_ = false; + useRole_ = ""; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasTotalInstances()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasMaxInstancesPerNode()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasAllowLocalRoutees()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt32(1, totalInstances_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeUInt32(2, maxInstancesPerNode_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBool(3, allowLocalRoutees_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeBytes(4, getUseRoleBytes()); + } + 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 += akka.protobuf.CodedOutputStream + .computeUInt32Size(1, totalInstances_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeUInt32Size(2, maxInstancesPerNode_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeBoolSize(3, allowLocalRoutees_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(4, getUseRoleBytes()); + } + 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 akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ClusterRouterPoolSettings} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettingsOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPoolSettings_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPoolSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.class, akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.Builder.class); + } + + // Construct using akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + totalInstances_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + maxInstancesPerNode_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + allowLocalRoutees_ = false; + bitField0_ = (bitField0_ & ~0x00000004); + useRole_ = ""; + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.cluster.protobuf.msg.ClusterMessages.internal_static_ClusterRouterPoolSettings_descriptor; + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings getDefaultInstanceForType() { + return akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance(); + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings build() { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings buildPartial() { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings result = new akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.totalInstances_ = totalInstances_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.maxInstancesPerNode_ = maxInstancesPerNode_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.allowLocalRoutees_ = allowLocalRoutees_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.useRole_ = useRole_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings) { + return mergeFrom((akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings other) { + if (other == akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings.getDefaultInstance()) return this; + if (other.hasTotalInstances()) { + setTotalInstances(other.getTotalInstances()); + } + if (other.hasMaxInstancesPerNode()) { + setMaxInstancesPerNode(other.getMaxInstancesPerNode()); + } + if (other.hasAllowLocalRoutees()) { + setAllowLocalRoutees(other.getAllowLocalRoutees()); + } + if (other.hasUseRole()) { + bitField0_ |= 0x00000008; + useRole_ = other.useRole_; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasTotalInstances()) { + + return false; + } + if (!hasMaxInstancesPerNode()) { + + return false; + } + if (!hasAllowLocalRoutees()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.cluster.protobuf.msg.ClusterMessages.ClusterRouterPoolSettings) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required uint32 totalInstances = 1; + private int totalInstances_ ; + /** + * required uint32 totalInstances = 1; + */ + public boolean hasTotalInstances() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 totalInstances = 1; + */ + public int getTotalInstances() { + return totalInstances_; + } + /** + * required uint32 totalInstances = 1; + */ + public Builder setTotalInstances(int value) { + bitField0_ |= 0x00000001; + totalInstances_ = value; + onChanged(); + return this; + } + /** + * required uint32 totalInstances = 1; + */ + public Builder clearTotalInstances() { + bitField0_ = (bitField0_ & ~0x00000001); + totalInstances_ = 0; + onChanged(); + return this; + } + + // required uint32 maxInstancesPerNode = 2; + private int maxInstancesPerNode_ ; + /** + * required uint32 maxInstancesPerNode = 2; + */ + public boolean hasMaxInstancesPerNode() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 maxInstancesPerNode = 2; + */ + public int getMaxInstancesPerNode() { + return maxInstancesPerNode_; + } + /** + * required uint32 maxInstancesPerNode = 2; + */ + public Builder setMaxInstancesPerNode(int value) { + bitField0_ |= 0x00000002; + maxInstancesPerNode_ = value; + onChanged(); + return this; + } + /** + * required uint32 maxInstancesPerNode = 2; + */ + public Builder clearMaxInstancesPerNode() { + bitField0_ = (bitField0_ & ~0x00000002); + maxInstancesPerNode_ = 0; + onChanged(); + return this; + } + + // required bool allowLocalRoutees = 3; + private boolean allowLocalRoutees_ ; + /** + * required bool allowLocalRoutees = 3; + */ + public boolean hasAllowLocalRoutees() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bool allowLocalRoutees = 3; + */ + public boolean getAllowLocalRoutees() { + return allowLocalRoutees_; + } + /** + * required bool allowLocalRoutees = 3; + */ + public Builder setAllowLocalRoutees(boolean value) { + bitField0_ |= 0x00000004; + allowLocalRoutees_ = value; + onChanged(); + return this; + } + /** + * required bool allowLocalRoutees = 3; + */ + public Builder clearAllowLocalRoutees() { + bitField0_ = (bitField0_ & ~0x00000004); + allowLocalRoutees_ = false; + onChanged(); + return this; + } + + // optional string useRole = 4; + private java.lang.Object useRole_ = ""; + /** + * optional string useRole = 4; + */ + public boolean hasUseRole() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional string useRole = 4; + */ + public java.lang.String getUseRole() { + java.lang.Object ref = useRole_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + useRole_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string useRole = 4; + */ + public akka.protobuf.ByteString + getUseRoleBytes() { + java.lang.Object ref = useRole_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + useRole_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string useRole = 4; + */ + public Builder setUseRole( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + useRole_ = value; + onChanged(); + return this; + } + /** + * optional string useRole = 4; + */ + public Builder clearUseRole() { + bitField0_ = (bitField0_ & ~0x00000008); + useRole_ = getDefaultInstance().getUseRole(); + onChanged(); + return this; + } + /** + * optional string useRole = 4; + */ + public Builder setUseRoleBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + useRole_ = value; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:ClusterRouterPoolSettings) + } + + static { + defaultInstance = new ClusterRouterPoolSettings(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:ClusterRouterPoolSettings) + } + private static akka.protobuf.Descriptors.Descriptor internal_static_Join_descriptor; private static @@ -11781,6 +13910,21 @@ public final class ClusterMessages { private static akka.protobuf.GeneratedMessage.FieldAccessorTable internal_static_UniqueAddress_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_ClusterRouterPool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_ClusterRouterPool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_Pool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_Pool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_ClusterRouterPoolSettings_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_ClusterRouterPoolSettings_fieldAccessorTable; public static akka.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -11820,12 +13964,18 @@ public final class ClusterMessages { "(\t\022\020\n\010hostname\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010pr" + "otocol\030\004 \001(\t\"E\n\rUniqueAddress\022\031\n\007address" + "\030\001 \002(\0132\010.Address\022\013\n\003uid\030\002 \002(\r\022\014\n\004uid2\030\003 ", - "\001(\r*D\n\022ReachabilityStatus\022\r\n\tReachable\020\000" + - "\022\017\n\013Unreachable\020\001\022\016\n\nTerminated\020\002*b\n\014Mem" + - "berStatus\022\013\n\007Joining\020\000\022\006\n\002Up\020\001\022\013\n\007Leavin" + - "g\020\002\022\013\n\007Exiting\020\003\022\010\n\004Down\020\004\022\013\n\007Removed\020\005\022" + - "\014\n\010WeaklyUp\020\006B\035\n\031akka.cluster.protobuf.m" + - "sgH\001" + "\001(\r\"V\n\021ClusterRouterPool\022\023\n\004pool\030\001 \002(\0132\005" + + ".Pool\022,\n\010settings\030\002 \002(\0132\032.ClusterRouterP" + + "oolSettings\"<\n\004Pool\022\024\n\014serializerId\030\001 \002(" + + "\r\022\020\n\010manifest\030\002 \002(\t\022\014\n\004data\030\003 \002(\014\"|\n\031Clu" + + "sterRouterPoolSettings\022\026\n\016totalInstances" + + "\030\001 \002(\r\022\033\n\023maxInstancesPerNode\030\002 \002(\r\022\031\n\021a" + + "llowLocalRoutees\030\003 \002(\010\022\017\n\007useRole\030\004 \001(\t*" + + "D\n\022ReachabilityStatus\022\r\n\tReachable\020\000\022\017\n\013" + + "Unreachable\020\001\022\016\n\nTerminated\020\002*b\n\014MemberS" + + "tatus\022\013\n\007Joining\020\000\022\006\n\002Up\020\001\022\013\n\007Leaving\020\002\022", + "\013\n\007Exiting\020\003\022\010\n\004Down\020\004\022\013\n\007Removed\020\005\022\014\n\010W" + + "eaklyUp\020\006B\035\n\031akka.cluster.protobuf.msgH\001" }; akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -11916,6 +14066,24 @@ public final class ClusterMessages { akka.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_UniqueAddress_descriptor, new java.lang.String[] { "Address", "Uid", "Uid2", }); + internal_static_ClusterRouterPool_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_ClusterRouterPool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_ClusterRouterPool_descriptor, + new java.lang.String[] { "Pool", "Settings", }); + internal_static_Pool_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_Pool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_Pool_descriptor, + new java.lang.String[] { "SerializerId", "Manifest", "Data", }); + internal_static_ClusterRouterPoolSettings_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_ClusterRouterPoolSettings_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_ClusterRouterPoolSettings_descriptor, + new java.lang.String[] { "TotalInstances", "MaxInstancesPerNode", "AllowLocalRoutees", "UseRole", }); return null; } }; diff --git a/akka-cluster/src/main/protobuf/ClusterMessages.proto b/akka-cluster/src/main/protobuf/ClusterMessages.proto index 4d64878209..fa4358dfac 100644 --- a/akka-cluster/src/main/protobuf/ClusterMessages.proto +++ b/akka-cluster/src/main/protobuf/ClusterMessages.proto @@ -202,3 +202,25 @@ message UniqueAddress { // 64 bit uids but with backward wire compatibility optional uint32 uid2 = 3; } + +/**************************************** + * Cluster routing + ****************************************/ + + message ClusterRouterPool { + required Pool pool = 1; + required ClusterRouterPoolSettings settings = 2; + } + + message Pool { + required uint32 serializerId = 1; + required string manifest = 2; + required bytes data = 3; + } + + message ClusterRouterPoolSettings { + required uint32 totalInstances = 1; + required uint32 maxInstancesPerNode = 2; + required bool allowLocalRoutees = 3; + optional string useRole = 4; + } \ No newline at end of file diff --git a/akka-cluster/src/main/resources/reference.conf b/akka-cluster/src/main/resources/reference.conf index ed2336ec37..d53aece519 100644 --- a/akka-cluster/src/main/resources/reference.conf +++ b/akka-cluster/src/main/resources/reference.conf @@ -247,6 +247,7 @@ akka { serialization-bindings { "akka.cluster.ClusterMessage" = akka-cluster + "akka.cluster.routing.ClusterRouterPool" = akka-cluster } serialization-identifiers { diff --git a/akka-cluster/src/main/scala/akka/cluster/protobuf/ClusterMessageSerializer.scala b/akka-cluster/src/main/scala/akka/cluster/protobuf/ClusterMessageSerializer.scala index 2fcd7f589a..23c8834001 100644 --- a/akka-cluster/src/main/scala/akka/cluster/protobuf/ClusterMessageSerializer.scala +++ b/akka-cluster/src/main/scala/akka/cluster/protobuf/ClusterMessageSerializer.scala @@ -3,15 +3,13 @@ */ package akka.cluster.protobuf -import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, ObjectOutputStream } +import java.io.{ ByteArrayInputStream, ByteArrayOutputStream } import java.util.zip.{ GZIPInputStream, GZIPOutputStream } -import java.{ lang ⇒ jl } import akka.actor.{ Address, ExtendedActorSystem } import akka.cluster._ import akka.cluster.protobuf.msg.{ ClusterMessages ⇒ cm } -import akka.serialization.BaseSerializer -import akka.util.ClassLoaderObjectInputStream +import akka.serialization.{ BaseSerializer, SerializationExtension, SerializerWithStringManifest } import akka.protobuf.{ ByteString, MessageLite } import scala.annotation.tailrec @@ -19,18 +17,23 @@ import scala.collection.JavaConverters._ import scala.collection.immutable import scala.concurrent.duration.Deadline import java.io.NotSerializableException + import akka.cluster.InternalClusterAction.ExitingConfirmed +import akka.cluster.routing.{ ClusterRouterPool, ClusterRouterPoolSettings } +import akka.routing.Pool /** * Protobuf serializer of cluster messages. */ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer { + private lazy val serialization = SerializationExtension(system) + private final val BufferSize = 1024 * 4 // must be lazy because serializer is initialized from Cluster extension constructor private lazy val GossipTimeToLive = Cluster(system).settings.GossipTimeToLive - private val fromBinaryMap = collection.immutable.HashMap[Class[_ <: ClusterMessage], Array[Byte] ⇒ AnyRef]( + private val fromBinaryMap = collection.immutable.HashMap[Class[_], Array[Byte] ⇒ AnyRef]( classOf[InternalClusterAction.Join] → { case bytes ⇒ val m = cm.Join.parseFrom(bytes) @@ -52,7 +55,9 @@ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSeri classOf[ClusterHeartbeatSender.HeartbeatRsp] → (bytes ⇒ ClusterHeartbeatSender.HeartbeatRsp(uniqueAddressFromBinary(bytes))), classOf[ExitingConfirmed] → (bytes ⇒ InternalClusterAction.ExitingConfirmed(uniqueAddressFromBinary(bytes))), classOf[GossipStatus] → gossipStatusFromBinary, - classOf[GossipEnvelope] → gossipEnvelopeFromBinary) + classOf[GossipEnvelope] → gossipEnvelopeFromBinary, + classOf[ClusterRouterPool] → clusterRouterPoolFromBinary + ) def includeManifest: Boolean = true @@ -69,6 +74,7 @@ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSeri case InternalClusterAction.InitJoinAck(address) ⇒ addressToProtoByteArray(address) case InternalClusterAction.InitJoinNack(address) ⇒ addressToProtoByteArray(address) case InternalClusterAction.ExitingConfirmed(node) ⇒ uniqueAddressToProtoByteArray(node) + case rp: ClusterRouterPool ⇒ clusterRouterPoolToProtoByteArray(rp) case _ ⇒ throw new IllegalArgumentException(s"Can't serialize object of type ${obj.getClass}") } @@ -99,10 +105,11 @@ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSeri } def fromBinary(bytes: Array[Byte], clazz: Option[Class[_]]): AnyRef = clazz match { - case Some(c) ⇒ fromBinaryMap.get(c.asInstanceOf[Class[ClusterMessage]]) match { - case Some(f) ⇒ f(bytes) - case None ⇒ throw new NotSerializableException(s"Unimplemented deserialization of message class $c in ClusterSerializer") - } + case Some(c) ⇒ + fromBinaryMap.get(c.asInstanceOf[Class[ClusterMessage]]) match { + case Some(f) ⇒ f(bytes) + case None ⇒ throw new NotSerializableException(s"Unimplemented deserialization of message class $c in ClusterSerializer") + } case _ ⇒ throw new IllegalArgumentException("Need a cluster message class to be able to deserialize bytes in ClusterSerializer") } @@ -130,6 +137,40 @@ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSeri private def uniqueAddressToProtoByteArray(uniqueAddress: UniqueAddress): Array[Byte] = uniqueAddressToProto(uniqueAddress).build.toByteArray + private def clusterRouterPoolToProtoByteArray(rp: ClusterRouterPool): Array[Byte] = { + val builder = cm.ClusterRouterPool.newBuilder() + builder.setPool(poolToProto(rp.local)) + builder.setSettings(clusterRouterPoolSettingsToProto(rp.settings)) + builder.build().toByteArray + } + + private def poolToProto(pool: Pool): cm.Pool = { + val builder = cm.Pool.newBuilder() + val serializer = serialization.findSerializerFor(pool) + builder.setSerializerId(serializer.identifier) + .setData(ByteString.copyFrom(serializer.toBinary(pool))) + serializer match { + case ser: SerializerWithStringManifest ⇒ + builder.setManifest(ser.manifest(pool)) + case _ ⇒ + builder.setManifest( + if (serializer.includeManifest) pool.getClass.getName + else "" + ) + } + builder.build() + } + + private def clusterRouterPoolSettingsToProto(settings: ClusterRouterPoolSettings): cm.ClusterRouterPoolSettings = { + val builder = cm.ClusterRouterPoolSettings.newBuilder() + builder.setAllowLocalRoutees(settings.allowLocalRoutees) + .setMaxInstancesPerNode(settings.maxInstancesPerNode) + .setTotalInstances(settings.totalInstances) + + settings.useRole.foreach(builder.setUseRole) + builder.build() + } + // we don't care about races here since it's just a cache @volatile private var protocolCache: String = _ @@ -323,4 +364,26 @@ class ClusterMessageSerializer(val system: ExtendedActorSystem) extends BaseSeri status.getVersion, status.getAllHashesList.asScala.toVector)) + def clusterRouterPoolFromBinary(bytes: Array[Byte]): ClusterRouterPool = { + val crp = cm.ClusterRouterPool.parseFrom(bytes) + + ClusterRouterPool( + poolFromProto(crp.getPool), + clusterRouterPoolSettingsFromProto(crp.getSettings) + ) + } + + private def poolFromProto(pool: cm.Pool): Pool = { + serialization.deserialize(pool.getData.toByteArray, pool.getSerializerId, pool.getManifest).get.asInstanceOf[Pool] + } + + private def clusterRouterPoolSettingsFromProto(crps: cm.ClusterRouterPoolSettings): ClusterRouterPoolSettings = { + ClusterRouterPoolSettings( + totalInstances = crps.getTotalInstances, + maxInstancesPerNode = crps.getMaxInstancesPerNode, + allowLocalRoutees = crps.getAllowLocalRoutees, + useRole = if (crps.hasUseRole) Some(crps.getUseRole) else None + ) + } + } diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala index 21afd0f3c5..c867015686 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala @@ -49,36 +49,45 @@ object ClusterRoundRobinMultiJvmSpec extends MultiNodeConfig { commonConfig(debugConfig(on = false). withFallback(ConfigFactory.parseString(""" - akka.actor.deployment { - /router1 { - router = round-robin-pool - cluster { - enabled = on - max-nr-of-instances-per-node = 2 - max-total-nr-of-instances = 10 + akka.actor { + allow-java-serialization = off + serialize-creators = off + serialize-messages = off + serialization-bindings { + "akka.cluster.routing.ClusterRoundRobinMultiJvmSpec$Reply" = test-message-serializer + } + + deployment { + /router1 { + router = round-robin-pool + cluster { + enabled = on + max-nr-of-instances-per-node = 2 + max-total-nr-of-instances = 10 + } } - } - /router3 { - router = round-robin-pool - cluster { - enabled = on - max-nr-of-instances-per-node = 1 - max-total-nr-of-instances = 10 - allow-local-routees = off + /router3 { + router = round-robin-pool + cluster { + enabled = on + max-nr-of-instances-per-node = 1 + max-total-nr-of-instances = 10 + allow-local-routees = off + } } - } - /router4 { - router = round-robin-group - routees.paths = ["/user/myserviceA", "/user/myserviceB"] - cluster.enabled = on - cluster.max-total-nr-of-instances = 10 - } - /router5 { - router = round-robin-pool - cluster { - enabled = on - use-role = a - max-total-nr-of-instances = 10 + /router4 { + router = round-robin-group + routees.paths = ["/user/myserviceA", "/user/myserviceB"] + cluster.enabled = on + cluster.max-total-nr-of-instances = 10 + } + /router5 { + router = round-robin-pool + cluster { + enabled = on + use-role = a + max-total-nr-of-instances = 10 + } } } } diff --git a/akka-cluster/src/test/resources/reference.conf b/akka-cluster/src/test/resources/reference.conf index 44cc294c18..235ef1f6eb 100644 --- a/akka-cluster/src/test/resources/reference.conf +++ b/akka-cluster/src/test/resources/reference.conf @@ -1,7 +1,7 @@ akka { actor { serialize-creators = on - serialize-messages = on + serialize-messages = off warn-about-java-serializer-usage = off } } diff --git a/akka-cluster/src/test/scala/akka/cluster/SerializationChecksSpec.scala b/akka-cluster/src/test/scala/akka/cluster/SerializationChecksSpec.scala deleted file mode 100644 index 02a61b11c4..0000000000 --- a/akka-cluster/src/test/scala/akka/cluster/SerializationChecksSpec.scala +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (C) 2009-2017 Lightbend Inc. - */ -package akka.cluster - -import akka.testkit.AkkaSpec - -class SerializationChecksSpec extends AkkaSpec { - - "Settings serialize-messages and serialize-creators" must { - - "be on for tests" in { - system.settings.SerializeAllCreators should ===(true) - system.settings.SerializeAllMessages should ===(true) - } - - } - -} diff --git a/akka-cluster/src/test/scala/akka/cluster/protobuf/ClusterMessageSerializerSpec.scala b/akka-cluster/src/test/scala/akka/cluster/protobuf/ClusterMessageSerializerSpec.scala index 88dfef4ac7..4bc6c998f0 100644 --- a/akka-cluster/src/test/scala/akka/cluster/protobuf/ClusterMessageSerializerSpec.scala +++ b/akka-cluster/src/test/scala/akka/cluster/protobuf/ClusterMessageSerializerSpec.scala @@ -4,7 +4,10 @@ package akka.cluster.protobuf import akka.cluster._ -import akka.actor.{ ExtendedActorSystem, Address } +import akka.actor.{ Address, ExtendedActorSystem } +import akka.cluster.routing.{ ClusterRouterPool, ClusterRouterPoolSettings } +import akka.routing.{ DefaultOptimalSizeExploringResizer, RoundRobinPool } + import collection.immutable.SortedSet import akka.testkit.AkkaSpec @@ -73,4 +76,20 @@ class ClusterMessageSerializerSpec extends AkkaSpec( checkSerialization(InternalClusterAction.Welcome(uniqueAddress, g2)) } } + "Cluster router pool" must { + "be serializable" in { + checkSerialization(ClusterRouterPool( + RoundRobinPool( + nrOfInstances = 4 + ), + ClusterRouterPoolSettings( + totalInstances = 2, + maxInstancesPerNode = 5, + allowLocalRoutees = true, + useRole = Some("Richard, Duke of Gloucester") + ) + )) + } + } + } diff --git a/akka-remote/src/main/java/akka/remote/WireFormats.java b/akka-remote/src/main/java/akka/remote/WireFormats.java index 4aa63bebde..e46d0669a0 100644 --- a/akka-remote/src/main/java/akka/remote/WireFormats.java +++ b/akka-remote/src/main/java/akka/remote/WireFormats.java @@ -138,6 +138,138 @@ public final class WireFormats { // @@protoc_insertion_point(enum_scope:CommandType) } + /** + * Protobuf enum {@code TimeUnit} + * + *
+   **
+   * java.util.concurrent.TimeUnit enum
+   * 
+ */ + public enum TimeUnit + implements akka.protobuf.ProtocolMessageEnum { + /** + * NANOSECONDS = 1; + */ + NANOSECONDS(0, 1), + /** + * MICROSECONDS = 2; + */ + MICROSECONDS(1, 2), + /** + * MILLISECONDS = 3; + */ + MILLISECONDS(2, 3), + /** + * SECONDS = 4; + */ + SECONDS(3, 4), + /** + * MINUTES = 5; + */ + MINUTES(4, 5), + /** + * HOURS = 6; + */ + HOURS(5, 6), + /** + * DAYS = 7; + */ + DAYS(6, 7), + ; + + /** + * NANOSECONDS = 1; + */ + public static final int NANOSECONDS_VALUE = 1; + /** + * MICROSECONDS = 2; + */ + public static final int MICROSECONDS_VALUE = 2; + /** + * MILLISECONDS = 3; + */ + public static final int MILLISECONDS_VALUE = 3; + /** + * SECONDS = 4; + */ + public static final int SECONDS_VALUE = 4; + /** + * MINUTES = 5; + */ + public static final int MINUTES_VALUE = 5; + /** + * HOURS = 6; + */ + public static final int HOURS_VALUE = 6; + /** + * DAYS = 7; + */ + public static final int DAYS_VALUE = 7; + + + public final int getNumber() { return value; } + + public static TimeUnit valueOf(int value) { + switch (value) { + case 1: return NANOSECONDS; + case 2: return MICROSECONDS; + case 3: return MILLISECONDS; + case 4: return SECONDS; + case 5: return MINUTES; + case 6: return HOURS; + case 7: return DAYS; + default: return null; + } + } + + public static akka.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static akka.protobuf.Internal.EnumLiteMap + internalValueMap = + new akka.protobuf.Internal.EnumLiteMap() { + public TimeUnit findValueByNumber(int number) { + return TimeUnit.valueOf(number); + } + }; + + public final akka.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(index); + } + public final akka.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final akka.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return akka.remote.WireFormats.getDescriptor().getEnumTypes().get(1); + } + + private static final TimeUnit[] VALUES = values(); + + public static TimeUnit valueOf( + akka.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int index; + private final int value; + + private TimeUnit(int index, int value) { + this.index = index; + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:TimeUnit) + } + public interface AckAndEnvelopeContainerOrBuilder extends akka.protobuf.MessageOrBuilder { @@ -6263,6 +6395,91 @@ public final class WireFormats { */ akka.protobuf.ByteString getDispatcherBytes(); + + // optional int32 scopeSerializerId = 6; + /** + * optional int32 scopeSerializerId = 6; + * + *
+     * older wire protocol: hardcoded class used to look up serializer
+     * newer wire protocol: serializer id and manifest available for each
+     * 
+ */ + boolean hasScopeSerializerId(); + /** + * optional int32 scopeSerializerId = 6; + * + *
+     * older wire protocol: hardcoded class used to look up serializer
+     * newer wire protocol: serializer id and manifest available for each
+     * 
+ */ + int getScopeSerializerId(); + + // optional string scopeManifest = 7; + /** + * optional string scopeManifest = 7; + */ + boolean hasScopeManifest(); + /** + * optional string scopeManifest = 7; + */ + java.lang.String getScopeManifest(); + /** + * optional string scopeManifest = 7; + */ + akka.protobuf.ByteString + getScopeManifestBytes(); + + // optional int32 configSerializerId = 8; + /** + * optional int32 configSerializerId = 8; + */ + boolean hasConfigSerializerId(); + /** + * optional int32 configSerializerId = 8; + */ + int getConfigSerializerId(); + + // optional string configManifest = 9; + /** + * optional string configManifest = 9; + */ + boolean hasConfigManifest(); + /** + * optional string configManifest = 9; + */ + java.lang.String getConfigManifest(); + /** + * optional string configManifest = 9; + */ + akka.protobuf.ByteString + getConfigManifestBytes(); + + // optional int32 routerConfigSerializerId = 10; + /** + * optional int32 routerConfigSerializerId = 10; + */ + boolean hasRouterConfigSerializerId(); + /** + * optional int32 routerConfigSerializerId = 10; + */ + int getRouterConfigSerializerId(); + + // optional string routerConfigManifest = 11; + /** + * optional string routerConfigManifest = 11; + */ + boolean hasRouterConfigManifest(); + /** + * optional string routerConfigManifest = 11; + */ + java.lang.String getRouterConfigManifest(); + /** + * optional string routerConfigManifest = 11; + */ + akka.protobuf.ByteString + getRouterConfigManifestBytes(); } /** * Protobuf type {@code DeployData} @@ -6345,6 +6562,36 @@ public final class WireFormats { dispatcher_ = input.readBytes(); break; } + case 48: { + bitField0_ |= 0x00000020; + scopeSerializerId_ = input.readInt32(); + break; + } + case 58: { + bitField0_ |= 0x00000040; + scopeManifest_ = input.readBytes(); + break; + } + case 64: { + bitField0_ |= 0x00000080; + configSerializerId_ = input.readInt32(); + break; + } + case 74: { + bitField0_ |= 0x00000100; + configManifest_ = input.readBytes(); + break; + } + case 80: { + bitField0_ |= 0x00000200; + routerConfigSerializerId_ = input.readInt32(); + break; + } + case 90: { + bitField0_ |= 0x00000400; + routerConfigManifest_ = input.readBytes(); + break; + } } } } catch (akka.protobuf.InvalidProtocolBufferException e) { @@ -6519,12 +6766,205 @@ public final class WireFormats { } } + // optional int32 scopeSerializerId = 6; + public static final int SCOPESERIALIZERID_FIELD_NUMBER = 6; + private int scopeSerializerId_; + /** + * optional int32 scopeSerializerId = 6; + * + *
+     * older wire protocol: hardcoded class used to look up serializer
+     * newer wire protocol: serializer id and manifest available for each
+     * 
+ */ + public boolean hasScopeSerializerId() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional int32 scopeSerializerId = 6; + * + *
+     * older wire protocol: hardcoded class used to look up serializer
+     * newer wire protocol: serializer id and manifest available for each
+     * 
+ */ + public int getScopeSerializerId() { + return scopeSerializerId_; + } + + // optional string scopeManifest = 7; + public static final int SCOPEMANIFEST_FIELD_NUMBER = 7; + private java.lang.Object scopeManifest_; + /** + * optional string scopeManifest = 7; + */ + public boolean hasScopeManifest() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * optional string scopeManifest = 7; + */ + public java.lang.String getScopeManifest() { + java.lang.Object ref = scopeManifest_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + scopeManifest_ = s; + } + return s; + } + } + /** + * optional string scopeManifest = 7; + */ + public akka.protobuf.ByteString + getScopeManifestBytes() { + java.lang.Object ref = scopeManifest_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + scopeManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // optional int32 configSerializerId = 8; + public static final int CONFIGSERIALIZERID_FIELD_NUMBER = 8; + private int configSerializerId_; + /** + * optional int32 configSerializerId = 8; + */ + public boolean hasConfigSerializerId() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional int32 configSerializerId = 8; + */ + public int getConfigSerializerId() { + return configSerializerId_; + } + + // optional string configManifest = 9; + public static final int CONFIGMANIFEST_FIELD_NUMBER = 9; + private java.lang.Object configManifest_; + /** + * optional string configManifest = 9; + */ + public boolean hasConfigManifest() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional string configManifest = 9; + */ + public java.lang.String getConfigManifest() { + java.lang.Object ref = configManifest_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + configManifest_ = s; + } + return s; + } + } + /** + * optional string configManifest = 9; + */ + public akka.protobuf.ByteString + getConfigManifestBytes() { + java.lang.Object ref = configManifest_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + configManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // optional int32 routerConfigSerializerId = 10; + public static final int ROUTERCONFIGSERIALIZERID_FIELD_NUMBER = 10; + private int routerConfigSerializerId_; + /** + * optional int32 routerConfigSerializerId = 10; + */ + public boolean hasRouterConfigSerializerId() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + /** + * optional int32 routerConfigSerializerId = 10; + */ + public int getRouterConfigSerializerId() { + return routerConfigSerializerId_; + } + + // optional string routerConfigManifest = 11; + public static final int ROUTERCONFIGMANIFEST_FIELD_NUMBER = 11; + private java.lang.Object routerConfigManifest_; + /** + * optional string routerConfigManifest = 11; + */ + public boolean hasRouterConfigManifest() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + /** + * optional string routerConfigManifest = 11; + */ + public java.lang.String getRouterConfigManifest() { + java.lang.Object ref = routerConfigManifest_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + routerConfigManifest_ = s; + } + return s; + } + } + /** + * optional string routerConfigManifest = 11; + */ + public akka.protobuf.ByteString + getRouterConfigManifestBytes() { + java.lang.Object ref = routerConfigManifest_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerConfigManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + private void initFields() { path_ = ""; config_ = akka.protobuf.ByteString.EMPTY; routerConfig_ = akka.protobuf.ByteString.EMPTY; scope_ = akka.protobuf.ByteString.EMPTY; dispatcher_ = ""; + scopeSerializerId_ = 0; + scopeManifest_ = ""; + configSerializerId_ = 0; + configManifest_ = ""; + routerConfigSerializerId_ = 0; + routerConfigManifest_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -6557,6 +6997,24 @@ public final class WireFormats { if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeBytes(5, getDispatcherBytes()); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeInt32(6, scopeSerializerId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeBytes(7, getScopeManifestBytes()); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeInt32(8, configSerializerId_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + output.writeBytes(9, getConfigManifestBytes()); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + output.writeInt32(10, routerConfigSerializerId_); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + output.writeBytes(11, getRouterConfigManifestBytes()); + } getUnknownFields().writeTo(output); } @@ -6586,6 +7044,30 @@ public final class WireFormats { size += akka.protobuf.CodedOutputStream .computeBytesSize(5, getDispatcherBytes()); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += akka.protobuf.CodedOutputStream + .computeInt32Size(6, scopeSerializerId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(7, getScopeManifestBytes()); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += akka.protobuf.CodedOutputStream + .computeInt32Size(8, configSerializerId_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(9, getConfigManifestBytes()); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + size += akka.protobuf.CodedOutputStream + .computeInt32Size(10, routerConfigSerializerId_); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(11, getRouterConfigManifestBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -6717,6 +7199,18 @@ public final class WireFormats { bitField0_ = (bitField0_ & ~0x00000008); dispatcher_ = ""; bitField0_ = (bitField0_ & ~0x00000010); + scopeSerializerId_ = 0; + bitField0_ = (bitField0_ & ~0x00000020); + scopeManifest_ = ""; + bitField0_ = (bitField0_ & ~0x00000040); + configSerializerId_ = 0; + bitField0_ = (bitField0_ & ~0x00000080); + configManifest_ = ""; + bitField0_ = (bitField0_ & ~0x00000100); + routerConfigSerializerId_ = 0; + bitField0_ = (bitField0_ & ~0x00000200); + routerConfigManifest_ = ""; + bitField0_ = (bitField0_ & ~0x00000400); return this; } @@ -6765,6 +7259,30 @@ public final class WireFormats { to_bitField0_ |= 0x00000010; } result.dispatcher_ = dispatcher_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.scopeSerializerId_ = scopeSerializerId_; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000040; + } + result.scopeManifest_ = scopeManifest_; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000080; + } + result.configSerializerId_ = configSerializerId_; + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000100; + } + result.configManifest_ = configManifest_; + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000200; + } + result.routerConfigSerializerId_ = routerConfigSerializerId_; + if (((from_bitField0_ & 0x00000400) == 0x00000400)) { + to_bitField0_ |= 0x00000400; + } + result.routerConfigManifest_ = routerConfigManifest_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -6800,6 +7318,30 @@ public final class WireFormats { dispatcher_ = other.dispatcher_; onChanged(); } + if (other.hasScopeSerializerId()) { + setScopeSerializerId(other.getScopeSerializerId()); + } + if (other.hasScopeManifest()) { + bitField0_ |= 0x00000040; + scopeManifest_ = other.scopeManifest_; + onChanged(); + } + if (other.hasConfigSerializerId()) { + setConfigSerializerId(other.getConfigSerializerId()); + } + if (other.hasConfigManifest()) { + bitField0_ |= 0x00000100; + configManifest_ = other.configManifest_; + onChanged(); + } + if (other.hasRouterConfigSerializerId()) { + setRouterConfigSerializerId(other.getRouterConfigSerializerId()); + } + if (other.hasRouterConfigManifest()) { + bitField0_ |= 0x00000400; + routerConfigManifest_ = other.routerConfigManifest_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -7087,6 +7629,347 @@ public final class WireFormats { return this; } + // optional int32 scopeSerializerId = 6; + private int scopeSerializerId_ ; + /** + * optional int32 scopeSerializerId = 6; + * + *
+       * older wire protocol: hardcoded class used to look up serializer
+       * newer wire protocol: serializer id and manifest available for each
+       * 
+ */ + public boolean hasScopeSerializerId() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional int32 scopeSerializerId = 6; + * + *
+       * older wire protocol: hardcoded class used to look up serializer
+       * newer wire protocol: serializer id and manifest available for each
+       * 
+ */ + public int getScopeSerializerId() { + return scopeSerializerId_; + } + /** + * optional int32 scopeSerializerId = 6; + * + *
+       * older wire protocol: hardcoded class used to look up serializer
+       * newer wire protocol: serializer id and manifest available for each
+       * 
+ */ + public Builder setScopeSerializerId(int value) { + bitField0_ |= 0x00000020; + scopeSerializerId_ = value; + onChanged(); + return this; + } + /** + * optional int32 scopeSerializerId = 6; + * + *
+       * older wire protocol: hardcoded class used to look up serializer
+       * newer wire protocol: serializer id and manifest available for each
+       * 
+ */ + public Builder clearScopeSerializerId() { + bitField0_ = (bitField0_ & ~0x00000020); + scopeSerializerId_ = 0; + onChanged(); + return this; + } + + // optional string scopeManifest = 7; + private java.lang.Object scopeManifest_ = ""; + /** + * optional string scopeManifest = 7; + */ + public boolean hasScopeManifest() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * optional string scopeManifest = 7; + */ + public java.lang.String getScopeManifest() { + java.lang.Object ref = scopeManifest_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + scopeManifest_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string scopeManifest = 7; + */ + public akka.protobuf.ByteString + getScopeManifestBytes() { + java.lang.Object ref = scopeManifest_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + scopeManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string scopeManifest = 7; + */ + public Builder setScopeManifest( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000040; + scopeManifest_ = value; + onChanged(); + return this; + } + /** + * optional string scopeManifest = 7; + */ + public Builder clearScopeManifest() { + bitField0_ = (bitField0_ & ~0x00000040); + scopeManifest_ = getDefaultInstance().getScopeManifest(); + onChanged(); + return this; + } + /** + * optional string scopeManifest = 7; + */ + public Builder setScopeManifestBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000040; + scopeManifest_ = value; + onChanged(); + return this; + } + + // optional int32 configSerializerId = 8; + private int configSerializerId_ ; + /** + * optional int32 configSerializerId = 8; + */ + public boolean hasConfigSerializerId() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional int32 configSerializerId = 8; + */ + public int getConfigSerializerId() { + return configSerializerId_; + } + /** + * optional int32 configSerializerId = 8; + */ + public Builder setConfigSerializerId(int value) { + bitField0_ |= 0x00000080; + configSerializerId_ = value; + onChanged(); + return this; + } + /** + * optional int32 configSerializerId = 8; + */ + public Builder clearConfigSerializerId() { + bitField0_ = (bitField0_ & ~0x00000080); + configSerializerId_ = 0; + onChanged(); + return this; + } + + // optional string configManifest = 9; + private java.lang.Object configManifest_ = ""; + /** + * optional string configManifest = 9; + */ + public boolean hasConfigManifest() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional string configManifest = 9; + */ + public java.lang.String getConfigManifest() { + java.lang.Object ref = configManifest_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + configManifest_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string configManifest = 9; + */ + public akka.protobuf.ByteString + getConfigManifestBytes() { + java.lang.Object ref = configManifest_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + configManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string configManifest = 9; + */ + public Builder setConfigManifest( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + configManifest_ = value; + onChanged(); + return this; + } + /** + * optional string configManifest = 9; + */ + public Builder clearConfigManifest() { + bitField0_ = (bitField0_ & ~0x00000100); + configManifest_ = getDefaultInstance().getConfigManifest(); + onChanged(); + return this; + } + /** + * optional string configManifest = 9; + */ + public Builder setConfigManifestBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + configManifest_ = value; + onChanged(); + return this; + } + + // optional int32 routerConfigSerializerId = 10; + private int routerConfigSerializerId_ ; + /** + * optional int32 routerConfigSerializerId = 10; + */ + public boolean hasRouterConfigSerializerId() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + /** + * optional int32 routerConfigSerializerId = 10; + */ + public int getRouterConfigSerializerId() { + return routerConfigSerializerId_; + } + /** + * optional int32 routerConfigSerializerId = 10; + */ + public Builder setRouterConfigSerializerId(int value) { + bitField0_ |= 0x00000200; + routerConfigSerializerId_ = value; + onChanged(); + return this; + } + /** + * optional int32 routerConfigSerializerId = 10; + */ + public Builder clearRouterConfigSerializerId() { + bitField0_ = (bitField0_ & ~0x00000200); + routerConfigSerializerId_ = 0; + onChanged(); + return this; + } + + // optional string routerConfigManifest = 11; + private java.lang.Object routerConfigManifest_ = ""; + /** + * optional string routerConfigManifest = 11; + */ + public boolean hasRouterConfigManifest() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + /** + * optional string routerConfigManifest = 11; + */ + public java.lang.String getRouterConfigManifest() { + java.lang.Object ref = routerConfigManifest_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + routerConfigManifest_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string routerConfigManifest = 11; + */ + public akka.protobuf.ByteString + getRouterConfigManifestBytes() { + java.lang.Object ref = routerConfigManifest_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerConfigManifest_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string routerConfigManifest = 11; + */ + public Builder setRouterConfigManifest( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000400; + routerConfigManifest_ = value; + onChanged(); + return this; + } + /** + * optional string routerConfigManifest = 11; + */ + public Builder clearRouterConfigManifest() { + bitField0_ = (bitField0_ & ~0x00000400); + routerConfigManifest_ = getDefaultInstance().getRouterConfigManifest(); + onChanged(); + return this; + } + /** + * optional string routerConfigManifest = 11; + */ + public Builder setRouterConfigManifestBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000400; + routerConfigManifest_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:DeployData) } @@ -10006,6 +10889,6064 @@ public final class WireFormats { // @@protoc_insertion_point(class_scope:AddressData) } + public interface FiniteDurationOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required int64 value = 1; + /** + * required int64 value = 1; + */ + boolean hasValue(); + /** + * required int64 value = 1; + */ + long getValue(); + + // required .TimeUnit unit = 2; + /** + * required .TimeUnit unit = 2; + */ + boolean hasUnit(); + /** + * required .TimeUnit unit = 2; + */ + akka.remote.WireFormats.TimeUnit getUnit(); + } + /** + * Protobuf type {@code FiniteDuration} + */ + public static final class FiniteDuration extends + akka.protobuf.GeneratedMessage + implements FiniteDurationOrBuilder { + // Use FiniteDuration.newBuilder() to construct. + private FiniteDuration(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private FiniteDuration(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final FiniteDuration defaultInstance; + public static FiniteDuration getDefaultInstance() { + return defaultInstance; + } + + public FiniteDuration getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private FiniteDuration( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + value_ = input.readInt64(); + break; + } + case 16: { + int rawValue = input.readEnum(); + akka.remote.WireFormats.TimeUnit value = akka.remote.WireFormats.TimeUnit.valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(2, rawValue); + } else { + bitField0_ |= 0x00000002; + unit_ = value; + } + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_FiniteDuration_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_FiniteDuration_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.FiniteDuration.class, akka.remote.WireFormats.FiniteDuration.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public FiniteDuration parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new FiniteDuration(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required int64 value = 1; + public static final int VALUE_FIELD_NUMBER = 1; + private long value_; + /** + * required int64 value = 1; + */ + public boolean hasValue() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required int64 value = 1; + */ + public long getValue() { + return value_; + } + + // required .TimeUnit unit = 2; + public static final int UNIT_FIELD_NUMBER = 2; + private akka.remote.WireFormats.TimeUnit unit_; + /** + * required .TimeUnit unit = 2; + */ + public boolean hasUnit() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .TimeUnit unit = 2; + */ + public akka.remote.WireFormats.TimeUnit getUnit() { + return unit_; + } + + private void initFields() { + value_ = 0L; + unit_ = akka.remote.WireFormats.TimeUnit.NANOSECONDS; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasValue()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasUnit()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt64(1, value_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeEnum(2, unit_.getNumber()); + } + 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 += akka.protobuf.CodedOutputStream + .computeInt64Size(1, value_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeEnumSize(2, unit_.getNumber()); + } + 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 akka.remote.WireFormats.FiniteDuration parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.FiniteDuration parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.FiniteDuration parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.FiniteDuration parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.FiniteDuration prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code FiniteDuration} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.FiniteDurationOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_FiniteDuration_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_FiniteDuration_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.FiniteDuration.class, akka.remote.WireFormats.FiniteDuration.Builder.class); + } + + // Construct using akka.remote.WireFormats.FiniteDuration.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + value_ = 0L; + bitField0_ = (bitField0_ & ~0x00000001); + unit_ = akka.remote.WireFormats.TimeUnit.NANOSECONDS; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_FiniteDuration_descriptor; + } + + public akka.remote.WireFormats.FiniteDuration getDefaultInstanceForType() { + return akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } + + public akka.remote.WireFormats.FiniteDuration build() { + akka.remote.WireFormats.FiniteDuration result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.FiniteDuration buildPartial() { + akka.remote.WireFormats.FiniteDuration result = new akka.remote.WireFormats.FiniteDuration(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.value_ = value_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.unit_ = unit_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.FiniteDuration) { + return mergeFrom((akka.remote.WireFormats.FiniteDuration)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.FiniteDuration other) { + if (other == akka.remote.WireFormats.FiniteDuration.getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); + } + if (other.hasUnit()) { + setUnit(other.getUnit()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasValue()) { + + return false; + } + if (!hasUnit()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.FiniteDuration parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.FiniteDuration) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required int64 value = 1; + private long value_ ; + /** + * required int64 value = 1; + */ + public boolean hasValue() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required int64 value = 1; + */ + public long getValue() { + return value_; + } + /** + * required int64 value = 1; + */ + public Builder setValue(long value) { + bitField0_ |= 0x00000001; + value_ = value; + onChanged(); + return this; + } + /** + * required int64 value = 1; + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0L; + onChanged(); + return this; + } + + // required .TimeUnit unit = 2; + private akka.remote.WireFormats.TimeUnit unit_ = akka.remote.WireFormats.TimeUnit.NANOSECONDS; + /** + * required .TimeUnit unit = 2; + */ + public boolean hasUnit() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .TimeUnit unit = 2; + */ + public akka.remote.WireFormats.TimeUnit getUnit() { + return unit_; + } + /** + * required .TimeUnit unit = 2; + */ + public Builder setUnit(akka.remote.WireFormats.TimeUnit value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + unit_ = value; + onChanged(); + return this; + } + /** + * required .TimeUnit unit = 2; + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = akka.remote.WireFormats.TimeUnit.NANOSECONDS; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:FiniteDuration) + } + + static { + defaultInstance = new FiniteDuration(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:FiniteDuration) + } + + public interface RemoteScopeOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required .AddressData node = 1; + /** + * required .AddressData node = 1; + */ + boolean hasNode(); + /** + * required .AddressData node = 1; + */ + akka.remote.WireFormats.AddressData getNode(); + /** + * required .AddressData node = 1; + */ + akka.remote.WireFormats.AddressDataOrBuilder getNodeOrBuilder(); + } + /** + * Protobuf type {@code RemoteScope} + */ + public static final class RemoteScope extends + akka.protobuf.GeneratedMessage + implements RemoteScopeOrBuilder { + // Use RemoteScope.newBuilder() to construct. + private RemoteScope(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private RemoteScope(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final RemoteScope defaultInstance; + public static RemoteScope getDefaultInstance() { + return defaultInstance; + } + + public RemoteScope getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RemoteScope( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.remote.WireFormats.AddressData.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = node_.toBuilder(); + } + node_ = input.readMessage(akka.remote.WireFormats.AddressData.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(node_); + node_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_RemoteScope_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_RemoteScope_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.RemoteScope.class, akka.remote.WireFormats.RemoteScope.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public RemoteScope parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new RemoteScope(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required .AddressData node = 1; + public static final int NODE_FIELD_NUMBER = 1; + private akka.remote.WireFormats.AddressData node_; + /** + * required .AddressData node = 1; + */ + public boolean hasNode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .AddressData node = 1; + */ + public akka.remote.WireFormats.AddressData getNode() { + return node_; + } + /** + * required .AddressData node = 1; + */ + public akka.remote.WireFormats.AddressDataOrBuilder getNodeOrBuilder() { + return node_; + } + + private void initFields() { + node_ = akka.remote.WireFormats.AddressData.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasNode()) { + memoizedIsInitialized = 0; + return false; + } + if (!getNode().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, node_); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, node_); + } + 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 akka.remote.WireFormats.RemoteScope parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.RemoteScope parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteScope parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.RemoteScope parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteScope parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.RemoteScope parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteScope parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.RemoteScope parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteScope parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.RemoteScope parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.RemoteScope prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code RemoteScope} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.RemoteScopeOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_RemoteScope_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_RemoteScope_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.RemoteScope.class, akka.remote.WireFormats.RemoteScope.Builder.class); + } + + // Construct using akka.remote.WireFormats.RemoteScope.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getNodeFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (nodeBuilder_ == null) { + node_ = akka.remote.WireFormats.AddressData.getDefaultInstance(); + } else { + nodeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_RemoteScope_descriptor; + } + + public akka.remote.WireFormats.RemoteScope getDefaultInstanceForType() { + return akka.remote.WireFormats.RemoteScope.getDefaultInstance(); + } + + public akka.remote.WireFormats.RemoteScope build() { + akka.remote.WireFormats.RemoteScope result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.RemoteScope buildPartial() { + akka.remote.WireFormats.RemoteScope result = new akka.remote.WireFormats.RemoteScope(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (nodeBuilder_ == null) { + result.node_ = node_; + } else { + result.node_ = nodeBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.RemoteScope) { + return mergeFrom((akka.remote.WireFormats.RemoteScope)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.RemoteScope other) { + if (other == akka.remote.WireFormats.RemoteScope.getDefaultInstance()) return this; + if (other.hasNode()) { + mergeNode(other.getNode()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasNode()) { + + return false; + } + if (!getNode().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.RemoteScope parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.RemoteScope) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required .AddressData node = 1; + private akka.remote.WireFormats.AddressData node_ = akka.remote.WireFormats.AddressData.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> nodeBuilder_; + /** + * required .AddressData node = 1; + */ + public boolean hasNode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .AddressData node = 1; + */ + public akka.remote.WireFormats.AddressData getNode() { + if (nodeBuilder_ == null) { + return node_; + } else { + return nodeBuilder_.getMessage(); + } + } + /** + * required .AddressData node = 1; + */ + public Builder setNode(akka.remote.WireFormats.AddressData value) { + if (nodeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + node_ = value; + onChanged(); + } else { + nodeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .AddressData node = 1; + */ + public Builder setNode( + akka.remote.WireFormats.AddressData.Builder builderForValue) { + if (nodeBuilder_ == null) { + node_ = builderForValue.build(); + onChanged(); + } else { + nodeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .AddressData node = 1; + */ + public Builder mergeNode(akka.remote.WireFormats.AddressData value) { + if (nodeBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + node_ != akka.remote.WireFormats.AddressData.getDefaultInstance()) { + node_ = + akka.remote.WireFormats.AddressData.newBuilder(node_).mergeFrom(value).buildPartial(); + } else { + node_ = value; + } + onChanged(); + } else { + nodeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .AddressData node = 1; + */ + public Builder clearNode() { + if (nodeBuilder_ == null) { + node_ = akka.remote.WireFormats.AddressData.getDefaultInstance(); + onChanged(); + } else { + nodeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * required .AddressData node = 1; + */ + public akka.remote.WireFormats.AddressData.Builder getNodeBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getNodeFieldBuilder().getBuilder(); + } + /** + * required .AddressData node = 1; + */ + public akka.remote.WireFormats.AddressDataOrBuilder getNodeOrBuilder() { + if (nodeBuilder_ != null) { + return nodeBuilder_.getMessageOrBuilder(); + } else { + return node_; + } + } + /** + * required .AddressData node = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> + getNodeFieldBuilder() { + if (nodeBuilder_ == null) { + nodeBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder>( + node_, + getParentForChildren(), + isClean()); + node_ = null; + } + return nodeBuilder_; + } + + // @@protoc_insertion_point(builder_scope:RemoteScope) + } + + static { + defaultInstance = new RemoteScope(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:RemoteScope) + } + + public interface DefaultResizerOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required uint32 lowerBound = 1; + /** + * required uint32 lowerBound = 1; + */ + boolean hasLowerBound(); + /** + * required uint32 lowerBound = 1; + */ + int getLowerBound(); + + // required uint32 upperBound = 2; + /** + * required uint32 upperBound = 2; + */ + boolean hasUpperBound(); + /** + * required uint32 upperBound = 2; + */ + int getUpperBound(); + + // required uint32 pressureThreshold = 3; + /** + * required uint32 pressureThreshold = 3; + */ + boolean hasPressureThreshold(); + /** + * required uint32 pressureThreshold = 3; + */ + int getPressureThreshold(); + + // required double rampupRate = 4; + /** + * required double rampupRate = 4; + */ + boolean hasRampupRate(); + /** + * required double rampupRate = 4; + */ + double getRampupRate(); + + // required double backoffThreshold = 5; + /** + * required double backoffThreshold = 5; + */ + boolean hasBackoffThreshold(); + /** + * required double backoffThreshold = 5; + */ + double getBackoffThreshold(); + + // required double backoffRate = 6; + /** + * required double backoffRate = 6; + */ + boolean hasBackoffRate(); + /** + * required double backoffRate = 6; + */ + double getBackoffRate(); + + // required uint32 messagesPerResize = 7; + /** + * required uint32 messagesPerResize = 7; + */ + boolean hasMessagesPerResize(); + /** + * required uint32 messagesPerResize = 7; + */ + int getMessagesPerResize(); + } + /** + * Protobuf type {@code DefaultResizer} + */ + public static final class DefaultResizer extends + akka.protobuf.GeneratedMessage + implements DefaultResizerOrBuilder { + // Use DefaultResizer.newBuilder() to construct. + private DefaultResizer(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private DefaultResizer(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final DefaultResizer defaultInstance; + public static DefaultResizer getDefaultInstance() { + return defaultInstance; + } + + public DefaultResizer getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private DefaultResizer( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + lowerBound_ = input.readUInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + upperBound_ = input.readUInt32(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + pressureThreshold_ = input.readUInt32(); + break; + } + case 33: { + bitField0_ |= 0x00000008; + rampupRate_ = input.readDouble(); + break; + } + case 41: { + bitField0_ |= 0x00000010; + backoffThreshold_ = input.readDouble(); + break; + } + case 49: { + bitField0_ |= 0x00000020; + backoffRate_ = input.readDouble(); + break; + } + case 56: { + bitField0_ |= 0x00000040; + messagesPerResize_ = input.readUInt32(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_DefaultResizer_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_DefaultResizer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.DefaultResizer.class, akka.remote.WireFormats.DefaultResizer.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public DefaultResizer parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new DefaultResizer(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required uint32 lowerBound = 1; + public static final int LOWERBOUND_FIELD_NUMBER = 1; + private int lowerBound_; + /** + * required uint32 lowerBound = 1; + */ + public boolean hasLowerBound() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 lowerBound = 1; + */ + public int getLowerBound() { + return lowerBound_; + } + + // required uint32 upperBound = 2; + public static final int UPPERBOUND_FIELD_NUMBER = 2; + private int upperBound_; + /** + * required uint32 upperBound = 2; + */ + public boolean hasUpperBound() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 upperBound = 2; + */ + public int getUpperBound() { + return upperBound_; + } + + // required uint32 pressureThreshold = 3; + public static final int PRESSURETHRESHOLD_FIELD_NUMBER = 3; + private int pressureThreshold_; + /** + * required uint32 pressureThreshold = 3; + */ + public boolean hasPressureThreshold() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required uint32 pressureThreshold = 3; + */ + public int getPressureThreshold() { + return pressureThreshold_; + } + + // required double rampupRate = 4; + public static final int RAMPUPRATE_FIELD_NUMBER = 4; + private double rampupRate_; + /** + * required double rampupRate = 4; + */ + public boolean hasRampupRate() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * required double rampupRate = 4; + */ + public double getRampupRate() { + return rampupRate_; + } + + // required double backoffThreshold = 5; + public static final int BACKOFFTHRESHOLD_FIELD_NUMBER = 5; + private double backoffThreshold_; + /** + * required double backoffThreshold = 5; + */ + public boolean hasBackoffThreshold() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * required double backoffThreshold = 5; + */ + public double getBackoffThreshold() { + return backoffThreshold_; + } + + // required double backoffRate = 6; + public static final int BACKOFFRATE_FIELD_NUMBER = 6; + private double backoffRate_; + /** + * required double backoffRate = 6; + */ + public boolean hasBackoffRate() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * required double backoffRate = 6; + */ + public double getBackoffRate() { + return backoffRate_; + } + + // required uint32 messagesPerResize = 7; + public static final int MESSAGESPERRESIZE_FIELD_NUMBER = 7; + private int messagesPerResize_; + /** + * required uint32 messagesPerResize = 7; + */ + public boolean hasMessagesPerResize() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * required uint32 messagesPerResize = 7; + */ + public int getMessagesPerResize() { + return messagesPerResize_; + } + + private void initFields() { + lowerBound_ = 0; + upperBound_ = 0; + pressureThreshold_ = 0; + rampupRate_ = 0D; + backoffThreshold_ = 0D; + backoffRate_ = 0D; + messagesPerResize_ = 0; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasLowerBound()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasUpperBound()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasPressureThreshold()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasRampupRate()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasBackoffThreshold()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasBackoffRate()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasMessagesPerResize()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt32(1, lowerBound_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeUInt32(2, upperBound_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeUInt32(3, pressureThreshold_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeDouble(4, rampupRate_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeDouble(5, backoffThreshold_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeDouble(6, backoffRate_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeUInt32(7, messagesPerResize_); + } + 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 += akka.protobuf.CodedOutputStream + .computeUInt32Size(1, lowerBound_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeUInt32Size(2, upperBound_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeUInt32Size(3, pressureThreshold_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += akka.protobuf.CodedOutputStream + .computeDoubleSize(4, rampupRate_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += akka.protobuf.CodedOutputStream + .computeDoubleSize(5, backoffThreshold_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += akka.protobuf.CodedOutputStream + .computeDoubleSize(6, backoffRate_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += akka.protobuf.CodedOutputStream + .computeUInt32Size(7, messagesPerResize_); + } + 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 akka.remote.WireFormats.DefaultResizer parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.DefaultResizer parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.DefaultResizer parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.DefaultResizer parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.DefaultResizer prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DefaultResizer} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.DefaultResizerOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_DefaultResizer_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_DefaultResizer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.DefaultResizer.class, akka.remote.WireFormats.DefaultResizer.Builder.class); + } + + // Construct using akka.remote.WireFormats.DefaultResizer.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + lowerBound_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + upperBound_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + pressureThreshold_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + rampupRate_ = 0D; + bitField0_ = (bitField0_ & ~0x00000008); + backoffThreshold_ = 0D; + bitField0_ = (bitField0_ & ~0x00000010); + backoffRate_ = 0D; + bitField0_ = (bitField0_ & ~0x00000020); + messagesPerResize_ = 0; + bitField0_ = (bitField0_ & ~0x00000040); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_DefaultResizer_descriptor; + } + + public akka.remote.WireFormats.DefaultResizer getDefaultInstanceForType() { + return akka.remote.WireFormats.DefaultResizer.getDefaultInstance(); + } + + public akka.remote.WireFormats.DefaultResizer build() { + akka.remote.WireFormats.DefaultResizer result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.DefaultResizer buildPartial() { + akka.remote.WireFormats.DefaultResizer result = new akka.remote.WireFormats.DefaultResizer(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.lowerBound_ = lowerBound_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.upperBound_ = upperBound_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.pressureThreshold_ = pressureThreshold_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.rampupRate_ = rampupRate_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + result.backoffThreshold_ = backoffThreshold_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.backoffRate_ = backoffRate_; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000040; + } + result.messagesPerResize_ = messagesPerResize_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.DefaultResizer) { + return mergeFrom((akka.remote.WireFormats.DefaultResizer)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.DefaultResizer other) { + if (other == akka.remote.WireFormats.DefaultResizer.getDefaultInstance()) return this; + if (other.hasLowerBound()) { + setLowerBound(other.getLowerBound()); + } + if (other.hasUpperBound()) { + setUpperBound(other.getUpperBound()); + } + if (other.hasPressureThreshold()) { + setPressureThreshold(other.getPressureThreshold()); + } + if (other.hasRampupRate()) { + setRampupRate(other.getRampupRate()); + } + if (other.hasBackoffThreshold()) { + setBackoffThreshold(other.getBackoffThreshold()); + } + if (other.hasBackoffRate()) { + setBackoffRate(other.getBackoffRate()); + } + if (other.hasMessagesPerResize()) { + setMessagesPerResize(other.getMessagesPerResize()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasLowerBound()) { + + return false; + } + if (!hasUpperBound()) { + + return false; + } + if (!hasPressureThreshold()) { + + return false; + } + if (!hasRampupRate()) { + + return false; + } + if (!hasBackoffThreshold()) { + + return false; + } + if (!hasBackoffRate()) { + + return false; + } + if (!hasMessagesPerResize()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.DefaultResizer parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.DefaultResizer) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required uint32 lowerBound = 1; + private int lowerBound_ ; + /** + * required uint32 lowerBound = 1; + */ + public boolean hasLowerBound() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 lowerBound = 1; + */ + public int getLowerBound() { + return lowerBound_; + } + /** + * required uint32 lowerBound = 1; + */ + public Builder setLowerBound(int value) { + bitField0_ |= 0x00000001; + lowerBound_ = value; + onChanged(); + return this; + } + /** + * required uint32 lowerBound = 1; + */ + public Builder clearLowerBound() { + bitField0_ = (bitField0_ & ~0x00000001); + lowerBound_ = 0; + onChanged(); + return this; + } + + // required uint32 upperBound = 2; + private int upperBound_ ; + /** + * required uint32 upperBound = 2; + */ + public boolean hasUpperBound() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required uint32 upperBound = 2; + */ + public int getUpperBound() { + return upperBound_; + } + /** + * required uint32 upperBound = 2; + */ + public Builder setUpperBound(int value) { + bitField0_ |= 0x00000002; + upperBound_ = value; + onChanged(); + return this; + } + /** + * required uint32 upperBound = 2; + */ + public Builder clearUpperBound() { + bitField0_ = (bitField0_ & ~0x00000002); + upperBound_ = 0; + onChanged(); + return this; + } + + // required uint32 pressureThreshold = 3; + private int pressureThreshold_ ; + /** + * required uint32 pressureThreshold = 3; + */ + public boolean hasPressureThreshold() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required uint32 pressureThreshold = 3; + */ + public int getPressureThreshold() { + return pressureThreshold_; + } + /** + * required uint32 pressureThreshold = 3; + */ + public Builder setPressureThreshold(int value) { + bitField0_ |= 0x00000004; + pressureThreshold_ = value; + onChanged(); + return this; + } + /** + * required uint32 pressureThreshold = 3; + */ + public Builder clearPressureThreshold() { + bitField0_ = (bitField0_ & ~0x00000004); + pressureThreshold_ = 0; + onChanged(); + return this; + } + + // required double rampupRate = 4; + private double rampupRate_ ; + /** + * required double rampupRate = 4; + */ + public boolean hasRampupRate() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * required double rampupRate = 4; + */ + public double getRampupRate() { + return rampupRate_; + } + /** + * required double rampupRate = 4; + */ + public Builder setRampupRate(double value) { + bitField0_ |= 0x00000008; + rampupRate_ = value; + onChanged(); + return this; + } + /** + * required double rampupRate = 4; + */ + public Builder clearRampupRate() { + bitField0_ = (bitField0_ & ~0x00000008); + rampupRate_ = 0D; + onChanged(); + return this; + } + + // required double backoffThreshold = 5; + private double backoffThreshold_ ; + /** + * required double backoffThreshold = 5; + */ + public boolean hasBackoffThreshold() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * required double backoffThreshold = 5; + */ + public double getBackoffThreshold() { + return backoffThreshold_; + } + /** + * required double backoffThreshold = 5; + */ + public Builder setBackoffThreshold(double value) { + bitField0_ |= 0x00000010; + backoffThreshold_ = value; + onChanged(); + return this; + } + /** + * required double backoffThreshold = 5; + */ + public Builder clearBackoffThreshold() { + bitField0_ = (bitField0_ & ~0x00000010); + backoffThreshold_ = 0D; + onChanged(); + return this; + } + + // required double backoffRate = 6; + private double backoffRate_ ; + /** + * required double backoffRate = 6; + */ + public boolean hasBackoffRate() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * required double backoffRate = 6; + */ + public double getBackoffRate() { + return backoffRate_; + } + /** + * required double backoffRate = 6; + */ + public Builder setBackoffRate(double value) { + bitField0_ |= 0x00000020; + backoffRate_ = value; + onChanged(); + return this; + } + /** + * required double backoffRate = 6; + */ + public Builder clearBackoffRate() { + bitField0_ = (bitField0_ & ~0x00000020); + backoffRate_ = 0D; + onChanged(); + return this; + } + + // required uint32 messagesPerResize = 7; + private int messagesPerResize_ ; + /** + * required uint32 messagesPerResize = 7; + */ + public boolean hasMessagesPerResize() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * required uint32 messagesPerResize = 7; + */ + public int getMessagesPerResize() { + return messagesPerResize_; + } + /** + * required uint32 messagesPerResize = 7; + */ + public Builder setMessagesPerResize(int value) { + bitField0_ |= 0x00000040; + messagesPerResize_ = value; + onChanged(); + return this; + } + /** + * required uint32 messagesPerResize = 7; + */ + public Builder clearMessagesPerResize() { + bitField0_ = (bitField0_ & ~0x00000040); + messagesPerResize_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:DefaultResizer) + } + + static { + defaultInstance = new DefaultResizer(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:DefaultResizer) + } + + public interface FromConfigOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // optional .Payload resizer = 1; + /** + * optional .Payload resizer = 1; + */ + boolean hasResizer(); + /** + * optional .Payload resizer = 1; + */ + akka.remote.ContainerFormats.Payload getResizer(); + /** + * optional .Payload resizer = 1; + */ + akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder(); + + // optional string routerDispatcher = 2; + /** + * optional string routerDispatcher = 2; + */ + boolean hasRouterDispatcher(); + /** + * optional string routerDispatcher = 2; + */ + java.lang.String getRouterDispatcher(); + /** + * optional string routerDispatcher = 2; + */ + akka.protobuf.ByteString + getRouterDispatcherBytes(); + } + /** + * Protobuf type {@code FromConfig} + */ + public static final class FromConfig extends + akka.protobuf.GeneratedMessage + implements FromConfigOrBuilder { + // Use FromConfig.newBuilder() to construct. + private FromConfig(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private FromConfig(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final FromConfig defaultInstance; + public static FromConfig getDefaultInstance() { + return defaultInstance; + } + + public FromConfig getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private FromConfig( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.remote.ContainerFormats.Payload.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = resizer_.toBuilder(); + } + resizer_ = input.readMessage(akka.remote.ContainerFormats.Payload.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(resizer_); + resizer_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + bitField0_ |= 0x00000002; + routerDispatcher_ = input.readBytes(); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_FromConfig_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_FromConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.FromConfig.class, akka.remote.WireFormats.FromConfig.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public FromConfig parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new FromConfig(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .Payload resizer = 1; + public static final int RESIZER_FIELD_NUMBER = 1; + private akka.remote.ContainerFormats.Payload resizer_; + /** + * optional .Payload resizer = 1; + */ + public boolean hasResizer() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .Payload resizer = 1; + */ + public akka.remote.ContainerFormats.Payload getResizer() { + return resizer_; + } + /** + * optional .Payload resizer = 1; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder() { + return resizer_; + } + + // optional string routerDispatcher = 2; + public static final int ROUTERDISPATCHER_FIELD_NUMBER = 2; + private java.lang.Object routerDispatcher_; + /** + * optional string routerDispatcher = 2; + */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string routerDispatcher = 2; + */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + routerDispatcher_ = s; + } + return s; + } + } + /** + * optional string routerDispatcher = 2; + */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + private void initFields() { + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + routerDispatcher_ = ""; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (hasResizer()) { + if (!getResizer().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, resizer_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getRouterDispatcherBytes()); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, resizer_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(2, getRouterDispatcherBytes()); + } + 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 akka.remote.WireFormats.FromConfig parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.FromConfig parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.FromConfig parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.FromConfig parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.FromConfig parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.FromConfig parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.FromConfig parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.FromConfig parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.FromConfig parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.FromConfig parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.FromConfig prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code FromConfig} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.FromConfigOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_FromConfig_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_FromConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.FromConfig.class, akka.remote.WireFormats.FromConfig.Builder.class); + } + + // Construct using akka.remote.WireFormats.FromConfig.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getResizerFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (resizerBuilder_ == null) { + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + } else { + resizerBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + routerDispatcher_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_FromConfig_descriptor; + } + + public akka.remote.WireFormats.FromConfig getDefaultInstanceForType() { + return akka.remote.WireFormats.FromConfig.getDefaultInstance(); + } + + public akka.remote.WireFormats.FromConfig build() { + akka.remote.WireFormats.FromConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.FromConfig buildPartial() { + akka.remote.WireFormats.FromConfig result = new akka.remote.WireFormats.FromConfig(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (resizerBuilder_ == null) { + result.resizer_ = resizer_; + } else { + result.resizer_ = resizerBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.routerDispatcher_ = routerDispatcher_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.FromConfig) { + return mergeFrom((akka.remote.WireFormats.FromConfig)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.FromConfig other) { + if (other == akka.remote.WireFormats.FromConfig.getDefaultInstance()) return this; + if (other.hasResizer()) { + mergeResizer(other.getResizer()); + } + if (other.hasRouterDispatcher()) { + bitField0_ |= 0x00000002; + routerDispatcher_ = other.routerDispatcher_; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (hasResizer()) { + if (!getResizer().isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.FromConfig parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.FromConfig) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .Payload resizer = 1; + private akka.remote.ContainerFormats.Payload resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> resizerBuilder_; + /** + * optional .Payload resizer = 1; + */ + public boolean hasResizer() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .Payload resizer = 1; + */ + public akka.remote.ContainerFormats.Payload getResizer() { + if (resizerBuilder_ == null) { + return resizer_; + } else { + return resizerBuilder_.getMessage(); + } + } + /** + * optional .Payload resizer = 1; + */ + public Builder setResizer(akka.remote.ContainerFormats.Payload value) { + if (resizerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + resizer_ = value; + onChanged(); + } else { + resizerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .Payload resizer = 1; + */ + public Builder setResizer( + akka.remote.ContainerFormats.Payload.Builder builderForValue) { + if (resizerBuilder_ == null) { + resizer_ = builderForValue.build(); + onChanged(); + } else { + resizerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .Payload resizer = 1; + */ + public Builder mergeResizer(akka.remote.ContainerFormats.Payload value) { + if (resizerBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + resizer_ != akka.remote.ContainerFormats.Payload.getDefaultInstance()) { + resizer_ = + akka.remote.ContainerFormats.Payload.newBuilder(resizer_).mergeFrom(value).buildPartial(); + } else { + resizer_ = value; + } + onChanged(); + } else { + resizerBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .Payload resizer = 1; + */ + public Builder clearResizer() { + if (resizerBuilder_ == null) { + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + onChanged(); + } else { + resizerBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * optional .Payload resizer = 1; + */ + public akka.remote.ContainerFormats.Payload.Builder getResizerBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getResizerFieldBuilder().getBuilder(); + } + /** + * optional .Payload resizer = 1; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder() { + if (resizerBuilder_ != null) { + return resizerBuilder_.getMessageOrBuilder(); + } else { + return resizer_; + } + } + /** + * optional .Payload resizer = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> + getResizerFieldBuilder() { + if (resizerBuilder_ == null) { + resizerBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder>( + resizer_, + getParentForChildren(), + isClean()); + resizer_ = null; + } + return resizerBuilder_; + } + + // optional string routerDispatcher = 2; + private java.lang.Object routerDispatcher_ = ""; + /** + * optional string routerDispatcher = 2; + */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string routerDispatcher = 2; + */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + routerDispatcher_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string routerDispatcher = 2; + */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string routerDispatcher = 2; + */ + public Builder setRouterDispatcher( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + routerDispatcher_ = value; + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 2; + */ + public Builder clearRouterDispatcher() { + bitField0_ = (bitField0_ & ~0x00000002); + routerDispatcher_ = getDefaultInstance().getRouterDispatcher(); + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 2; + */ + public Builder setRouterDispatcherBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + routerDispatcher_ = value; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:FromConfig) + } + + static { + defaultInstance = new FromConfig(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:FromConfig) + } + + public interface GenericRoutingPoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required uint32 nrOfInstances = 1; + /** + * required uint32 nrOfInstances = 1; + */ + boolean hasNrOfInstances(); + /** + * required uint32 nrOfInstances = 1; + */ + int getNrOfInstances(); + + // optional string routerDispatcher = 2; + /** + * optional string routerDispatcher = 2; + */ + boolean hasRouterDispatcher(); + /** + * optional string routerDispatcher = 2; + */ + java.lang.String getRouterDispatcher(); + /** + * optional string routerDispatcher = 2; + */ + akka.protobuf.ByteString + getRouterDispatcherBytes(); + + // required bool usePoolDispatcher = 3; + /** + * required bool usePoolDispatcher = 3; + */ + boolean hasUsePoolDispatcher(); + /** + * required bool usePoolDispatcher = 3; + */ + boolean getUsePoolDispatcher(); + + // optional .Payload resizer = 4; + /** + * optional .Payload resizer = 4; + */ + boolean hasResizer(); + /** + * optional .Payload resizer = 4; + */ + akka.remote.ContainerFormats.Payload getResizer(); + /** + * optional .Payload resizer = 4; + */ + akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder(); + } + /** + * Protobuf type {@code GenericRoutingPool} + */ + public static final class GenericRoutingPool extends + akka.protobuf.GeneratedMessage + implements GenericRoutingPoolOrBuilder { + // Use GenericRoutingPool.newBuilder() to construct. + private GenericRoutingPool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GenericRoutingPool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GenericRoutingPool defaultInstance; + public static GenericRoutingPool getDefaultInstance() { + return defaultInstance; + } + + public GenericRoutingPool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GenericRoutingPool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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; + nrOfInstances_ = input.readUInt32(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + routerDispatcher_ = input.readBytes(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + usePoolDispatcher_ = input.readBool(); + break; + } + case 34: { + akka.remote.ContainerFormats.Payload.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = resizer_.toBuilder(); + } + resizer_ = input.readMessage(akka.remote.ContainerFormats.Payload.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(resizer_); + resizer_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_GenericRoutingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_GenericRoutingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.GenericRoutingPool.class, akka.remote.WireFormats.GenericRoutingPool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public GenericRoutingPool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new GenericRoutingPool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required uint32 nrOfInstances = 1; + public static final int NROFINSTANCES_FIELD_NUMBER = 1; + private int nrOfInstances_; + /** + * required uint32 nrOfInstances = 1; + */ + public boolean hasNrOfInstances() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 nrOfInstances = 1; + */ + public int getNrOfInstances() { + return nrOfInstances_; + } + + // optional string routerDispatcher = 2; + public static final int ROUTERDISPATCHER_FIELD_NUMBER = 2; + private java.lang.Object routerDispatcher_; + /** + * optional string routerDispatcher = 2; + */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string routerDispatcher = 2; + */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + akka.protobuf.ByteString bs = + (akka.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + routerDispatcher_ = s; + } + return s; + } + } + /** + * optional string routerDispatcher = 2; + */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof java.lang.String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + + // required bool usePoolDispatcher = 3; + public static final int USEPOOLDISPATCHER_FIELD_NUMBER = 3; + private boolean usePoolDispatcher_; + /** + * required bool usePoolDispatcher = 3; + */ + public boolean hasUsePoolDispatcher() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bool usePoolDispatcher = 3; + */ + public boolean getUsePoolDispatcher() { + return usePoolDispatcher_; + } + + // optional .Payload resizer = 4; + public static final int RESIZER_FIELD_NUMBER = 4; + private akka.remote.ContainerFormats.Payload resizer_; + /** + * optional .Payload resizer = 4; + */ + public boolean hasResizer() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .Payload resizer = 4; + */ + public akka.remote.ContainerFormats.Payload getResizer() { + return resizer_; + } + /** + * optional .Payload resizer = 4; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder() { + return resizer_; + } + + private void initFields() { + nrOfInstances_ = 0; + routerDispatcher_ = ""; + usePoolDispatcher_ = false; + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasNrOfInstances()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasUsePoolDispatcher()) { + memoizedIsInitialized = 0; + return false; + } + if (hasResizer()) { + if (!getResizer().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt32(1, nrOfInstances_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getRouterDispatcherBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBool(3, usePoolDispatcher_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(4, resizer_); + } + 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 += akka.protobuf.CodedOutputStream + .computeUInt32Size(1, nrOfInstances_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeBytesSize(2, getRouterDispatcherBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeBoolSize(3, usePoolDispatcher_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(4, resizer_); + } + 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 akka.remote.WireFormats.GenericRoutingPool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.GenericRoutingPool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.GenericRoutingPool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.GenericRoutingPool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.GenericRoutingPool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GenericRoutingPool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.GenericRoutingPoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_GenericRoutingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_GenericRoutingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.GenericRoutingPool.class, akka.remote.WireFormats.GenericRoutingPool.Builder.class); + } + + // Construct using akka.remote.WireFormats.GenericRoutingPool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getResizerFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + nrOfInstances_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + routerDispatcher_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + usePoolDispatcher_ = false; + bitField0_ = (bitField0_ & ~0x00000004); + if (resizerBuilder_ == null) { + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + } else { + resizerBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_GenericRoutingPool_descriptor; + } + + public akka.remote.WireFormats.GenericRoutingPool getDefaultInstanceForType() { + return akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + } + + public akka.remote.WireFormats.GenericRoutingPool build() { + akka.remote.WireFormats.GenericRoutingPool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.GenericRoutingPool buildPartial() { + akka.remote.WireFormats.GenericRoutingPool result = new akka.remote.WireFormats.GenericRoutingPool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.nrOfInstances_ = nrOfInstances_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.routerDispatcher_ = routerDispatcher_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.usePoolDispatcher_ = usePoolDispatcher_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + if (resizerBuilder_ == null) { + result.resizer_ = resizer_; + } else { + result.resizer_ = resizerBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.GenericRoutingPool) { + return mergeFrom((akka.remote.WireFormats.GenericRoutingPool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.GenericRoutingPool other) { + if (other == akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance()) return this; + if (other.hasNrOfInstances()) { + setNrOfInstances(other.getNrOfInstances()); + } + if (other.hasRouterDispatcher()) { + bitField0_ |= 0x00000002; + routerDispatcher_ = other.routerDispatcher_; + onChanged(); + } + if (other.hasUsePoolDispatcher()) { + setUsePoolDispatcher(other.getUsePoolDispatcher()); + } + if (other.hasResizer()) { + mergeResizer(other.getResizer()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasNrOfInstances()) { + + return false; + } + if (!hasUsePoolDispatcher()) { + + return false; + } + if (hasResizer()) { + if (!getResizer().isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.GenericRoutingPool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.GenericRoutingPool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required uint32 nrOfInstances = 1; + private int nrOfInstances_ ; + /** + * required uint32 nrOfInstances = 1; + */ + public boolean hasNrOfInstances() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required uint32 nrOfInstances = 1; + */ + public int getNrOfInstances() { + return nrOfInstances_; + } + /** + * required uint32 nrOfInstances = 1; + */ + public Builder setNrOfInstances(int value) { + bitField0_ |= 0x00000001; + nrOfInstances_ = value; + onChanged(); + return this; + } + /** + * required uint32 nrOfInstances = 1; + */ + public Builder clearNrOfInstances() { + bitField0_ = (bitField0_ & ~0x00000001); + nrOfInstances_ = 0; + onChanged(); + return this; + } + + // optional string routerDispatcher = 2; + private java.lang.Object routerDispatcher_ = ""; + /** + * optional string routerDispatcher = 2; + */ + public boolean hasRouterDispatcher() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string routerDispatcher = 2; + */ + public java.lang.String getRouterDispatcher() { + java.lang.Object ref = routerDispatcher_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((akka.protobuf.ByteString) ref) + .toStringUtf8(); + routerDispatcher_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string routerDispatcher = 2; + */ + public akka.protobuf.ByteString + getRouterDispatcherBytes() { + java.lang.Object ref = routerDispatcher_; + if (ref instanceof String) { + akka.protobuf.ByteString b = + akka.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + routerDispatcher_ = b; + return b; + } else { + return (akka.protobuf.ByteString) ref; + } + } + /** + * optional string routerDispatcher = 2; + */ + public Builder setRouterDispatcher( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + routerDispatcher_ = value; + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 2; + */ + public Builder clearRouterDispatcher() { + bitField0_ = (bitField0_ & ~0x00000002); + routerDispatcher_ = getDefaultInstance().getRouterDispatcher(); + onChanged(); + return this; + } + /** + * optional string routerDispatcher = 2; + */ + public Builder setRouterDispatcherBytes( + akka.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + routerDispatcher_ = value; + onChanged(); + return this; + } + + // required bool usePoolDispatcher = 3; + private boolean usePoolDispatcher_ ; + /** + * required bool usePoolDispatcher = 3; + */ + public boolean hasUsePoolDispatcher() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bool usePoolDispatcher = 3; + */ + public boolean getUsePoolDispatcher() { + return usePoolDispatcher_; + } + /** + * required bool usePoolDispatcher = 3; + */ + public Builder setUsePoolDispatcher(boolean value) { + bitField0_ |= 0x00000004; + usePoolDispatcher_ = value; + onChanged(); + return this; + } + /** + * required bool usePoolDispatcher = 3; + */ + public Builder clearUsePoolDispatcher() { + bitField0_ = (bitField0_ & ~0x00000004); + usePoolDispatcher_ = false; + onChanged(); + return this; + } + + // optional .Payload resizer = 4; + private akka.remote.ContainerFormats.Payload resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> resizerBuilder_; + /** + * optional .Payload resizer = 4; + */ + public boolean hasResizer() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .Payload resizer = 4; + */ + public akka.remote.ContainerFormats.Payload getResizer() { + if (resizerBuilder_ == null) { + return resizer_; + } else { + return resizerBuilder_.getMessage(); + } + } + /** + * optional .Payload resizer = 4; + */ + public Builder setResizer(akka.remote.ContainerFormats.Payload value) { + if (resizerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + resizer_ = value; + onChanged(); + } else { + resizerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .Payload resizer = 4; + */ + public Builder setResizer( + akka.remote.ContainerFormats.Payload.Builder builderForValue) { + if (resizerBuilder_ == null) { + resizer_ = builderForValue.build(); + onChanged(); + } else { + resizerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .Payload resizer = 4; + */ + public Builder mergeResizer(akka.remote.ContainerFormats.Payload value) { + if (resizerBuilder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + resizer_ != akka.remote.ContainerFormats.Payload.getDefaultInstance()) { + resizer_ = + akka.remote.ContainerFormats.Payload.newBuilder(resizer_).mergeFrom(value).buildPartial(); + } else { + resizer_ = value; + } + onChanged(); + } else { + resizerBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .Payload resizer = 4; + */ + public Builder clearResizer() { + if (resizerBuilder_ == null) { + resizer_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + onChanged(); + } else { + resizerBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + /** + * optional .Payload resizer = 4; + */ + public akka.remote.ContainerFormats.Payload.Builder getResizerBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getResizerFieldBuilder().getBuilder(); + } + /** + * optional .Payload resizer = 4; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getResizerOrBuilder() { + if (resizerBuilder_ != null) { + return resizerBuilder_.getMessageOrBuilder(); + } else { + return resizer_; + } + } + /** + * optional .Payload resizer = 4; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> + getResizerFieldBuilder() { + if (resizerBuilder_ == null) { + resizerBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder>( + resizer_, + getParentForChildren(), + isClean()); + resizer_ = null; + } + return resizerBuilder_; + } + + // @@protoc_insertion_point(builder_scope:GenericRoutingPool) + } + + static { + defaultInstance = new GenericRoutingPool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:GenericRoutingPool) + } + + public interface ScatterGatherPoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required .GenericRoutingPool generic = 1; + /** + * required .GenericRoutingPool generic = 1; + */ + boolean hasGeneric(); + /** + * required .GenericRoutingPool generic = 1; + */ + akka.remote.WireFormats.GenericRoutingPool getGeneric(); + /** + * required .GenericRoutingPool generic = 1; + */ + akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder(); + + // required .FiniteDuration within = 2; + /** + * required .FiniteDuration within = 2; + */ + boolean hasWithin(); + /** + * required .FiniteDuration within = 2; + */ + akka.remote.WireFormats.FiniteDuration getWithin(); + /** + * required .FiniteDuration within = 2; + */ + akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder(); + } + /** + * Protobuf type {@code ScatterGatherPool} + */ + public static final class ScatterGatherPool extends + akka.protobuf.GeneratedMessage + implements ScatterGatherPoolOrBuilder { + // Use ScatterGatherPool.newBuilder() to construct. + private ScatterGatherPool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ScatterGatherPool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ScatterGatherPool defaultInstance; + public static ScatterGatherPool getDefaultInstance() { + return defaultInstance; + } + + public ScatterGatherPool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ScatterGatherPool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.remote.WireFormats.GenericRoutingPool.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = generic_.toBuilder(); + } + generic_ = input.readMessage(akka.remote.WireFormats.GenericRoutingPool.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(generic_); + generic_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + akka.remote.WireFormats.FiniteDuration.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = within_.toBuilder(); + } + within_ = input.readMessage(akka.remote.WireFormats.FiniteDuration.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(within_); + within_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_ScatterGatherPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_ScatterGatherPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.ScatterGatherPool.class, akka.remote.WireFormats.ScatterGatherPool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public ScatterGatherPool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new ScatterGatherPool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required .GenericRoutingPool generic = 1; + public static final int GENERIC_FIELD_NUMBER = 1; + private akka.remote.WireFormats.GenericRoutingPool generic_; + /** + * required .GenericRoutingPool generic = 1; + */ + public boolean hasGeneric() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool getGeneric() { + return generic_; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder() { + return generic_; + } + + // required .FiniteDuration within = 2; + public static final int WITHIN_FIELD_NUMBER = 2; + private akka.remote.WireFormats.FiniteDuration within_; + /** + * required .FiniteDuration within = 2; + */ + public boolean hasWithin() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration getWithin() { + return within_; + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder() { + return within_; + } + + private void initFields() { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasGeneric()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasWithin()) { + memoizedIsInitialized = 0; + return false; + } + if (!getGeneric().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getWithin().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, generic_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(2, within_); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, generic_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(2, within_); + } + 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 akka.remote.WireFormats.ScatterGatherPool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.ScatterGatherPool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.ScatterGatherPool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.ScatterGatherPool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.ScatterGatherPool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ScatterGatherPool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.ScatterGatherPoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_ScatterGatherPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_ScatterGatherPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.ScatterGatherPool.class, akka.remote.WireFormats.ScatterGatherPool.Builder.class); + } + + // Construct using akka.remote.WireFormats.ScatterGatherPool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getGenericFieldBuilder(); + getWithinFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (genericBuilder_ == null) { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + } else { + genericBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (withinBuilder_ == null) { + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } else { + withinBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_ScatterGatherPool_descriptor; + } + + public akka.remote.WireFormats.ScatterGatherPool getDefaultInstanceForType() { + return akka.remote.WireFormats.ScatterGatherPool.getDefaultInstance(); + } + + public akka.remote.WireFormats.ScatterGatherPool build() { + akka.remote.WireFormats.ScatterGatherPool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.ScatterGatherPool buildPartial() { + akka.remote.WireFormats.ScatterGatherPool result = new akka.remote.WireFormats.ScatterGatherPool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (genericBuilder_ == null) { + result.generic_ = generic_; + } else { + result.generic_ = genericBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + if (withinBuilder_ == null) { + result.within_ = within_; + } else { + result.within_ = withinBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.ScatterGatherPool) { + return mergeFrom((akka.remote.WireFormats.ScatterGatherPool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.ScatterGatherPool other) { + if (other == akka.remote.WireFormats.ScatterGatherPool.getDefaultInstance()) return this; + if (other.hasGeneric()) { + mergeGeneric(other.getGeneric()); + } + if (other.hasWithin()) { + mergeWithin(other.getWithin()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasGeneric()) { + + return false; + } + if (!hasWithin()) { + + return false; + } + if (!getGeneric().isInitialized()) { + + return false; + } + if (!getWithin().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.ScatterGatherPool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.ScatterGatherPool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required .GenericRoutingPool generic = 1; + private akka.remote.WireFormats.GenericRoutingPool generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder> genericBuilder_; + /** + * required .GenericRoutingPool generic = 1; + */ + public boolean hasGeneric() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool getGeneric() { + if (genericBuilder_ == null) { + return generic_; + } else { + return genericBuilder_.getMessage(); + } + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder setGeneric(akka.remote.WireFormats.GenericRoutingPool value) { + if (genericBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + generic_ = value; + onChanged(); + } else { + genericBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder setGeneric( + akka.remote.WireFormats.GenericRoutingPool.Builder builderForValue) { + if (genericBuilder_ == null) { + generic_ = builderForValue.build(); + onChanged(); + } else { + genericBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder mergeGeneric(akka.remote.WireFormats.GenericRoutingPool value) { + if (genericBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + generic_ != akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance()) { + generic_ = + akka.remote.WireFormats.GenericRoutingPool.newBuilder(generic_).mergeFrom(value).buildPartial(); + } else { + generic_ = value; + } + onChanged(); + } else { + genericBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder clearGeneric() { + if (genericBuilder_ == null) { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + onChanged(); + } else { + genericBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool.Builder getGenericBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getGenericFieldBuilder().getBuilder(); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder() { + if (genericBuilder_ != null) { + return genericBuilder_.getMessageOrBuilder(); + } else { + return generic_; + } + } + /** + * required .GenericRoutingPool generic = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder> + getGenericFieldBuilder() { + if (genericBuilder_ == null) { + genericBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder>( + generic_, + getParentForChildren(), + isClean()); + generic_ = null; + } + return genericBuilder_; + } + + // required .FiniteDuration within = 2; + private akka.remote.WireFormats.FiniteDuration within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> withinBuilder_; + /** + * required .FiniteDuration within = 2; + */ + public boolean hasWithin() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration getWithin() { + if (withinBuilder_ == null) { + return within_; + } else { + return withinBuilder_.getMessage(); + } + } + /** + * required .FiniteDuration within = 2; + */ + public Builder setWithin(akka.remote.WireFormats.FiniteDuration value) { + if (withinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + within_ = value; + onChanged(); + } else { + withinBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder setWithin( + akka.remote.WireFormats.FiniteDuration.Builder builderForValue) { + if (withinBuilder_ == null) { + within_ = builderForValue.build(); + onChanged(); + } else { + withinBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder mergeWithin(akka.remote.WireFormats.FiniteDuration value) { + if (withinBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + within_ != akka.remote.WireFormats.FiniteDuration.getDefaultInstance()) { + within_ = + akka.remote.WireFormats.FiniteDuration.newBuilder(within_).mergeFrom(value).buildPartial(); + } else { + within_ = value; + } + onChanged(); + } else { + withinBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder clearWithin() { + if (withinBuilder_ == null) { + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + onChanged(); + } else { + withinBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration.Builder getWithinBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getWithinFieldBuilder().getBuilder(); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder() { + if (withinBuilder_ != null) { + return withinBuilder_.getMessageOrBuilder(); + } else { + return within_; + } + } + /** + * required .FiniteDuration within = 2; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> + getWithinFieldBuilder() { + if (withinBuilder_ == null) { + withinBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder>( + within_, + getParentForChildren(), + isClean()); + within_ = null; + } + return withinBuilder_; + } + + // @@protoc_insertion_point(builder_scope:ScatterGatherPool) + } + + static { + defaultInstance = new ScatterGatherPool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:ScatterGatherPool) + } + + public interface TailChoppingPoolOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required .GenericRoutingPool generic = 1; + /** + * required .GenericRoutingPool generic = 1; + */ + boolean hasGeneric(); + /** + * required .GenericRoutingPool generic = 1; + */ + akka.remote.WireFormats.GenericRoutingPool getGeneric(); + /** + * required .GenericRoutingPool generic = 1; + */ + akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder(); + + // required .FiniteDuration within = 2; + /** + * required .FiniteDuration within = 2; + */ + boolean hasWithin(); + /** + * required .FiniteDuration within = 2; + */ + akka.remote.WireFormats.FiniteDuration getWithin(); + /** + * required .FiniteDuration within = 2; + */ + akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder(); + + // required .FiniteDuration interval = 3; + /** + * required .FiniteDuration interval = 3; + */ + boolean hasInterval(); + /** + * required .FiniteDuration interval = 3; + */ + akka.remote.WireFormats.FiniteDuration getInterval(); + /** + * required .FiniteDuration interval = 3; + */ + akka.remote.WireFormats.FiniteDurationOrBuilder getIntervalOrBuilder(); + } + /** + * Protobuf type {@code TailChoppingPool} + */ + public static final class TailChoppingPool extends + akka.protobuf.GeneratedMessage + implements TailChoppingPoolOrBuilder { + // Use TailChoppingPool.newBuilder() to construct. + private TailChoppingPool(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private TailChoppingPool(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final TailChoppingPool defaultInstance; + public static TailChoppingPool getDefaultInstance() { + return defaultInstance; + } + + public TailChoppingPool getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TailChoppingPool( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.remote.WireFormats.GenericRoutingPool.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = generic_.toBuilder(); + } + generic_ = input.readMessage(akka.remote.WireFormats.GenericRoutingPool.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(generic_); + generic_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + akka.remote.WireFormats.FiniteDuration.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = within_.toBuilder(); + } + within_ = input.readMessage(akka.remote.WireFormats.FiniteDuration.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(within_); + within_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + case 26: { + akka.remote.WireFormats.FiniteDuration.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = interval_.toBuilder(); + } + interval_ = input.readMessage(akka.remote.WireFormats.FiniteDuration.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(interval_); + interval_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_TailChoppingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_TailChoppingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.TailChoppingPool.class, akka.remote.WireFormats.TailChoppingPool.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public TailChoppingPool parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new TailChoppingPool(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required .GenericRoutingPool generic = 1; + public static final int GENERIC_FIELD_NUMBER = 1; + private akka.remote.WireFormats.GenericRoutingPool generic_; + /** + * required .GenericRoutingPool generic = 1; + */ + public boolean hasGeneric() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool getGeneric() { + return generic_; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder() { + return generic_; + } + + // required .FiniteDuration within = 2; + public static final int WITHIN_FIELD_NUMBER = 2; + private akka.remote.WireFormats.FiniteDuration within_; + /** + * required .FiniteDuration within = 2; + */ + public boolean hasWithin() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration getWithin() { + return within_; + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder() { + return within_; + } + + // required .FiniteDuration interval = 3; + public static final int INTERVAL_FIELD_NUMBER = 3; + private akka.remote.WireFormats.FiniteDuration interval_; + /** + * required .FiniteDuration interval = 3; + */ + public boolean hasInterval() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required .FiniteDuration interval = 3; + */ + public akka.remote.WireFormats.FiniteDuration getInterval() { + return interval_; + } + /** + * required .FiniteDuration interval = 3; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getIntervalOrBuilder() { + return interval_; + } + + private void initFields() { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + interval_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasGeneric()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasWithin()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasInterval()) { + memoizedIsInitialized = 0; + return false; + } + if (!getGeneric().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getWithin().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getInterval().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, generic_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(2, within_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(3, interval_); + } + 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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, generic_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(2, within_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(3, interval_); + } + 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 akka.remote.WireFormats.TailChoppingPool parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.TailChoppingPool parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.TailChoppingPool parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.TailChoppingPool parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.TailChoppingPool prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TailChoppingPool} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.TailChoppingPoolOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_TailChoppingPool_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_TailChoppingPool_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.TailChoppingPool.class, akka.remote.WireFormats.TailChoppingPool.Builder.class); + } + + // Construct using akka.remote.WireFormats.TailChoppingPool.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getGenericFieldBuilder(); + getWithinFieldBuilder(); + getIntervalFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (genericBuilder_ == null) { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + } else { + genericBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (withinBuilder_ == null) { + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } else { + withinBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (intervalBuilder_ == null) { + interval_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + } else { + intervalBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_TailChoppingPool_descriptor; + } + + public akka.remote.WireFormats.TailChoppingPool getDefaultInstanceForType() { + return akka.remote.WireFormats.TailChoppingPool.getDefaultInstance(); + } + + public akka.remote.WireFormats.TailChoppingPool build() { + akka.remote.WireFormats.TailChoppingPool result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.TailChoppingPool buildPartial() { + akka.remote.WireFormats.TailChoppingPool result = new akka.remote.WireFormats.TailChoppingPool(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (genericBuilder_ == null) { + result.generic_ = generic_; + } else { + result.generic_ = genericBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + if (withinBuilder_ == null) { + result.within_ = within_; + } else { + result.within_ = withinBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + if (intervalBuilder_ == null) { + result.interval_ = interval_; + } else { + result.interval_ = intervalBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.TailChoppingPool) { + return mergeFrom((akka.remote.WireFormats.TailChoppingPool)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.TailChoppingPool other) { + if (other == akka.remote.WireFormats.TailChoppingPool.getDefaultInstance()) return this; + if (other.hasGeneric()) { + mergeGeneric(other.getGeneric()); + } + if (other.hasWithin()) { + mergeWithin(other.getWithin()); + } + if (other.hasInterval()) { + mergeInterval(other.getInterval()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasGeneric()) { + + return false; + } + if (!hasWithin()) { + + return false; + } + if (!hasInterval()) { + + return false; + } + if (!getGeneric().isInitialized()) { + + return false; + } + if (!getWithin().isInitialized()) { + + return false; + } + if (!getInterval().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.TailChoppingPool parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.TailChoppingPool) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required .GenericRoutingPool generic = 1; + private akka.remote.WireFormats.GenericRoutingPool generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder> genericBuilder_; + /** + * required .GenericRoutingPool generic = 1; + */ + public boolean hasGeneric() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool getGeneric() { + if (genericBuilder_ == null) { + return generic_; + } else { + return genericBuilder_.getMessage(); + } + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder setGeneric(akka.remote.WireFormats.GenericRoutingPool value) { + if (genericBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + generic_ = value; + onChanged(); + } else { + genericBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder setGeneric( + akka.remote.WireFormats.GenericRoutingPool.Builder builderForValue) { + if (genericBuilder_ == null) { + generic_ = builderForValue.build(); + onChanged(); + } else { + genericBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder mergeGeneric(akka.remote.WireFormats.GenericRoutingPool value) { + if (genericBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + generic_ != akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance()) { + generic_ = + akka.remote.WireFormats.GenericRoutingPool.newBuilder(generic_).mergeFrom(value).buildPartial(); + } else { + generic_ = value; + } + onChanged(); + } else { + genericBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public Builder clearGeneric() { + if (genericBuilder_ == null) { + generic_ = akka.remote.WireFormats.GenericRoutingPool.getDefaultInstance(); + onChanged(); + } else { + genericBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPool.Builder getGenericBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getGenericFieldBuilder().getBuilder(); + } + /** + * required .GenericRoutingPool generic = 1; + */ + public akka.remote.WireFormats.GenericRoutingPoolOrBuilder getGenericOrBuilder() { + if (genericBuilder_ != null) { + return genericBuilder_.getMessageOrBuilder(); + } else { + return generic_; + } + } + /** + * required .GenericRoutingPool generic = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder> + getGenericFieldBuilder() { + if (genericBuilder_ == null) { + genericBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.GenericRoutingPool, akka.remote.WireFormats.GenericRoutingPool.Builder, akka.remote.WireFormats.GenericRoutingPoolOrBuilder>( + generic_, + getParentForChildren(), + isClean()); + generic_ = null; + } + return genericBuilder_; + } + + // required .FiniteDuration within = 2; + private akka.remote.WireFormats.FiniteDuration within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> withinBuilder_; + /** + * required .FiniteDuration within = 2; + */ + public boolean hasWithin() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration getWithin() { + if (withinBuilder_ == null) { + return within_; + } else { + return withinBuilder_.getMessage(); + } + } + /** + * required .FiniteDuration within = 2; + */ + public Builder setWithin(akka.remote.WireFormats.FiniteDuration value) { + if (withinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + within_ = value; + onChanged(); + } else { + withinBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder setWithin( + akka.remote.WireFormats.FiniteDuration.Builder builderForValue) { + if (withinBuilder_ == null) { + within_ = builderForValue.build(); + onChanged(); + } else { + withinBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder mergeWithin(akka.remote.WireFormats.FiniteDuration value) { + if (withinBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + within_ != akka.remote.WireFormats.FiniteDuration.getDefaultInstance()) { + within_ = + akka.remote.WireFormats.FiniteDuration.newBuilder(within_).mergeFrom(value).buildPartial(); + } else { + within_ = value; + } + onChanged(); + } else { + withinBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public Builder clearWithin() { + if (withinBuilder_ == null) { + within_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + onChanged(); + } else { + withinBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDuration.Builder getWithinBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getWithinFieldBuilder().getBuilder(); + } + /** + * required .FiniteDuration within = 2; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getWithinOrBuilder() { + if (withinBuilder_ != null) { + return withinBuilder_.getMessageOrBuilder(); + } else { + return within_; + } + } + /** + * required .FiniteDuration within = 2; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> + getWithinFieldBuilder() { + if (withinBuilder_ == null) { + withinBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder>( + within_, + getParentForChildren(), + isClean()); + within_ = null; + } + return withinBuilder_; + } + + // required .FiniteDuration interval = 3; + private akka.remote.WireFormats.FiniteDuration interval_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> intervalBuilder_; + /** + * required .FiniteDuration interval = 3; + */ + public boolean hasInterval() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required .FiniteDuration interval = 3; + */ + public akka.remote.WireFormats.FiniteDuration getInterval() { + if (intervalBuilder_ == null) { + return interval_; + } else { + return intervalBuilder_.getMessage(); + } + } + /** + * required .FiniteDuration interval = 3; + */ + public Builder setInterval(akka.remote.WireFormats.FiniteDuration value) { + if (intervalBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + interval_ = value; + onChanged(); + } else { + intervalBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * required .FiniteDuration interval = 3; + */ + public Builder setInterval( + akka.remote.WireFormats.FiniteDuration.Builder builderForValue) { + if (intervalBuilder_ == null) { + interval_ = builderForValue.build(); + onChanged(); + } else { + intervalBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * required .FiniteDuration interval = 3; + */ + public Builder mergeInterval(akka.remote.WireFormats.FiniteDuration value) { + if (intervalBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + interval_ != akka.remote.WireFormats.FiniteDuration.getDefaultInstance()) { + interval_ = + akka.remote.WireFormats.FiniteDuration.newBuilder(interval_).mergeFrom(value).buildPartial(); + } else { + interval_ = value; + } + onChanged(); + } else { + intervalBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * required .FiniteDuration interval = 3; + */ + public Builder clearInterval() { + if (intervalBuilder_ == null) { + interval_ = akka.remote.WireFormats.FiniteDuration.getDefaultInstance(); + onChanged(); + } else { + intervalBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * required .FiniteDuration interval = 3; + */ + public akka.remote.WireFormats.FiniteDuration.Builder getIntervalBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getIntervalFieldBuilder().getBuilder(); + } + /** + * required .FiniteDuration interval = 3; + */ + public akka.remote.WireFormats.FiniteDurationOrBuilder getIntervalOrBuilder() { + if (intervalBuilder_ != null) { + return intervalBuilder_.getMessageOrBuilder(); + } else { + return interval_; + } + } + /** + * required .FiniteDuration interval = 3; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder> + getIntervalFieldBuilder() { + if (intervalBuilder_ == null) { + intervalBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.WireFormats.FiniteDuration, akka.remote.WireFormats.FiniteDuration.Builder, akka.remote.WireFormats.FiniteDurationOrBuilder>( + interval_, + getParentForChildren(), + isClean()); + interval_ = null; + } + return intervalBuilder_; + } + + // @@protoc_insertion_point(builder_scope:TailChoppingPool) + } + + static { + defaultInstance = new TailChoppingPool(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:TailChoppingPool) + } + + public interface RemoteRouterConfigOrBuilder + extends akka.protobuf.MessageOrBuilder { + + // required .Payload local = 1; + /** + * required .Payload local = 1; + */ + boolean hasLocal(); + /** + * required .Payload local = 1; + */ + akka.remote.ContainerFormats.Payload getLocal(); + /** + * required .Payload local = 1; + */ + akka.remote.ContainerFormats.PayloadOrBuilder getLocalOrBuilder(); + + // repeated .AddressData nodes = 2; + /** + * repeated .AddressData nodes = 2; + */ + java.util.List + getNodesList(); + /** + * repeated .AddressData nodes = 2; + */ + akka.remote.WireFormats.AddressData getNodes(int index); + /** + * repeated .AddressData nodes = 2; + */ + int getNodesCount(); + /** + * repeated .AddressData nodes = 2; + */ + java.util.List + getNodesOrBuilderList(); + /** + * repeated .AddressData nodes = 2; + */ + akka.remote.WireFormats.AddressDataOrBuilder getNodesOrBuilder( + int index); + } + /** + * Protobuf type {@code RemoteRouterConfig} + */ + public static final class RemoteRouterConfig extends + akka.protobuf.GeneratedMessage + implements RemoteRouterConfigOrBuilder { + // Use RemoteRouterConfig.newBuilder() to construct. + private RemoteRouterConfig(akka.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private RemoteRouterConfig(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final RemoteRouterConfig defaultInstance; + public static RemoteRouterConfig getDefaultInstance() { + return defaultInstance; + } + + public RemoteRouterConfig getDefaultInstanceForType() { + return defaultInstance; + } + + private final akka.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final akka.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RemoteRouterConfig( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + akka.protobuf.UnknownFieldSet.Builder unknownFields = + akka.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: { + akka.remote.ContainerFormats.Payload.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = local_.toBuilder(); + } + local_ = input.readMessage(akka.remote.ContainerFormats.Payload.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(local_); + local_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + nodes_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + nodes_.add(input.readMessage(akka.remote.WireFormats.AddressData.PARSER, extensionRegistry)); + break; + } + } + } + } catch (akka.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new akka.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + nodes_ = java.util.Collections.unmodifiableList(nodes_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_RemoteRouterConfig_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_RemoteRouterConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.RemoteRouterConfig.class, akka.remote.WireFormats.RemoteRouterConfig.Builder.class); + } + + public static akka.protobuf.Parser PARSER = + new akka.protobuf.AbstractParser() { + public RemoteRouterConfig parsePartialFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return new RemoteRouterConfig(input, extensionRegistry); + } + }; + + @java.lang.Override + public akka.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required .Payload local = 1; + public static final int LOCAL_FIELD_NUMBER = 1; + private akka.remote.ContainerFormats.Payload local_; + /** + * required .Payload local = 1; + */ + public boolean hasLocal() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .Payload local = 1; + */ + public akka.remote.ContainerFormats.Payload getLocal() { + return local_; + } + /** + * required .Payload local = 1; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getLocalOrBuilder() { + return local_; + } + + // repeated .AddressData nodes = 2; + public static final int NODES_FIELD_NUMBER = 2; + private java.util.List nodes_; + /** + * repeated .AddressData nodes = 2; + */ + public java.util.List getNodesList() { + return nodes_; + } + /** + * repeated .AddressData nodes = 2; + */ + public java.util.List + getNodesOrBuilderList() { + return nodes_; + } + /** + * repeated .AddressData nodes = 2; + */ + public int getNodesCount() { + return nodes_.size(); + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressData getNodes(int index) { + return nodes_.get(index); + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressDataOrBuilder getNodesOrBuilder( + int index) { + return nodes_.get(index); + } + + private void initFields() { + local_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + nodes_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasLocal()) { + memoizedIsInitialized = 0; + return false; + } + if (!getLocal().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + for (int i = 0; i < getNodesCount(); i++) { + if (!getNodes(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(akka.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, local_); + } + for (int i = 0; i < nodes_.size(); i++) { + output.writeMessage(2, nodes_.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 += akka.protobuf.CodedOutputStream + .computeMessageSize(1, local_); + } + for (int i = 0; i < nodes_.size(); i++) { + size += akka.protobuf.CodedOutputStream + .computeMessageSize(2, nodes_.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 akka.remote.WireFormats.RemoteRouterConfig parseFrom( + akka.protobuf.ByteString data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom( + akka.protobuf.ByteString data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom(byte[] data) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom( + byte[] data, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws akka.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseDelimitedFrom( + java.io.InputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom( + akka.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static akka.remote.WireFormats.RemoteRouterConfig parseFrom( + akka.protobuf.CodedInputStream input, + akka.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(akka.remote.WireFormats.RemoteRouterConfig prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code RemoteRouterConfig} + */ + public static final class Builder extends + akka.protobuf.GeneratedMessage.Builder + implements akka.remote.WireFormats.RemoteRouterConfigOrBuilder { + public static final akka.protobuf.Descriptors.Descriptor + getDescriptor() { + return akka.remote.WireFormats.internal_static_RemoteRouterConfig_descriptor; + } + + protected akka.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return akka.remote.WireFormats.internal_static_RemoteRouterConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + akka.remote.WireFormats.RemoteRouterConfig.class, akka.remote.WireFormats.RemoteRouterConfig.Builder.class); + } + + // Construct using akka.remote.WireFormats.RemoteRouterConfig.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + akka.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getLocalFieldBuilder(); + getNodesFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (localBuilder_ == null) { + local_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + } else { + localBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (nodesBuilder_ == null) { + nodes_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + nodesBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public akka.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return akka.remote.WireFormats.internal_static_RemoteRouterConfig_descriptor; + } + + public akka.remote.WireFormats.RemoteRouterConfig getDefaultInstanceForType() { + return akka.remote.WireFormats.RemoteRouterConfig.getDefaultInstance(); + } + + public akka.remote.WireFormats.RemoteRouterConfig build() { + akka.remote.WireFormats.RemoteRouterConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public akka.remote.WireFormats.RemoteRouterConfig buildPartial() { + akka.remote.WireFormats.RemoteRouterConfig result = new akka.remote.WireFormats.RemoteRouterConfig(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (localBuilder_ == null) { + result.local_ = local_; + } else { + result.local_ = localBuilder_.build(); + } + if (nodesBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002)) { + nodes_ = java.util.Collections.unmodifiableList(nodes_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.nodes_ = nodes_; + } else { + result.nodes_ = nodesBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(akka.protobuf.Message other) { + if (other instanceof akka.remote.WireFormats.RemoteRouterConfig) { + return mergeFrom((akka.remote.WireFormats.RemoteRouterConfig)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(akka.remote.WireFormats.RemoteRouterConfig other) { + if (other == akka.remote.WireFormats.RemoteRouterConfig.getDefaultInstance()) return this; + if (other.hasLocal()) { + mergeLocal(other.getLocal()); + } + if (nodesBuilder_ == null) { + if (!other.nodes_.isEmpty()) { + if (nodes_.isEmpty()) { + nodes_ = other.nodes_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureNodesIsMutable(); + nodes_.addAll(other.nodes_); + } + onChanged(); + } + } else { + if (!other.nodes_.isEmpty()) { + if (nodesBuilder_.isEmpty()) { + nodesBuilder_.dispose(); + nodesBuilder_ = null; + nodes_ = other.nodes_; + bitField0_ = (bitField0_ & ~0x00000002); + nodesBuilder_ = + akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getNodesFieldBuilder() : null; + } else { + nodesBuilder_.addAllMessages(other.nodes_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasLocal()) { + + return false; + } + if (!getLocal().isInitialized()) { + + return false; + } + for (int i = 0; i < getNodesCount(); i++) { + if (!getNodes(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + akka.protobuf.CodedInputStream input, + akka.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + akka.remote.WireFormats.RemoteRouterConfig parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (akka.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (akka.remote.WireFormats.RemoteRouterConfig) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required .Payload local = 1; + private akka.remote.ContainerFormats.Payload local_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> localBuilder_; + /** + * required .Payload local = 1; + */ + public boolean hasLocal() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .Payload local = 1; + */ + public akka.remote.ContainerFormats.Payload getLocal() { + if (localBuilder_ == null) { + return local_; + } else { + return localBuilder_.getMessage(); + } + } + /** + * required .Payload local = 1; + */ + public Builder setLocal(akka.remote.ContainerFormats.Payload value) { + if (localBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + local_ = value; + onChanged(); + } else { + localBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Payload local = 1; + */ + public Builder setLocal( + akka.remote.ContainerFormats.Payload.Builder builderForValue) { + if (localBuilder_ == null) { + local_ = builderForValue.build(); + onChanged(); + } else { + localBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Payload local = 1; + */ + public Builder mergeLocal(akka.remote.ContainerFormats.Payload value) { + if (localBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + local_ != akka.remote.ContainerFormats.Payload.getDefaultInstance()) { + local_ = + akka.remote.ContainerFormats.Payload.newBuilder(local_).mergeFrom(value).buildPartial(); + } else { + local_ = value; + } + onChanged(); + } else { + localBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * required .Payload local = 1; + */ + public Builder clearLocal() { + if (localBuilder_ == null) { + local_ = akka.remote.ContainerFormats.Payload.getDefaultInstance(); + onChanged(); + } else { + localBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * required .Payload local = 1; + */ + public akka.remote.ContainerFormats.Payload.Builder getLocalBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getLocalFieldBuilder().getBuilder(); + } + /** + * required .Payload local = 1; + */ + public akka.remote.ContainerFormats.PayloadOrBuilder getLocalOrBuilder() { + if (localBuilder_ != null) { + return localBuilder_.getMessageOrBuilder(); + } else { + return local_; + } + } + /** + * required .Payload local = 1; + */ + private akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> + getLocalFieldBuilder() { + if (localBuilder_ == null) { + localBuilder_ = new akka.protobuf.SingleFieldBuilder< + akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder>( + local_, + getParentForChildren(), + isClean()); + local_ = null; + } + return localBuilder_; + } + + // repeated .AddressData nodes = 2; + private java.util.List nodes_ = + java.util.Collections.emptyList(); + private void ensureNodesIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + nodes_ = new java.util.ArrayList(nodes_); + bitField0_ |= 0x00000002; + } + } + + private akka.protobuf.RepeatedFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> nodesBuilder_; + + /** + * repeated .AddressData nodes = 2; + */ + public java.util.List getNodesList() { + if (nodesBuilder_ == null) { + return java.util.Collections.unmodifiableList(nodes_); + } else { + return nodesBuilder_.getMessageList(); + } + } + /** + * repeated .AddressData nodes = 2; + */ + public int getNodesCount() { + if (nodesBuilder_ == null) { + return nodes_.size(); + } else { + return nodesBuilder_.getCount(); + } + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressData getNodes(int index) { + if (nodesBuilder_ == null) { + return nodes_.get(index); + } else { + return nodesBuilder_.getMessage(index); + } + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder setNodes( + int index, akka.remote.WireFormats.AddressData value) { + if (nodesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNodesIsMutable(); + nodes_.set(index, value); + onChanged(); + } else { + nodesBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder setNodes( + int index, akka.remote.WireFormats.AddressData.Builder builderForValue) { + if (nodesBuilder_ == null) { + ensureNodesIsMutable(); + nodes_.set(index, builderForValue.build()); + onChanged(); + } else { + nodesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder addNodes(akka.remote.WireFormats.AddressData value) { + if (nodesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNodesIsMutable(); + nodes_.add(value); + onChanged(); + } else { + nodesBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder addNodes( + int index, akka.remote.WireFormats.AddressData value) { + if (nodesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNodesIsMutable(); + nodes_.add(index, value); + onChanged(); + } else { + nodesBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder addNodes( + akka.remote.WireFormats.AddressData.Builder builderForValue) { + if (nodesBuilder_ == null) { + ensureNodesIsMutable(); + nodes_.add(builderForValue.build()); + onChanged(); + } else { + nodesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder addNodes( + int index, akka.remote.WireFormats.AddressData.Builder builderForValue) { + if (nodesBuilder_ == null) { + ensureNodesIsMutable(); + nodes_.add(index, builderForValue.build()); + onChanged(); + } else { + nodesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder addAllNodes( + java.lang.Iterable values) { + if (nodesBuilder_ == null) { + ensureNodesIsMutable(); + super.addAll(values, nodes_); + onChanged(); + } else { + nodesBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder clearNodes() { + if (nodesBuilder_ == null) { + nodes_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + nodesBuilder_.clear(); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public Builder removeNodes(int index) { + if (nodesBuilder_ == null) { + ensureNodesIsMutable(); + nodes_.remove(index); + onChanged(); + } else { + nodesBuilder_.remove(index); + } + return this; + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressData.Builder getNodesBuilder( + int index) { + return getNodesFieldBuilder().getBuilder(index); + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressDataOrBuilder getNodesOrBuilder( + int index) { + if (nodesBuilder_ == null) { + return nodes_.get(index); } else { + return nodesBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .AddressData nodes = 2; + */ + public java.util.List + getNodesOrBuilderList() { + if (nodesBuilder_ != null) { + return nodesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(nodes_); + } + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressData.Builder addNodesBuilder() { + return getNodesFieldBuilder().addBuilder( + akka.remote.WireFormats.AddressData.getDefaultInstance()); + } + /** + * repeated .AddressData nodes = 2; + */ + public akka.remote.WireFormats.AddressData.Builder addNodesBuilder( + int index) { + return getNodesFieldBuilder().addBuilder( + index, akka.remote.WireFormats.AddressData.getDefaultInstance()); + } + /** + * repeated .AddressData nodes = 2; + */ + public java.util.List + getNodesBuilderList() { + return getNodesFieldBuilder().getBuilderList(); + } + private akka.protobuf.RepeatedFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> + getNodesFieldBuilder() { + if (nodesBuilder_ == null) { + nodesBuilder_ = new akka.protobuf.RepeatedFieldBuilder< + akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder>( + nodes_, + ((bitField0_ & 0x00000002) == 0x00000002), + getParentForChildren(), + isClean()); + nodes_ = null; + } + return nodesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:RemoteRouterConfig) + } + + static { + defaultInstance = new RemoteRouterConfig(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:RemoteRouterConfig) + } + private static akka.protobuf.Descriptors.Descriptor internal_static_AckAndEnvelopeContainer_descriptor; private static @@ -10066,6 +17007,46 @@ public final class WireFormats { private static akka.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AddressData_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_FiniteDuration_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_FiniteDuration_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_RemoteScope_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_RemoteScope_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_DefaultResizer_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_DefaultResizer_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_FromConfig_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_FromConfig_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_GenericRoutingPool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_GenericRoutingPool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_ScatterGatherPool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_ScatterGatherPool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_TailChoppingPool_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_TailChoppingPool_fieldAccessorTable; + private static akka.protobuf.Descriptors.Descriptor + internal_static_RemoteRouterConfig_descriptor; + private static + akka.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_RemoteRouterConfig_fieldAccessorTable; public static akka.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -10075,38 +17056,65 @@ public final class WireFormats { descriptor; static { java.lang.String[] descriptorData = { - "\n\021WireFormats.proto\"_\n\027AckAndEnvelopeCon" + - "tainer\022!\n\003ack\030\001 \001(\0132\024.AcknowledgementInf" + - "o\022!\n\010envelope\030\002 \001(\0132\017.RemoteEnvelope\"\203\001\n" + - "\016RemoteEnvelope\022 \n\trecipient\030\001 \002(\0132\r.Act" + - "orRefData\022#\n\007message\030\002 \002(\0132\022.SerializedM" + - "essage\022\035\n\006sender\030\004 \001(\0132\r.ActorRefData\022\013\n" + - "\003seq\030\005 \001(\006\";\n\023AcknowledgementInfo\022\025\n\rcum" + - "ulativeAck\030\001 \002(\006\022\r\n\005nacks\030\002 \003(\006\"\034\n\014Actor" + - "RefData\022\014\n\004path\030\001 \002(\t\"S\n\021SerializedMessa" + - "ge\022\017\n\007message\030\001 \002(\014\022\024\n\014serializerId\030\002 \002(", - "\005\022\027\n\017messageManifest\030\003 \001(\014\"~\n\023DaemonMsgC" + - "reateData\022\031\n\005props\030\001 \002(\0132\n.PropsData\022\033\n\006" + - "deploy\030\002 \002(\0132\013.DeployData\022\014\n\004path\030\003 \002(\t\022" + - "!\n\nsupervisor\030\004 \002(\0132\r.ActorRefData\"\204\001\n\tP" + - "ropsData\022\033\n\006deploy\030\002 \002(\0132\013.DeployData\022\r\n" + - "\005clazz\030\003 \002(\t\022\014\n\004args\030\004 \003(\014\022\021\n\tmanifests\030" + - "\005 \003(\t\022\025\n\rserializerIds\030\006 \003(\005\022\023\n\013hasManif" + - "est\030\007 \003(\010\"c\n\nDeployData\022\014\n\004path\030\001 \002(\t\022\016\n" + - "\006config\030\002 \001(\014\022\024\n\014routerConfig\030\003 \001(\014\022\r\n\005s" + - "cope\030\004 \001(\014\022\022\n\ndispatcher\030\005 \001(\t\"P\n\023AkkaPr", - "otocolMessage\022\017\n\007payload\030\001 \001(\014\022(\n\013instru" + - "ction\030\002 \001(\0132\023.AkkaControlMessage\"b\n\022Akka" + - "ControlMessage\022!\n\013commandType\030\001 \002(\0162\014.Co" + - "mmandType\022)\n\rhandshakeInfo\030\002 \001(\0132\022.AkkaH" + - "andshakeInfo\"N\n\021AkkaHandshakeInfo\022\034\n\006ori" + - "gin\030\001 \002(\0132\014.AddressData\022\013\n\003uid\030\002 \002(\006\022\016\n\006" + - "cookie\030\003 \001(\t\"O\n\013AddressData\022\016\n\006system\030\001 " + - "\002(\t\022\020\n\010hostname\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010p" + - "rotocol\030\004 \001(\t*{\n\013CommandType\022\r\n\tASSOCIAT" + - "E\020\001\022\020\n\014DISASSOCIATE\020\002\022\r\n\tHEARTBEAT\020\003\022\036\n\032", - "DISASSOCIATE_SHUTTING_DOWN\020\004\022\034\n\030DISASSOC" + - "IATE_QUARANTINED\020\005B\017\n\013akka.remoteH\001" + "\n\021WireFormats.proto\032\026ContainerFormats.pr" + + "oto\"_\n\027AckAndEnvelopeContainer\022!\n\003ack\030\001 " + + "\001(\0132\024.AcknowledgementInfo\022!\n\010envelope\030\002 " + + "\001(\0132\017.RemoteEnvelope\"\203\001\n\016RemoteEnvelope\022" + + " \n\trecipient\030\001 \002(\0132\r.ActorRefData\022#\n\007mes" + + "sage\030\002 \002(\0132\022.SerializedMessage\022\035\n\006sender" + + "\030\004 \001(\0132\r.ActorRefData\022\013\n\003seq\030\005 \001(\006\";\n\023Ac" + + "knowledgementInfo\022\025\n\rcumulativeAck\030\001 \002(\006" + + "\022\r\n\005nacks\030\002 \003(\006\"\034\n\014ActorRefData\022\014\n\004path\030" + + "\001 \002(\t\"S\n\021SerializedMessage\022\017\n\007message\030\001 ", + "\002(\014\022\024\n\014serializerId\030\002 \002(\005\022\027\n\017messageMani" + + "fest\030\003 \001(\014\"~\n\023DaemonMsgCreateData\022\031\n\005pro" + + "ps\030\001 \002(\0132\n.PropsData\022\033\n\006deploy\030\002 \002(\0132\013.D" + + "eployData\022\014\n\004path\030\003 \002(\t\022!\n\nsupervisor\030\004 " + + "\002(\0132\r.ActorRefData\"\204\001\n\tPropsData\022\033\n\006depl" + + "oy\030\002 \002(\0132\013.DeployData\022\r\n\005clazz\030\003 \002(\t\022\014\n\004" + + "args\030\004 \003(\014\022\021\n\tmanifests\030\005 \003(\t\022\025\n\rseriali" + + "zerIds\030\006 \003(\005\022\023\n\013hasManifest\030\007 \003(\010\"\211\002\n\nDe" + + "ployData\022\014\n\004path\030\001 \002(\t\022\016\n\006config\030\002 \001(\014\022\024" + + "\n\014routerConfig\030\003 \001(\014\022\r\n\005scope\030\004 \001(\014\022\022\n\nd", + "ispatcher\030\005 \001(\t\022\031\n\021scopeSerializerId\030\006 \001" + + "(\005\022\025\n\rscopeManifest\030\007 \001(\t\022\032\n\022configSeria" + + "lizerId\030\010 \001(\005\022\026\n\016configManifest\030\t \001(\t\022 \n" + + "\030routerConfigSerializerId\030\n \001(\005\022\034\n\024route" + + "rConfigManifest\030\013 \001(\t\"P\n\023AkkaProtocolMes" + + "sage\022\017\n\007payload\030\001 \001(\014\022(\n\013instruction\030\002 \001" + + "(\0132\023.AkkaControlMessage\"b\n\022AkkaControlMe" + + "ssage\022!\n\013commandType\030\001 \002(\0162\014.CommandType" + + "\022)\n\rhandshakeInfo\030\002 \001(\0132\022.AkkaHandshakeI" + + "nfo\"N\n\021AkkaHandshakeInfo\022\034\n\006origin\030\001 \002(\013", + "2\014.AddressData\022\013\n\003uid\030\002 \002(\006\022\016\n\006cookie\030\003 " + + "\001(\t\"O\n\013AddressData\022\016\n\006system\030\001 \002(\t\022\020\n\010ho" + + "stname\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010protocol\030\004" + + " \001(\t\"8\n\016FiniteDuration\022\r\n\005value\030\001 \002(\003\022\027\n" + + "\004unit\030\002 \002(\0162\t.TimeUnit\")\n\013RemoteScope\022\032\n" + + "\004node\030\001 \002(\0132\014.AddressData\"\261\001\n\016DefaultRes" + + "izer\022\022\n\nlowerBound\030\001 \002(\r\022\022\n\nupperBound\030\002" + + " \002(\r\022\031\n\021pressureThreshold\030\003 \002(\r\022\022\n\nrampu" + + "pRate\030\004 \002(\001\022\030\n\020backoffThreshold\030\005 \002(\001\022\023\n" + + "\013backoffRate\030\006 \002(\001\022\031\n\021messagesPerResize\030", + "\007 \002(\r\"A\n\nFromConfig\022\031\n\007resizer\030\001 \001(\0132\010.P" + + "ayload\022\030\n\020routerDispatcher\030\002 \001(\t\"{\n\022Gene" + + "ricRoutingPool\022\025\n\rnrOfInstances\030\001 \002(\r\022\030\n" + + "\020routerDispatcher\030\002 \001(\t\022\031\n\021usePoolDispat" + + "cher\030\003 \002(\010\022\031\n\007resizer\030\004 \001(\0132\010.Payload\"Z\n" + + "\021ScatterGatherPool\022$\n\007generic\030\001 \002(\0132\023.Ge" + + "nericRoutingPool\022\037\n\006within\030\002 \002(\0132\017.Finit" + + "eDuration\"|\n\020TailChoppingPool\022$\n\007generic" + + "\030\001 \002(\0132\023.GenericRoutingPool\022\037\n\006within\030\002 " + + "\002(\0132\017.FiniteDuration\022!\n\010interval\030\003 \002(\0132\017", + ".FiniteDuration\"J\n\022RemoteRouterConfig\022\027\n" + + "\005local\030\001 \002(\0132\010.Payload\022\033\n\005nodes\030\002 \003(\0132\014." + + "AddressData*{\n\013CommandType\022\r\n\tASSOCIATE\020" + + "\001\022\020\n\014DISASSOCIATE\020\002\022\r\n\tHEARTBEAT\020\003\022\036\n\032DI" + + "SASSOCIATE_SHUTTING_DOWN\020\004\022\034\n\030DISASSOCIA" + + "TE_QUARANTINED\020\005*n\n\010TimeUnit\022\017\n\013NANOSECO" + + "NDS\020\001\022\020\n\014MICROSECONDS\020\002\022\020\n\014MILLISECONDS\020" + + "\003\022\013\n\007SECONDS\020\004\022\013\n\007MINUTES\020\005\022\t\n\005HOURS\020\006\022\010" + + "\n\004DAYS\020\007B\017\n\013akka.remoteH\001" }; akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -10160,7 +17168,7 @@ public final class WireFormats { internal_static_DeployData_fieldAccessorTable = new akka.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_DeployData_descriptor, - new java.lang.String[] { "Path", "Config", "RouterConfig", "Scope", "Dispatcher", }); + new java.lang.String[] { "Path", "Config", "RouterConfig", "Scope", "Dispatcher", "ScopeSerializerId", "ScopeManifest", "ConfigSerializerId", "ConfigManifest", "RouterConfigSerializerId", "RouterConfigManifest", }); internal_static_AkkaProtocolMessage_descriptor = getDescriptor().getMessageTypes().get(8); internal_static_AkkaProtocolMessage_fieldAccessorTable = new @@ -10185,12 +17193,61 @@ public final class WireFormats { akka.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_AddressData_descriptor, new java.lang.String[] { "System", "Hostname", "Port", "Protocol", }); + internal_static_FiniteDuration_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_FiniteDuration_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_FiniteDuration_descriptor, + new java.lang.String[] { "Value", "Unit", }); + internal_static_RemoteScope_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_RemoteScope_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_RemoteScope_descriptor, + new java.lang.String[] { "Node", }); + internal_static_DefaultResizer_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_DefaultResizer_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_DefaultResizer_descriptor, + new java.lang.String[] { "LowerBound", "UpperBound", "PressureThreshold", "RampupRate", "BackoffThreshold", "BackoffRate", "MessagesPerResize", }); + internal_static_FromConfig_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_FromConfig_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_FromConfig_descriptor, + new java.lang.String[] { "Resizer", "RouterDispatcher", }); + internal_static_GenericRoutingPool_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_GenericRoutingPool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_GenericRoutingPool_descriptor, + new java.lang.String[] { "NrOfInstances", "RouterDispatcher", "UsePoolDispatcher", "Resizer", }); + internal_static_ScatterGatherPool_descriptor = + getDescriptor().getMessageTypes().get(17); + internal_static_ScatterGatherPool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_ScatterGatherPool_descriptor, + new java.lang.String[] { "Generic", "Within", }); + internal_static_TailChoppingPool_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_TailChoppingPool_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_TailChoppingPool_descriptor, + new java.lang.String[] { "Generic", "Within", "Interval", }); + internal_static_RemoteRouterConfig_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_RemoteRouterConfig_fieldAccessorTable = new + akka.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_RemoteRouterConfig_descriptor, + new java.lang.String[] { "Local", "Nodes", }); return null; } }; akka.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new akka.protobuf.Descriptors.FileDescriptor[] { + akka.remote.ContainerFormats.getDescriptor(), }, assigner); } diff --git a/akka-remote/src/main/protobuf/WireFormats.proto b/akka-remote/src/main/protobuf/WireFormats.proto index 49e9df558d..60f09c5723 100644 --- a/akka-remote/src/main/protobuf/WireFormats.proto +++ b/akka-remote/src/main/protobuf/WireFormats.proto @@ -5,6 +5,8 @@ option java_package = "akka.remote"; option optimize_for = SPEED; +import "ContainerFormats.proto"; + /****************************************** * Remoting message formats ******************************************/ @@ -84,6 +86,14 @@ message DeployData { optional bytes routerConfig = 3; optional bytes scope = 4; optional string dispatcher = 5; + // older wire protocol: hardcoded class used to look up serializer + // newer wire protocol: serializer id and manifest available for each + optional int32 scopeSerializerId = 6; + optional string scopeManifest = 7; + optional int32 configSerializerId = 8; + optional string configManifest = 9; + optional int32 routerConfigSerializerId = 10; + optional string routerConfigManifest = 11; } @@ -135,3 +145,65 @@ message AddressData { required uint32 port = 3; optional string protocol = 4; } + +/** + * java.util.concurrent.TimeUnit enum + */ +enum TimeUnit { + NANOSECONDS = 1; + MICROSECONDS = 2; + MILLISECONDS = 3; + SECONDS = 4; + MINUTES = 5; + HOURS = 6; + DAYS = 7; +} + +message FiniteDuration { + required int64 value = 1; + required TimeUnit unit = 2; +} + +message RemoteScope { + required AddressData node = 1; +} + +// router configs + +message DefaultResizer { + required uint32 lowerBound = 1; + required uint32 upperBound = 2; + required uint32 pressureThreshold = 3; + required double rampupRate = 4; + required double backoffThreshold = 5; + required double backoffRate = 6; + required uint32 messagesPerResize = 7; +} + +message FromConfig { + optional Payload resizer = 1; + optional string routerDispatcher = 2; +} + +message GenericRoutingPool { + required uint32 nrOfInstances = 1; + optional string routerDispatcher = 2; + required bool usePoolDispatcher = 3; + optional Payload resizer = 4; +} + +message ScatterGatherPool { + required GenericRoutingPool generic = 1; + required FiniteDuration within = 2; +} + +message TailChoppingPool { + required GenericRoutingPool generic = 1; + required FiniteDuration within = 2; + required FiniteDuration interval = 3; +} + +message RemoteRouterConfig { + required Payload local = 1; + repeated AddressData nodes = 2; +} \ No newline at end of file diff --git a/akka-remote/src/main/resources/reference.conf b/akka-remote/src/main/resources/reference.conf index 4bc7e81d49..c91af3a436 100644 --- a/akka-remote/src/main/resources/reference.conf +++ b/akka-remote/src/main/resources/reference.conf @@ -93,6 +93,28 @@ akka { "akka.actor.ActorKilledException" = akka-misc "akka.actor.InvalidActorNameException" = akka-misc "akka.actor.InvalidMessageException" = akka-misc + + "akka.actor.LocalScope$" = akka-misc + "akka.remote.RemoteScope" = akka-misc + + "com.typesafe.config.impl.SimpleConfig" = akka-misc + "com.typesafe.config.Config" = akka-misc + + "akka.routing.FromConfig" = akka-misc + "akka.routing.DefaultResizer" = akka-misc + "akka.routing.BalancingPool" = akka-misc + "akka.routing.BroadcastGroup" = akka-misc + "akka.routing.BroadcastPool" = akka-misc + "akka.routing.RandomGroup" = akka-misc + "akka.routing.RandomPool" = akka-misc + "akka.routing.RoundRobinGroup" = akka-misc + "akka.routing.RoundRobinPool" = akka-misc + "akka.routing.ScatterGatherFirstCompletedGroup" = akka-misc + "akka.routing.ScatterGatherFirstCompletedPool" = akka-misc + "akka.routing.SmallestMailboxPool" = akka-misc + "akka.routing.TailChoppingGroup" = akka-misc + "akka.routing.TailChoppingPool" = akka-misc + "akka.remote.routing.RemoteRouterConfig" = akka-misc } serialization-identifiers { diff --git a/akka-remote/src/main/scala/akka/remote/serialization/DaemonMsgCreateSerializer.scala b/akka-remote/src/main/scala/akka/remote/serialization/DaemonMsgCreateSerializer.scala index 9d47b64b9e..a6fce2ddef 100644 --- a/akka-remote/src/main/scala/akka/remote/serialization/DaemonMsgCreateSerializer.scala +++ b/akka-remote/src/main/scala/akka/remote/serialization/DaemonMsgCreateSerializer.scala @@ -41,14 +41,31 @@ private[akka] final class DaemonMsgCreateSerializer(val system: ExtendedActorSys def deployProto(d: Deploy): DeployData = { val builder = DeployData.newBuilder.setPath(d.path) - if (d.config != ConfigFactory.empty) - builder.setConfig(oldSerialize(d.config)) - if (d.routerConfig != NoRouter) - builder.setRouterConfig(oldSerialize(d.routerConfig)) - if (d.scope != NoScopeGiven) - builder.setScope(oldSerialize(d.scope)) - if (d.dispatcher != NoDispatcherGiven) + + { + val (serId, _, manifest, bytes) = serialize(d.config) + builder.setConfigSerializerId(serId) + builder.setConfigManifest(manifest) + builder.setConfig(ByteString.copyFrom(bytes)) + } + + if (d.routerConfig != NoRouter) { + val (serId, _, manifest, bytes) = serialize(d.routerConfig) + builder.setRouterConfigSerializerId(serId) + builder.setRouterConfigManifest(manifest) + builder.setRouterConfig(ByteString.copyFrom(bytes)) + } + + if (d.scope != NoScopeGiven) { + val (serId, _, manifest, bytes) = serialize(d.scope) + builder.setScopeSerializerId(serId) + builder.setScopeManifest(manifest) + builder.setScope(ByteString.copyFrom(bytes)) + } + + if (d.dispatcher != NoDispatcherGiven) { builder.setDispatcher(d.dispatcher) + } builder.build } @@ -82,15 +99,45 @@ private[akka] final class DaemonMsgCreateSerializer(val system: ExtendedActorSys val proto = DaemonMsgCreateData.parseFrom(bytes) def deploy(protoDeploy: DeployData): Deploy = { + val config = - if (protoDeploy.hasConfig) oldDeserialize(protoDeploy.getConfig, classOf[Config]) - else ConfigFactory.empty + if (protoDeploy.hasConfig) { + if (protoDeploy.hasConfigSerializerId) { + serialization.deserialize( + protoDeploy.getConfig.toByteArray, + protoDeploy.getConfigSerializerId, + protoDeploy.getConfigManifest).get.asInstanceOf[Config] + } else { + // old wire format + oldDeserialize(protoDeploy.getConfig, classOf[Config]) + } + } else ConfigFactory.empty + val routerConfig = - if (protoDeploy.hasRouterConfig) oldDeserialize(protoDeploy.getRouterConfig, classOf[RouterConfig]) - else NoRouter + if (protoDeploy.hasRouterConfig) { + if (protoDeploy.hasRouterConfigSerializerId) { + serialization.deserialize( + protoDeploy.getRouterConfig.toByteArray, + protoDeploy.getRouterConfigSerializerId, + protoDeploy.getRouterConfigManifest).get.asInstanceOf[RouterConfig] + } else { + // old wire format + oldDeserialize(protoDeploy.getRouterConfig, classOf[RouterConfig]) + } + } else NoRouter + val scope = - if (protoDeploy.hasScope) oldDeserialize(protoDeploy.getScope, classOf[Scope]) - else NoScopeGiven + if (protoDeploy.hasScope) { + if (protoDeploy.hasScopeSerializerId) { + serialization.deserialize( + protoDeploy.getScope.toByteArray, + protoDeploy.getScopeSerializerId, + protoDeploy.getScopeManifest).get.asInstanceOf[Scope] + } else { + // old wire format + oldDeserialize(protoDeploy.getScope, classOf[Scope]) + } + } else NoScopeGiven val dispatcher = if (protoDeploy.hasDispatcher) protoDeploy.getDispatcher else NoDispatcherGiven diff --git a/akka-remote/src/main/scala/akka/remote/serialization/MiscMessageSerializer.scala b/akka-remote/src/main/scala/akka/remote/serialization/MiscMessageSerializer.scala index 9530116965..c78bbd9164 100644 --- a/akka-remote/src/main/scala/akka/remote/serialization/MiscMessageSerializer.scala +++ b/akka-remote/src/main/scala/akka/remote/serialization/MiscMessageSerializer.scala @@ -3,12 +3,21 @@ */ package akka.remote.serialization -import akka.actor._ -import akka.protobuf.ByteString -import akka.remote.{ ContainerFormats, RemoteWatcher } -import akka.serialization.{ BaseSerializer, Serialization, SerializationExtension, SerializerWithStringManifest } -import java.util.Optional import java.io.NotSerializableException +import java.nio.charset.StandardCharsets +import java.util.Optional +import java.util.concurrent.TimeUnit + +import akka.actor._ +import akka.dispatch.Dispatchers +import akka.remote.routing.RemoteRouterConfig +import akka.remote.{ ContainerFormats, RemoteScope, RemoteWatcher, WireFormats } +import akka.routing._ +import akka.serialization.{ BaseSerializer, Serialization, SerializationExtension, SerializerWithStringManifest } +import com.typesafe.config.{ Config, ConfigFactory, ConfigRenderOptions } + +import scala.collection.JavaConverters._ +import scala.concurrent.duration.{ FiniteDuration, TimeUnit } class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerWithStringManifest with BaseSerializer { @@ -18,23 +27,36 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW private val throwableSupport = new ThrowableSupport(system) private val ParameterlessSerializedMessage = Array.empty[Byte] + private val EmptyConfig = ConfigFactory.empty() def toBinary(obj: AnyRef): Array[Byte] = obj match { - case identify: Identify ⇒ serializeIdentify(identify) - case identity: ActorIdentity ⇒ serializeActorIdentity(identity) - case Some(value) ⇒ serializeSome(value) - case None ⇒ ParameterlessSerializedMessage - case o: Optional[_] ⇒ serializeOptional(o) - case r: ActorRef ⇒ serializeActorRef(r) - case s: Status.Success ⇒ serializeStatusSuccess(s) - case f: Status.Failure ⇒ serializeStatusFailure(f) - case ex: ActorInitializationException ⇒ serializeActorInitializationException(ex) - case t: Throwable ⇒ throwableSupport.serializeThrowable(t) - case PoisonPill ⇒ ParameterlessSerializedMessage - case Kill ⇒ ParameterlessSerializedMessage - case RemoteWatcher.Heartbeat ⇒ ParameterlessSerializedMessage - case hbrsp: RemoteWatcher.HeartbeatRsp ⇒ serializeHeartbeatRsp(hbrsp) - case _ ⇒ throw new IllegalArgumentException(s"Cannot serialize object of type [${obj.getClass.getName}]") + case identify: Identify ⇒ serializeIdentify(identify) + case identity: ActorIdentity ⇒ serializeActorIdentity(identity) + case Some(value) ⇒ serializeSome(value) + case None ⇒ ParameterlessSerializedMessage + case o: Optional[_] ⇒ serializeOptional(o) + case r: ActorRef ⇒ serializeActorRef(r) + case s: Status.Success ⇒ serializeStatusSuccess(s) + case f: Status.Failure ⇒ serializeStatusFailure(f) + case ex: ActorInitializationException ⇒ serializeActorInitializationException(ex) + case t: Throwable ⇒ throwableSupport.serializeThrowable(t) + case PoisonPill ⇒ ParameterlessSerializedMessage + case Kill ⇒ ParameterlessSerializedMessage + case RemoteWatcher.Heartbeat ⇒ ParameterlessSerializedMessage + case hbrsp: RemoteWatcher.HeartbeatRsp ⇒ serializeHeartbeatRsp(hbrsp) + case rs: RemoteScope ⇒ serializeRemoteScope(rs) + case LocalScope ⇒ ParameterlessSerializedMessage + case c: Config ⇒ serializeConfig(c) + case dr: DefaultResizer ⇒ serializeDefaultResizer(dr) + case fc: FromConfig ⇒ serializeFromConfig(fc) + case bp: BalancingPool ⇒ serializeBalancingPool(bp) + case bp: BroadcastPool ⇒ serializeBroadcastPool(bp) + case rp: RandomPool ⇒ serializeRandomPool(rp) + case rrp: RoundRobinPool ⇒ serializeRoundRobinPool(rrp) + case sgp: ScatterGatherFirstCompletedPool ⇒ serializeScatterGatherFirstCompletedPool(sgp) + case tp: TailChoppingPool ⇒ serializeTailChoppingPool(tp) + case rrc: RemoteRouterConfig ⇒ serializeRemoteRouterConfig(rrc) + case _ ⇒ throw new IllegalArgumentException(s"Cannot serialize object of type [${obj.getClass.getName}]") } private def serializeIdentify(identify: Identify): Array[Byte] = @@ -80,6 +102,12 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW ContainerFormats.WatcherHeartbeatResponse.newBuilder().setUid(hbrsp.addressUid).build().toByteArray } + private def serializeRemoteScope(rs: RemoteScope): Array[Byte] = { + val builder = WireFormats.RemoteScope.newBuilder() + builder.setNode(buildAddressData(rs.node)) + builder.build().toByteArray + } + private def actorRefBuilder(actorRef: ActorRef): ContainerFormats.ActorRef.Builder = ContainerFormats.ActorRef.newBuilder() .setPath(Serialization.serializedActorPath(actorRef)) @@ -101,6 +129,119 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW .build().toByteArray } + private def serializeConfig(c: Config): Array[Byte] = { + c.root.render(ConfigRenderOptions.concise()).getBytes(StandardCharsets.UTF_8) + } + + private def serializeDefaultResizer(dr: DefaultResizer): Array[Byte] = { + val builder = WireFormats.DefaultResizer.newBuilder() + builder.setBackoffRate(dr.backoffRate) + builder.setBackoffThreshold(dr.backoffThreshold) + builder.setLowerBound(dr.lowerBound) + builder.setMessagesPerResize(dr.messagesPerResize) + builder.setPressureThreshold(dr.pressureThreshold) + builder.setRampupRate(dr.rampupRate) + builder.setUpperBound(dr.upperBound) + builder.build().toByteArray + } + + private def serializeFromConfig(fc: FromConfig): Array[Byte] = + if (fc == FromConfig) ParameterlessSerializedMessage + else { + val builder = WireFormats.FromConfig.newBuilder() + if (fc.resizer.isDefined) + builder.setResizer(payloadSupport.payloadBuilder(fc.resizer.get)) + if (fc.routerDispatcher != Dispatchers.DefaultDispatcherId) + builder.setRouterDispatcher(fc.routerDispatcher) + builder.build().toByteArray + } + + private def serializeBalancingPool(bp: BalancingPool): Array[Byte] = { + buildGenericRoutingPool(bp.nrOfInstances, bp.routerDispatcher, bp.usePoolDispatcher, bp.resizer).toByteArray + } + + private def serializeBroadcastPool(bp: BroadcastPool): Array[Byte] = { + buildGenericRoutingPool(bp.nrOfInstances, bp.routerDispatcher, bp.usePoolDispatcher, bp.resizer).toByteArray + } + + private def serializeRandomPool(rp: RandomPool): Array[Byte] = { + buildGenericRoutingPool(rp.nrOfInstances, rp.routerDispatcher, rp.usePoolDispatcher, rp.resizer).toByteArray + } + + private def serializeRoundRobinPool(rp: RoundRobinPool): Array[Byte] = { + buildGenericRoutingPool(rp.nrOfInstances, rp.routerDispatcher, rp.usePoolDispatcher, rp.resizer).toByteArray + } + + private def serializeScatterGatherFirstCompletedPool(sgp: ScatterGatherFirstCompletedPool): Array[Byte] = { + val builder = WireFormats.ScatterGatherPool.newBuilder() + builder.setGeneric(buildGenericRoutingPool(sgp.nrOfInstances, sgp.routerDispatcher, sgp.usePoolDispatcher, sgp.resizer)) + builder.setWithin(buildFiniteDuration(sgp.within)) + builder.build().toByteArray + } + + private def serializeTailChoppingPool(tp: TailChoppingPool): Array[Byte] = { + val builder = WireFormats.TailChoppingPool.newBuilder() + builder.setGeneric(buildGenericRoutingPool(tp.nrOfInstances, tp.routerDispatcher, tp.usePoolDispatcher, tp.resizer)) + builder.setWithin(buildFiniteDuration(tp.within)) + builder.setInterval(buildFiniteDuration(tp.interval)) + builder.build().toByteArray + } + + private def serializeRemoteRouterConfig(rrc: RemoteRouterConfig): Array[Byte] = { + val builder = WireFormats.RemoteRouterConfig.newBuilder() + builder.setLocal(payloadSupport.payloadBuilder(rrc.local).build()) + builder.addAllNodes(rrc.nodes.map(buildAddressData).asJava) + builder.build().toByteArray + } + + private def buildGenericRoutingPool( + nrOfInstances: Int, + routerDispatcher: String, + usePoolDispatcher: Boolean, + resizer: Option[Resizer]): WireFormats.GenericRoutingPool = { + val builder = WireFormats.GenericRoutingPool.newBuilder() + builder.setNrOfInstances(nrOfInstances) + if (routerDispatcher != Dispatchers.DefaultDispatcherId) { + builder.setRouterDispatcher(routerDispatcher) + } + if (resizer.isDefined) { + builder.setResizer(payloadSupport.payloadBuilder(resizer.get)) + } + builder.setUsePoolDispatcher(usePoolDispatcher) + builder.build() + } + + private def timeUnitToWire(unit: TimeUnit): WireFormats.TimeUnit = unit match { + case TimeUnit.NANOSECONDS ⇒ WireFormats.TimeUnit.NANOSECONDS + case TimeUnit.MICROSECONDS ⇒ WireFormats.TimeUnit.MICROSECONDS + case TimeUnit.MILLISECONDS ⇒ WireFormats.TimeUnit.MILLISECONDS + case TimeUnit.SECONDS ⇒ WireFormats.TimeUnit.SECONDS + case TimeUnit.MINUTES ⇒ WireFormats.TimeUnit.MINUTES + case TimeUnit.HOURS ⇒ WireFormats.TimeUnit.HOURS + case TimeUnit.DAYS ⇒ WireFormats.TimeUnit.DAYS + } + + private def buildFiniteDuration(duration: FiniteDuration): WireFormats.FiniteDuration = { + WireFormats.FiniteDuration.newBuilder() + .setValue(duration.length) + .setUnit(timeUnitToWire(duration.unit)) + .build() + } + + private def buildAddressData(address: Address): WireFormats.AddressData = { + val builder = WireFormats.AddressData.newBuilder() + address match { + case Address(protocol, system, Some(host), Some(port)) ⇒ + builder.setProtocol(protocol) + builder.setSystem(system) + builder.setHostname(host) + builder.setPort(port) + builder.build() + + case _ ⇒ throw new IllegalArgumentException(s"Address [$address] could not be serialized: host or port missing.") + } + } + private val IdentifyManifest = "A" private val ActorIdentityManifest = "B" private val OptionManifest = "C" @@ -114,6 +255,18 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW private val RemoteWatcherHBManifest = "RWHB" private val RemoteWatcherHBRespManifest = "RWHR" private val ActorInitializationExceptionManifest = "AIEX" + private val LocalScopeManifest = "LS" + private val RemoteScopeManifest = "RS" + private val ConfigManifest = "CF" + private val FromConfigManifest = "FC" + private val DefaultResizerManifest = "DR" + private val BalancingPoolManifest = "ROBAP" + private val BroadcastPoolManifest = "ROBP" + private val RandomPoolManifest = "RORP" + private val RoundRobinPoolManifest = "RORRP" + private val ScatterGatherPoolManifest = "ROSGP" + private val TailChoppingPoolManifest = "ROTCP" + private val RemoteRouterConfigManifest = "RORRC" private val fromBinaryMap = Map[String, Array[Byte] ⇒ AnyRef]( IdentifyManifest → deserializeIdentify, @@ -129,23 +282,48 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW KillManifest → ((_) ⇒ Kill), RemoteWatcherHBManifest → ((_) ⇒ RemoteWatcher.Heartbeat), RemoteWatcherHBRespManifest → deserializeHeartbeatRsp, - ActorInitializationExceptionManifest → deserializeActorInitializationException) + ActorInitializationExceptionManifest → deserializeActorInitializationException, + LocalScopeManifest → ((_) ⇒ LocalScope), + RemoteScopeManifest → deserializeRemoteScope, + ConfigManifest → deserializeConfig, + FromConfigManifest → deserializeFromConfig, + DefaultResizerManifest → deserializeDefaultResizer, + BalancingPoolManifest → deserializeBalancingPool, + BroadcastPoolManifest → deserializeBroadcastPool, + RandomPoolManifest → deserializeRandomPool, + RoundRobinPoolManifest → deserializeRoundRobinPool, + ScatterGatherPoolManifest → deserializeScatterGatherPool, + TailChoppingPoolManifest → deserializeTailChoppingPool, + RemoteRouterConfigManifest → deserializeRemoteRouterConfig + ) override def manifest(o: AnyRef): String = o match { - case _: Identify ⇒ IdentifyManifest - case _: ActorIdentity ⇒ ActorIdentityManifest - case _: Option[Any] ⇒ OptionManifest - case _: Optional[_] ⇒ OptionalManifest - case _: ActorRef ⇒ ActorRefManifest - case _: Status.Success ⇒ StatusSuccessManifest - case _: Status.Failure ⇒ StatusFailureManifest - case _: ActorInitializationException ⇒ ActorInitializationExceptionManifest - case _: Throwable ⇒ ThrowableManifest - case PoisonPill ⇒ PoisonPillManifest - case Kill ⇒ KillManifest - case RemoteWatcher.Heartbeat ⇒ RemoteWatcherHBManifest - case _: RemoteWatcher.HeartbeatRsp ⇒ RemoteWatcherHBRespManifest + case _: Identify ⇒ IdentifyManifest + case _: ActorIdentity ⇒ ActorIdentityManifest + case _: Option[Any] ⇒ OptionManifest + case _: Optional[_] ⇒ OptionalManifest + case _: ActorRef ⇒ ActorRefManifest + case _: Status.Success ⇒ StatusSuccessManifest + case _: Status.Failure ⇒ StatusFailureManifest + case _: ActorInitializationException ⇒ ActorInitializationExceptionManifest + case _: Throwable ⇒ ThrowableManifest + case PoisonPill ⇒ PoisonPillManifest + case Kill ⇒ KillManifest + case RemoteWatcher.Heartbeat ⇒ RemoteWatcherHBManifest + case _: RemoteWatcher.HeartbeatRsp ⇒ RemoteWatcherHBRespManifest + case LocalScope ⇒ LocalScopeManifest + case _: RemoteScope ⇒ RemoteScopeManifest + case _: Config ⇒ ConfigManifest + case _: FromConfig ⇒ FromConfigManifest + case _: DefaultResizer ⇒ DefaultResizerManifest + case _: BalancingPool ⇒ BalancingPoolManifest + case _: BroadcastPool ⇒ BroadcastPoolManifest + case _: RandomPool ⇒ RandomPoolManifest + case _: RoundRobinPool ⇒ RoundRobinPoolManifest + case _: ScatterGatherFirstCompletedPool ⇒ ScatterGatherPoolManifest + case _: TailChoppingPool ⇒ TailChoppingPoolManifest + case _: RemoteRouterConfig ⇒ RemoteRouterConfigManifest case _ ⇒ throw new IllegalArgumentException(s"Can't serialize object of type ${o.getClass} in [${getClass.getName}]") } @@ -224,4 +402,142 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW payloadSupport.deserializePayload(serializedEx.getCause).asInstanceOf[Throwable]) } + private def deserializeRemoteScope(bytes: Array[Byte]): RemoteScope = { + val rs = WireFormats.RemoteScope.parseFrom(bytes) + RemoteScope( + deserializeAddressData(rs.getNode) + ) + } + + private def deserializeConfig(bytes: Array[Byte]): Config = { + if (bytes.isEmpty) EmptyConfig + else ConfigFactory.parseString(new String(bytes, StandardCharsets.UTF_8)) + } + + private def deserializeFromConfig(bytes: Array[Byte]): FromConfig = + if (bytes.isEmpty) FromConfig + else { + val fc = WireFormats.FromConfig.parseFrom(bytes) + FromConfig( + resizer = if (fc.hasResizer) Some(payloadSupport.deserializePayload(fc.getResizer).asInstanceOf[Resizer]) else None, + routerDispatcher = if (fc.hasRouterDispatcher) fc.getRouterDispatcher else Dispatchers.DefaultDispatcherId + ) + } + + private def deserializeBalancingPool(bytes: Array[Byte]): BalancingPool = { + val bp = WireFormats.GenericRoutingPool.parseFrom(bytes) + BalancingPool( + nrOfInstances = bp.getNrOfInstances, + routerDispatcher = if (bp.hasRouterDispatcher) bp.getRouterDispatcher else Dispatchers.DefaultDispatcherId) + } + + private def deserializeBroadcastPool(bytes: Array[Byte]): BroadcastPool = { + val bp = WireFormats.GenericRoutingPool.parseFrom(bytes) + BroadcastPool( + nrOfInstances = bp.getNrOfInstances, + resizer = + if (bp.hasResizer) Some(payloadSupport.deserializePayload(bp.getResizer).asInstanceOf[Resizer]) + else None, + routerDispatcher = if (bp.hasRouterDispatcher) bp.getRouterDispatcher else Dispatchers.DefaultDispatcherId, + usePoolDispatcher = bp.getUsePoolDispatcher + ) + } + + private def deserializeRandomPool(bytes: Array[Byte]): RandomPool = { + val rp = WireFormats.GenericRoutingPool.parseFrom(bytes) + RandomPool( + nrOfInstances = rp.getNrOfInstances, + resizer = + if (rp.hasResizer) Some(payloadSupport.deserializePayload(rp.getResizer).asInstanceOf[Resizer]) + else None, + routerDispatcher = if (rp.hasRouterDispatcher) rp.getRouterDispatcher else Dispatchers.DefaultDispatcherId, + usePoolDispatcher = rp.getUsePoolDispatcher + ) + } + + private def deserializeRoundRobinPool(bytes: Array[Byte]): RoundRobinPool = { + val rp = WireFormats.GenericRoutingPool.parseFrom(bytes) + RoundRobinPool( + nrOfInstances = rp.getNrOfInstances, + resizer = + if (rp.hasResizer) Some(payloadSupport.deserializePayload(rp.getResizer).asInstanceOf[Resizer]) + else None, + routerDispatcher = if (rp.hasRouterDispatcher) rp.getRouterDispatcher else Dispatchers.DefaultDispatcherId, + usePoolDispatcher = rp.getUsePoolDispatcher + ) + } + + private def deserializeScatterGatherPool(bytes: Array[Byte]): ScatterGatherFirstCompletedPool = { + val sgp = WireFormats.ScatterGatherPool.parseFrom(bytes) + ScatterGatherFirstCompletedPool( + nrOfInstances = sgp.getGeneric.getNrOfInstances, + resizer = + if (sgp.getGeneric.hasResizer) Some(payloadSupport.deserializePayload(sgp.getGeneric.getResizer).asInstanceOf[Resizer]) + else None, + within = deserializeFiniteDuration(sgp.getWithin), + routerDispatcher = + if (sgp.getGeneric.hasRouterDispatcher) sgp.getGeneric.getRouterDispatcher + else Dispatchers.DefaultDispatcherId + ) + } + + private def deserializeTailChoppingPool(bytes: Array[Byte]): TailChoppingPool = { + val tcp = WireFormats.TailChoppingPool.parseFrom(bytes) + TailChoppingPool( + nrOfInstances = tcp.getGeneric.getNrOfInstances, + resizer = + if (tcp.getGeneric.hasResizer) Some(payloadSupport.deserializePayload(tcp.getGeneric.getResizer).asInstanceOf[Resizer]) + else None, + routerDispatcher = if (tcp.getGeneric.hasRouterDispatcher) tcp.getGeneric.getRouterDispatcher else Dispatchers.DefaultDispatcherId, + usePoolDispatcher = tcp.getGeneric.getUsePoolDispatcher, + within = deserializeFiniteDuration(tcp.getWithin), + interval = deserializeFiniteDuration(tcp.getInterval) + ) + } + + private def deserializeRemoteRouterConfig(bytes: Array[Byte]): RemoteRouterConfig = { + val rrc = WireFormats.RemoteRouterConfig.parseFrom(bytes) + RemoteRouterConfig( + local = payloadSupport.deserializePayload(rrc.getLocal).asInstanceOf[Pool], + nodes = rrc.getNodesList.asScala.map(deserializeAddressData) + ) + } + + private def deserializeDefaultResizer(bytes: Array[Byte]): DefaultResizer = { + val dr = WireFormats.DefaultResizer.parseFrom(bytes) + DefaultResizer( + lowerBound = dr.getLowerBound, + upperBound = dr.getUpperBound, + pressureThreshold = dr.getPressureThreshold, + rampupRate = dr.getRampupRate, + backoffThreshold = dr.getBackoffThreshold, + backoffRate = dr.getBackoffRate, + messagesPerResize = dr.getMessagesPerResize + ) + } + + private def deserializeTimeUnit(unit: WireFormats.TimeUnit): TimeUnit = unit match { + case WireFormats.TimeUnit.NANOSECONDS ⇒ TimeUnit.NANOSECONDS + case WireFormats.TimeUnit.MICROSECONDS ⇒ TimeUnit.MICROSECONDS + case WireFormats.TimeUnit.MILLISECONDS ⇒ TimeUnit.MILLISECONDS + case WireFormats.TimeUnit.SECONDS ⇒ TimeUnit.SECONDS + case WireFormats.TimeUnit.MINUTES ⇒ TimeUnit.MINUTES + case WireFormats.TimeUnit.HOURS ⇒ TimeUnit.HOURS + case WireFormats.TimeUnit.DAYS ⇒ TimeUnit.DAYS + } + + private def deserializeFiniteDuration(duration: WireFormats.FiniteDuration): FiniteDuration = + FiniteDuration( + duration.getValue, + deserializeTimeUnit(duration.getUnit) + ) + + private def deserializeAddressData(address: WireFormats.AddressData): Address = { + Address( + address.getProtocol, + address.getSystem, + address.getHostname, + address.getPort + ) + } } diff --git a/akka-remote/src/test/scala/akka/remote/RemoteRouterSpec.scala b/akka-remote/src/test/scala/akka/remote/RemoteRouterSpec.scala index bf2d4ec445..5f8288dba3 100644 --- a/akka-remote/src/test/scala/akka/remote/RemoteRouterSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/RemoteRouterSpec.scala @@ -20,8 +20,10 @@ object RemoteRouterSpec { } } -class RemoteRouterSpec extends AkkaSpec(""" +class RemoteRouterSpec extends AkkaSpec(s""" akka.actor.provider = remote + akka.actor.allow-java-serialization = off + akka.actor.serialize-messages = off akka.remote.netty.tcp { hostname = localhost port = 0 @@ -45,6 +47,7 @@ class RemoteRouterSpec extends AkkaSpec(""" val port = system.asInstanceOf[ExtendedActorSystem].provider.getDefaultAddress.port.get val sysName = system.name + val masterSystemName = "Master" + sysName val protocol = if (RARP(system).provider.remoteSettings.Artery.Enabled) "akka" else "akka.tcp" @@ -71,7 +74,7 @@ class RemoteRouterSpec extends AkkaSpec(""" nr-of-instances = 2 } /local-blub { - remote = "akka://MasterRemoteRouterSpec" + remote = "akka://$masterSystemName" router = round-robin-pool nr-of-instances = 2 target.nodes = ["$protocol://${sysName}@localhost:${port}"] @@ -83,7 +86,7 @@ class RemoteRouterSpec extends AkkaSpec(""" } } }""").withFallback(system.settings.config) - val masterSystem = ActorSystem("Master" + sysName, conf) + val masterSystem = ActorSystem(masterSystemName, conf) override def afterTermination() { shutdown(masterSystem) @@ -168,7 +171,7 @@ class RemoteRouterSpec extends AkkaSpec(""" val probe = TestProbe()(masterSystem) val router = masterSystem.actorOf(RoundRobinPool(2).props(echoActorProps) .withDeploy(Deploy(scope = RemoteScope(AddressFromURIString(s"$protocol://${sysName}@localhost:${port}")))), "local-blub") - router.path.address.toString should ===("akka://MasterRemoteRouterSpec") + router.path.address.toString should ===(s"akka://$masterSystemName") val replies = collectRouteePaths(probe, router, 5) val children = replies.toSet children should have size 2 diff --git a/akka-remote/src/test/scala/akka/remote/serialization/DaemonMsgCreateSerializerSpec.scala b/akka-remote/src/test/scala/akka/remote/serialization/DaemonMsgCreateSerializerSpec.scala index 058c591aca..19c675e4f7 100644 --- a/akka-remote/src/test/scala/akka/remote/serialization/DaemonMsgCreateSerializerSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/serialization/DaemonMsgCreateSerializerSpec.scala @@ -4,13 +4,14 @@ package akka.remote.serialization -import akka.actor.{ Actor, ActorRef, ActorSystem, Address, Deploy, ExtendedActorSystem, OneForOneStrategy, Props, SupervisorStrategy } +import akka.actor.ActorSystem +import akka.testkit.TestKit +import akka.actor.{ Actor, ActorRef, Address, Deploy, ExtendedActorSystem, OneForOneStrategy, Props, SupervisorStrategy } import akka.remote.{ DaemonMsgCreate, RemoteScope } import akka.routing.{ FromConfig, RoundRobinPool } -import akka.serialization.SerializationExtension -import akka.testkit.{ AkkaSpec, TestKit } +import akka.serialization.{ Serialization, SerializationExtension } +import akka.testkit.AkkaSpec import com.typesafe.config.ConfigFactory - import scala.concurrent.duration._ import scala.language.postfixOps @@ -27,7 +28,32 @@ object DaemonMsgCreateSerializerSpec { case class DummyParameter(val inner: String) extends Serializable -class DaemonMsgCreateSerializerSpec extends AkkaSpec { +trait SerializationVerification { self: AkkaSpec ⇒ + + def ser: Serialization + + def verifySerialization(msg: DaemonMsgCreate): Unit = { + assertDaemonMsgCreate(msg, ser.deserialize(ser.serialize(msg).get, classOf[DaemonMsgCreate]).get.asInstanceOf[DaemonMsgCreate]) + } + + def assertDaemonMsgCreate(expected: DaemonMsgCreate, got: DaemonMsgCreate): Unit = { + // can't compare props.creator when function + got.props.clazz should ===(expected.props.clazz) + got.props.args.length should ===(expected.props.args.length) + got.props.args zip expected.props.args foreach { + case (g, e) ⇒ + if (e.isInstanceOf[Function0[_]]) () + else if (e.isInstanceOf[Function1[_, _]]) () + else g should ===(e) + } + got.props.deploy should ===(expected.props.deploy) + got.deploy should ===(expected.deploy) + got.path should ===(expected.path) + got.supervisor should ===(expected.supervisor) + } +} + +class DaemonMsgCreateSerializerSpec extends AkkaSpec with SerializationVerification { import DaemonMsgCreateSerializerSpec._ val ser = SerializationExtension(system) @@ -126,9 +152,8 @@ class DaemonMsgCreateSerializerSpec extends AkkaSpec { "serialize and de-serialize DaemonMsgCreate with Deploy and RouterConfig" in { verifySerialization { // Duration.Inf doesn't equal Duration.Inf, so we use another for test - val supervisorStrategy = OneForOneStrategy(3, 10 seconds) { - case _ ⇒ SupervisorStrategy.Escalate - } + // we don't serialize the supervisor strategy, but always fallback to default + val supervisorStrategy = SupervisorStrategy.defaultStrategy val deploy1 = Deploy( path = "path1", config = ConfigFactory.parseString("a=1"), @@ -160,26 +185,47 @@ class DaemonMsgCreateSerializerSpec extends AkkaSpec { } } - def verifySerialization(msg: DaemonMsgCreate): Unit = { - assertDaemonMsgCreate(msg, ser.deserialize(ser.serialize(msg).get, classOf[DaemonMsgCreate]).get.asInstanceOf[DaemonMsgCreate]) - } - - def assertDaemonMsgCreate(expected: DaemonMsgCreate, got: DaemonMsgCreate): Unit = { - // can't compare props.creator when function - got.props.clazz should ===(expected.props.clazz) - got.props.args.length should ===(expected.props.args.length) - got.props.args zip expected.props.args foreach { - case (g, e) ⇒ - if (e.isInstanceOf[Function0[_]]) () - else if (e.isInstanceOf[Function1[_, _]]) () - else g should ===(e) - } - got.props.deploy should ===(expected.props.deploy) - got.deploy should ===(expected.deploy) - got.path should ===(expected.path) - got.supervisor should ===(expected.supervisor) - } - } } +class DaemonMsgCreateSerializerNoJavaSerializationSpec extends AkkaSpec( + """ + akka.actor.allow-java-serialization=off + akka.actor.serialize-messages=off + akka.actor.serialize-creators=off + """) with SerializationVerification { + + import DaemonMsgCreateSerializerSpec.MyActor + + val supervisor = system.actorOf(Props[MyActor], "supervisor") + val ser = SerializationExtension(system) + + "serialize and de-serialize DaemonMsgCreate with Deploy and RouterConfig" in { + verifySerialization { + // Duration.Inf doesn't equal Duration.Inf, so we use another for test + val supervisorStrategy = OneForOneStrategy(3, 10 seconds) { + case _ ⇒ SupervisorStrategy.Escalate + } + + val deploy1 = Deploy( + path = "path1", + config = ConfigFactory.parseString("a=1"), + // a whole can of worms: routerConfig = RoundRobinPool(nrOfInstances = 5, supervisorStrategy = supervisorStrategy), + scope = RemoteScope(Address("akka", "Test", "host1", 1921)), + dispatcher = "mydispatcher") + val deploy2 = Deploy( + path = "path2", + config = ConfigFactory.parseString("a=2"), + routerConfig = FromConfig, + scope = RemoteScope(Address("akka", "Test", "host2", 1922)), + dispatcher = Deploy.NoDispatcherGiven) + DaemonMsgCreate( + props = Props[MyActor].withDispatcher("my-disp").withDeploy(deploy1), + deploy = deploy2, + path = "foo", + supervisor = supervisor) + } + } + +} + diff --git a/akka-remote/src/test/scala/akka/remote/serialization/MiscMessageSerializerSpec.scala b/akka-remote/src/test/scala/akka/remote/serialization/MiscMessageSerializerSpec.scala index 21bd10f43d..3b0c6ed002 100644 --- a/akka-remote/src/test/scala/akka/remote/serialization/MiscMessageSerializerSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/serialization/MiscMessageSerializerSpec.scala @@ -5,15 +5,19 @@ package akka.remote.serialization import akka.actor._ -import akka.remote.{ MessageSerializer, RemoteWatcher } +import akka.remote.{ MessageSerializer, RemoteScope, RemoteWatcher } import akka.serialization.SerializationExtension import akka.testkit.AkkaSpec import com.typesafe.config.ConfigFactory import scala.util.control.NoStackTrace +import scala.concurrent.duration._ import java.util.Optional import java.io.NotSerializableException +import akka.remote.routing.RemoteRouterConfig +import akka.routing._ + object MiscMessageSerializerSpec { val serializationTestOverrides = """ @@ -80,7 +84,25 @@ class MiscMessageSerializerSpec extends AkkaSpec(MiscMessageSerializerSpec.testC "Kill" → Kill, "PoisonPill" → PoisonPill, "RemoteWatcher.Heartbeat" → RemoteWatcher.Heartbeat, - "RemoteWatcher.HertbeatRsp" → RemoteWatcher.HeartbeatRsp(65537)).foreach { + "RemoteWatcher.HertbeatRsp" → RemoteWatcher.HeartbeatRsp(65537), + "LocalScope" → LocalScope, + "RemoteScope" → RemoteScope(Address("akka", "system", "localhost", 2525)), + "Config" → system.settings.config, + "Empty Config" → ConfigFactory.empty(), + "FromConfig" → FromConfig, + // routers + "DefaultResizer" → DefaultResizer(), + "BalancingPool" → BalancingPool(nrOfInstances = 25), + "BalancingPool with custom dispatcher" → BalancingPool(nrOfInstances = 25, routerDispatcher = "my-dispatcher"), + "BroadcastPool" → BroadcastPool(nrOfInstances = 25), + "BroadcastPool with custom dispatcher and resizer" → BroadcastPool(nrOfInstances = 25, routerDispatcher = "my-dispatcher", usePoolDispatcher = true, resizer = Some(DefaultResizer())), + "RandomPool" → RandomPool(nrOfInstances = 25), + "RandomPool with custom dispatcher" → RandomPool(nrOfInstances = 25, routerDispatcher = "my-dispatcher"), + "RoundRobinPool" → RoundRobinPool(25), + "ScatterGatherFirstCompletedPool" → ScatterGatherFirstCompletedPool(25, within = 3.seconds), + "TailChoppingPool" → TailChoppingPool(25, within = 3.seconds, interval = 1.second), + "RemoteRouterConfig" → RemoteRouterConfig(local = RandomPool(25), nodes = List(Address("akka", "system", "localhost", 2525))) + ).foreach { case (scenario, item) ⇒ s"resolve serializer for $scenario" in { val serializer = SerializationExtension(system) diff --git a/akka-testkit/src/main/resources/reference.conf b/akka-testkit/src/main/resources/reference.conf index ec4c093706..7e8dfbe276 100644 --- a/akka-testkit/src/main/resources/reference.conf +++ b/akka-testkit/src/main/resources/reference.conf @@ -26,8 +26,18 @@ akka { type = akka.testkit.CallingThreadDispatcherConfigurator } } - - actor.serialization-bindings { - "akka.testkit.JavaSerializable" = java + + actor { + serializers { + test-message-serializer = "akka.testkit.TestMessageSerializer" + } + + serialization-identifiers { + "akka.testkit.TestMessageSerializer" = 23 + } + + serialization-bindings { + "akka.testkit.JavaSerializable" = java + } } } diff --git a/akka-testkit/src/main/scala/akka/testkit/TestMessageSerializer.scala b/akka-testkit/src/main/scala/akka/testkit/TestMessageSerializer.scala new file mode 100644 index 0000000000..1b28b7e2ca --- /dev/null +++ b/akka-testkit/src/main/scala/akka/testkit/TestMessageSerializer.scala @@ -0,0 +1,45 @@ +package akka.testkit + +/** + * Copyright (C) 2009-2017 Lightbend Inc. + */ + +import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, ObjectOutputStream } +import java.util.concurrent.Callable + +import akka.actor.ExtendedActorSystem +import akka.serialization.{ BaseSerializer, JavaSerializer } +import akka.util.ClassLoaderObjectInputStream + +import scala.util.DynamicVariable + +/** + * This Serializer uses standard Java Serialization and is useful for tests where ad-hoc messages are created and sent + * between actor systems. It needs to be explicitly enabled in the config (or through `ActorSystemSetup`) like so: + * + * ``` + * akka.actor.serialization-bindings { + * "my.test.AdHocMessage" = test-message-serializer + * } + * ``` + */ +class TestMessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer { + + def includeManifest: Boolean = false + + def toBinary(o: AnyRef): Array[Byte] = { + val bos = new ByteArrayOutputStream + val out = new ObjectOutputStream(bos) + JavaSerializer.currentSystem.withValue(system) { out.writeObject(o) } + out.close() + bos.toByteArray + } + + def fromBinary(bytes: Array[Byte], clazz: Option[Class[_]]): AnyRef = { + val in = new ClassLoaderObjectInputStream(system.dynamicAccess.classLoader, new ByteArrayInputStream(bytes)) + val obj = JavaSerializer.currentSystem.withValue(system) { in.readObject } + in.close() + obj + } +} + diff --git a/project/MiMa.scala b/project/MiMa.scala index 6f262d7142..17270dbbaa 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -464,41 +464,6 @@ object MiMa extends AutoPlugin { // #22208 remove extension key ProblemFilters.exclude[MissingClassProblem]("akka.event.Logging$Extension$"), - // #22224 DaemonMsgCreateSerializer using manifests - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData.getClassesBytes"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData.getClassesList"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData.getClassesCount"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData.getClasses"), - ProblemFilters.exclude[MissingFieldProblem]("akka.remote.WireFormats#PropsData.CLASSES_FIELD_NUMBER"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getHasManifest"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getHasManifestCount"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getSerializerIdsList"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getSerializerIds"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getHasManifestList"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getSerializerIdsCount"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getClassesBytes"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getClassesList"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getClassesCount"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getClasses"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getManifestsBytes"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getManifests"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getManifestsList"), - ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#PropsDataOrBuilder.getManifestsCount"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.getClassesBytes"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.getClassesList"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.addClassesBytes"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.getClassesCount"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.clearClasses"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.addClasses"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.getClasses"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.addAllClasses"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.WireFormats#PropsData#Builder.setClasses"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.DaemonMsgCreateSerializer.serialize"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.DaemonMsgCreateSerializer.deserialize"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.DaemonMsgCreateSerializer.deserialize"), - ProblemFilters.exclude[FinalClassProblem]("akka.remote.serialization.DaemonMsgCreateSerializer"), - ProblemFilters.exclude[DirectMissingMethodProblem]("akka.remote.serialization.DaemonMsgCreateSerializer.serialization"), - // new materializer changes relating to old module structure ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.BidiShape.copyFromPorts"), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.BidiShape.reversed"), @@ -541,8 +506,8 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[MissingClassProblem]("akka.stream.scaladsl.ModuleExtractor"), ProblemFilters.exclude[MissingClassProblem]("akka.stream.scaladsl.ModuleExtractor$"), ProblemFilters.excludePackage("akka.stream.impl"), - - // small changes in attributes + + // small changes in attributes ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.testkit.StreamTestKit#ProbeSource.withAttributes"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.testkit.StreamTestKit#ProbeSink.withAttributes") @@ -1144,7 +1109,24 @@ object MiMa extends AutoPlugin { ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.Shard.messageBuffers_="), ProblemFilters.exclude[DirectMissingMethodProblem]("akka.cluster.sharding.ShardRegion.totalBufferSize"), ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.sharding.ShardRegion.shardBuffers"), - ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.ShardRegion.shardBuffers_=") + ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.sharding.ShardRegion.shardBuffers_="), + + // #22332 protobuf serializers for remote deployment + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getConfigManifest"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasScopeManifest"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getScopeManifestBytes"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getConfigSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasRouterConfigSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasRouterConfigManifest"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getRouterConfigSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getRouterConfigManifestBytes"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getConfigManifestBytes"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasConfigManifest"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasScopeSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getRouterConfigManifest"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.hasConfigSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getScopeSerializerId"), + ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.remote.WireFormats#DeployDataOrBuilder.getScopeManifest") ) // make sure that // * this list ends with the latest released version number