mirror of https://github.com/grpc/grpc-java.git
parent
65dd5db5e3
commit
b7eea7c13a
|
|
@ -0,0 +1,35 @@
|
|||
// Add dependency on the protobuf plugin
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath libraries.protobuf_plugin
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "be.insaneprogramming.gradle.animalsniffer" version "1.4.0"
|
||||
}
|
||||
|
||||
description = "gRPC: Services"
|
||||
|
||||
dependencies {
|
||||
compile project(':grpc-protobuf'),
|
||||
project(':grpc-stub')
|
||||
}
|
||||
|
||||
configureProtoCompilation()
|
||||
|
||||
// Configure the animal sniffer plugin
|
||||
animalsniffer {
|
||||
signature = "org.codehaus.mojo.signature:java16:+@signature"
|
||||
}
|
||||
|
||||
// Let intellij projects refer to generated code
|
||||
idea {
|
||||
module {
|
||||
sourceDirs += file("${projectDir}/src/generated/main/java");
|
||||
sourceDirs += file("${projectDir}/src/generated/main/grpc");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
package io.grpc.health.v1;
|
||||
|
||||
import static io.grpc.stub.ClientCalls.asyncUnaryCall;
|
||||
import static io.grpc.stub.ClientCalls.asyncServerStreamingCall;
|
||||
import static io.grpc.stub.ClientCalls.asyncClientStreamingCall;
|
||||
import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall;
|
||||
import static io.grpc.stub.ClientCalls.blockingUnaryCall;
|
||||
import static io.grpc.stub.ClientCalls.blockingServerStreamingCall;
|
||||
import static io.grpc.stub.ClientCalls.futureUnaryCall;
|
||||
import static io.grpc.MethodDescriptor.generateFullMethodName;
|
||||
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
|
||||
import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
|
||||
import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
|
||||
import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;
|
||||
import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
|
||||
import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall;
|
||||
|
||||
/**
|
||||
*/
|
||||
@javax.annotation.Generated(
|
||||
value = "by gRPC proto compiler (version 0.15.0-SNAPSHOT)",
|
||||
comments = "Source: health.proto")
|
||||
public class HealthGrpc {
|
||||
|
||||
private HealthGrpc() {}
|
||||
|
||||
public static final String SERVICE_NAME = "grpc.health.v1.Health";
|
||||
|
||||
// Static method descriptors that strictly reflect the proto.
|
||||
@io.grpc.ExperimentalApi
|
||||
public static final io.grpc.MethodDescriptor<io.grpc.health.v1.HealthCheckRequest,
|
||||
io.grpc.health.v1.HealthCheckResponse> METHOD_CHECK =
|
||||
io.grpc.MethodDescriptor.create(
|
||||
io.grpc.MethodDescriptor.MethodType.UNARY,
|
||||
generateFullMethodName(
|
||||
"grpc.health.v1.Health", "Check"),
|
||||
io.grpc.protobuf.ProtoUtils.marshaller(io.grpc.health.v1.HealthCheckRequest.getDefaultInstance()),
|
||||
io.grpc.protobuf.ProtoUtils.marshaller(io.grpc.health.v1.HealthCheckResponse.getDefaultInstance()));
|
||||
|
||||
/**
|
||||
* Creates a new async stub that supports all call types for the service
|
||||
*/
|
||||
public static HealthStub newStub(io.grpc.Channel channel) {
|
||||
return new HealthStub(channel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new blocking-style stub that supports unary and streaming output calls on the service
|
||||
*/
|
||||
public static HealthBlockingStub newBlockingStub(
|
||||
io.grpc.Channel channel) {
|
||||
return new HealthBlockingStub(channel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new ListenableFuture-style stub that supports unary and streaming output calls on the service
|
||||
*/
|
||||
public static HealthFutureStub newFutureStub(
|
||||
io.grpc.Channel channel) {
|
||||
return new HealthFutureStub(channel);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public static interface Health {
|
||||
|
||||
/**
|
||||
*/
|
||||
public void check(io.grpc.health.v1.HealthCheckRequest request,
|
||||
io.grpc.stub.StreamObserver<io.grpc.health.v1.HealthCheckResponse> responseObserver);
|
||||
}
|
||||
|
||||
@io.grpc.ExperimentalApi
|
||||
public static abstract class AbstractHealth implements Health, io.grpc.BindableService {
|
||||
|
||||
@java.lang.Override
|
||||
public void check(io.grpc.health.v1.HealthCheckRequest request,
|
||||
io.grpc.stub.StreamObserver<io.grpc.health.v1.HealthCheckResponse> responseObserver) {
|
||||
asyncUnimplementedUnaryCall(METHOD_CHECK, responseObserver);
|
||||
}
|
||||
|
||||
@java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
|
||||
return HealthGrpc.bindService(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public static interface HealthBlockingClient {
|
||||
|
||||
/**
|
||||
*/
|
||||
public io.grpc.health.v1.HealthCheckResponse check(io.grpc.health.v1.HealthCheckRequest request);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public static interface HealthFutureClient {
|
||||
|
||||
/**
|
||||
*/
|
||||
public com.google.common.util.concurrent.ListenableFuture<io.grpc.health.v1.HealthCheckResponse> check(
|
||||
io.grpc.health.v1.HealthCheckRequest request);
|
||||
}
|
||||
|
||||
public static class HealthStub extends io.grpc.stub.AbstractStub<HealthStub>
|
||||
implements Health {
|
||||
private HealthStub(io.grpc.Channel channel) {
|
||||
super(channel);
|
||||
}
|
||||
|
||||
private HealthStub(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
super(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
protected HealthStub build(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
return new HealthStub(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public void check(io.grpc.health.v1.HealthCheckRequest request,
|
||||
io.grpc.stub.StreamObserver<io.grpc.health.v1.HealthCheckResponse> responseObserver) {
|
||||
asyncUnaryCall(
|
||||
getChannel().newCall(METHOD_CHECK, getCallOptions()), request, responseObserver);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HealthBlockingStub extends io.grpc.stub.AbstractStub<HealthBlockingStub>
|
||||
implements HealthBlockingClient {
|
||||
private HealthBlockingStub(io.grpc.Channel channel) {
|
||||
super(channel);
|
||||
}
|
||||
|
||||
private HealthBlockingStub(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
super(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
protected HealthBlockingStub build(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
return new HealthBlockingStub(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public io.grpc.health.v1.HealthCheckResponse check(io.grpc.health.v1.HealthCheckRequest request) {
|
||||
return blockingUnaryCall(
|
||||
getChannel(), METHOD_CHECK, getCallOptions(), request);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HealthFutureStub extends io.grpc.stub.AbstractStub<HealthFutureStub>
|
||||
implements HealthFutureClient {
|
||||
private HealthFutureStub(io.grpc.Channel channel) {
|
||||
super(channel);
|
||||
}
|
||||
|
||||
private HealthFutureStub(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
super(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
protected HealthFutureStub build(io.grpc.Channel channel,
|
||||
io.grpc.CallOptions callOptions) {
|
||||
return new HealthFutureStub(channel, callOptions);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public com.google.common.util.concurrent.ListenableFuture<io.grpc.health.v1.HealthCheckResponse> check(
|
||||
io.grpc.health.v1.HealthCheckRequest request) {
|
||||
return futureUnaryCall(
|
||||
getChannel().newCall(METHOD_CHECK, getCallOptions()), request);
|
||||
}
|
||||
}
|
||||
|
||||
private static final int METHODID_CHECK = 0;
|
||||
|
||||
private static class MethodHandlers<Req, Resp> implements
|
||||
io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
|
||||
io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
|
||||
io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
|
||||
io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
|
||||
private final Health serviceImpl;
|
||||
private final int methodId;
|
||||
|
||||
public MethodHandlers(Health serviceImpl, int methodId) {
|
||||
this.serviceImpl = serviceImpl;
|
||||
this.methodId = methodId;
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
@java.lang.SuppressWarnings("unchecked")
|
||||
public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
|
||||
switch (methodId) {
|
||||
case METHODID_CHECK:
|
||||
serviceImpl.check((io.grpc.health.v1.HealthCheckRequest) request,
|
||||
(io.grpc.stub.StreamObserver<io.grpc.health.v1.HealthCheckResponse>) responseObserver);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
@java.lang.SuppressWarnings("unchecked")
|
||||
public io.grpc.stub.StreamObserver<Req> invoke(
|
||||
io.grpc.stub.StreamObserver<Resp> responseObserver) {
|
||||
switch (methodId) {
|
||||
default:
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static io.grpc.ServerServiceDefinition bindService(
|
||||
final Health serviceImpl) {
|
||||
return io.grpc.ServerServiceDefinition.builder(SERVICE_NAME)
|
||||
.addMethod(
|
||||
METHOD_CHECK,
|
||||
asyncUnaryCall(
|
||||
new MethodHandlers<
|
||||
io.grpc.health.v1.HealthCheckRequest,
|
||||
io.grpc.health.v1.HealthCheckResponse>(
|
||||
serviceImpl, METHODID_CHECK)))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,440 @@
|
|||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: health.proto
|
||||
|
||||
package io.grpc.health.v1;
|
||||
|
||||
/**
|
||||
* Protobuf type {@code grpc.health.v1.HealthCheckRequest}
|
||||
*/
|
||||
public final class HealthCheckRequest extends
|
||||
com.google.protobuf.GeneratedMessage implements
|
||||
// @@protoc_insertion_point(message_implements:grpc.health.v1.HealthCheckRequest)
|
||||
HealthCheckRequestOrBuilder {
|
||||
// Use HealthCheckRequest.newBuilder() to construct.
|
||||
private HealthCheckRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
|
||||
super(builder);
|
||||
}
|
||||
private HealthCheckRequest() {
|
||||
service_ = "";
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public final com.google.protobuf.UnknownFieldSet
|
||||
getUnknownFields() {
|
||||
return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
|
||||
}
|
||||
private HealthCheckRequest(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
|
||||
this();
|
||||
int mutable_bitField0_ = 0;
|
||||
try {
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
int tag = input.readTag();
|
||||
switch (tag) {
|
||||
case 0:
|
||||
done = true;
|
||||
break;
|
||||
default: {
|
||||
if (!input.skipField(tag)) {
|
||||
done = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 10: {
|
||||
java.lang.String s = input.readStringRequireUtf8();
|
||||
|
||||
service_ = s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
|
||||
throw new RuntimeException(e.setUnfinishedMessage(this));
|
||||
} catch (java.io.IOException e) {
|
||||
throw new RuntimeException(
|
||||
new com.google.protobuf.InvalidProtocolBufferException(
|
||||
e.getMessage()).setUnfinishedMessage(this));
|
||||
} finally {
|
||||
makeExtensionsImmutable();
|
||||
}
|
||||
}
|
||||
public static final com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptor() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckRequest_descriptor;
|
||||
}
|
||||
|
||||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internalGetFieldAccessorTable() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckRequest_fieldAccessorTable
|
||||
.ensureFieldAccessorsInitialized(
|
||||
io.grpc.health.v1.HealthCheckRequest.class, io.grpc.health.v1.HealthCheckRequest.Builder.class);
|
||||
}
|
||||
|
||||
public static final int SERVICE_FIELD_NUMBER = 1;
|
||||
private volatile java.lang.Object service_;
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public java.lang.String getService() {
|
||||
java.lang.Object ref = service_;
|
||||
if (ref instanceof java.lang.String) {
|
||||
return (java.lang.String) ref;
|
||||
} else {
|
||||
com.google.protobuf.ByteString bs =
|
||||
(com.google.protobuf.ByteString) ref;
|
||||
java.lang.String s = bs.toStringUtf8();
|
||||
service_ = s;
|
||||
return s;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public com.google.protobuf.ByteString
|
||||
getServiceBytes() {
|
||||
java.lang.Object ref = service_;
|
||||
if (ref instanceof java.lang.String) {
|
||||
com.google.protobuf.ByteString b =
|
||||
com.google.protobuf.ByteString.copyFromUtf8(
|
||||
(java.lang.String) ref);
|
||||
service_ = b;
|
||||
return b;
|
||||
} else {
|
||||
return (com.google.protobuf.ByteString) ref;
|
||||
}
|
||||
}
|
||||
|
||||
private byte memoizedIsInitialized = -1;
|
||||
public final boolean isInitialized() {
|
||||
byte isInitialized = memoizedIsInitialized;
|
||||
if (isInitialized == 1) return true;
|
||||
if (isInitialized == 0) return false;
|
||||
|
||||
memoizedIsInitialized = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void writeTo(com.google.protobuf.CodedOutputStream output)
|
||||
throws java.io.IOException {
|
||||
if (!getServiceBytes().isEmpty()) {
|
||||
com.google.protobuf.GeneratedMessage.writeString(output, 1, service_);
|
||||
}
|
||||
}
|
||||
|
||||
public int getSerializedSize() {
|
||||
int size = memoizedSize;
|
||||
if (size != -1) return size;
|
||||
|
||||
size = 0;
|
||||
if (!getServiceBytes().isEmpty()) {
|
||||
size += com.google.protobuf.GeneratedMessage.computeStringSize(1, service_);
|
||||
}
|
||||
memoizedSize = size;
|
||||
return size;
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = 0L;
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
com.google.protobuf.ByteString data)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
com.google.protobuf.ByteString data,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(byte[] data)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
byte[] data,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(java.io.InputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
java.io.InputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseDelimitedFrom(java.io.InputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseDelimitedFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseDelimitedFrom(
|
||||
java.io.InputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseDelimitedFrom(input, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
com.google.protobuf.CodedInputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckRequest parseFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input, extensionRegistry);
|
||||
}
|
||||
|
||||
public Builder newBuilderForType() { return newBuilder(); }
|
||||
public static Builder newBuilder() {
|
||||
return DEFAULT_INSTANCE.toBuilder();
|
||||
}
|
||||
public static Builder newBuilder(io.grpc.health.v1.HealthCheckRequest prototype) {
|
||||
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
|
||||
}
|
||||
public Builder toBuilder() {
|
||||
return this == DEFAULT_INSTANCE
|
||||
? new Builder() : new Builder().mergeFrom(this);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
protected Builder newBuilderForType(
|
||||
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
|
||||
Builder builder = new Builder(parent);
|
||||
return builder;
|
||||
}
|
||||
/**
|
||||
* Protobuf type {@code grpc.health.v1.HealthCheckRequest}
|
||||
*/
|
||||
public static final class Builder extends
|
||||
com.google.protobuf.GeneratedMessage.Builder<Builder> implements
|
||||
// @@protoc_insertion_point(builder_implements:grpc.health.v1.HealthCheckRequest)
|
||||
io.grpc.health.v1.HealthCheckRequestOrBuilder {
|
||||
public static final com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptor() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckRequest_descriptor;
|
||||
}
|
||||
|
||||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internalGetFieldAccessorTable() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckRequest_fieldAccessorTable
|
||||
.ensureFieldAccessorsInitialized(
|
||||
io.grpc.health.v1.HealthCheckRequest.class, io.grpc.health.v1.HealthCheckRequest.Builder.class);
|
||||
}
|
||||
|
||||
// Construct using io.grpc.health.v1.HealthCheckRequest.newBuilder()
|
||||
private Builder() {
|
||||
maybeForceBuilderInitialization();
|
||||
}
|
||||
|
||||
private Builder(
|
||||
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
|
||||
super(parent);
|
||||
maybeForceBuilderInitialization();
|
||||
}
|
||||
private void maybeForceBuilderInitialization() {
|
||||
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
|
||||
}
|
||||
}
|
||||
public Builder clear() {
|
||||
super.clear();
|
||||
service_ = "";
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptorForType() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckRequest_descriptor;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckRequest getDefaultInstanceForType() {
|
||||
return io.grpc.health.v1.HealthCheckRequest.getDefaultInstance();
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckRequest build() {
|
||||
io.grpc.health.v1.HealthCheckRequest result = buildPartial();
|
||||
if (!result.isInitialized()) {
|
||||
throw newUninitializedMessageException(result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckRequest buildPartial() {
|
||||
io.grpc.health.v1.HealthCheckRequest result = new io.grpc.health.v1.HealthCheckRequest(this);
|
||||
result.service_ = service_;
|
||||
onBuilt();
|
||||
return result;
|
||||
}
|
||||
|
||||
public Builder mergeFrom(com.google.protobuf.Message other) {
|
||||
if (other instanceof io.grpc.health.v1.HealthCheckRequest) {
|
||||
return mergeFrom((io.grpc.health.v1.HealthCheckRequest)other);
|
||||
} else {
|
||||
super.mergeFrom(other);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public Builder mergeFrom(io.grpc.health.v1.HealthCheckRequest other) {
|
||||
if (other == io.grpc.health.v1.HealthCheckRequest.getDefaultInstance()) return this;
|
||||
if (!other.getService().isEmpty()) {
|
||||
service_ = other.service_;
|
||||
onChanged();
|
||||
}
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
|
||||
public final boolean isInitialized() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Builder mergeFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
io.grpc.health.v1.HealthCheckRequest parsedMessage = null;
|
||||
try {
|
||||
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
|
||||
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
|
||||
parsedMessage = (io.grpc.health.v1.HealthCheckRequest) e.getUnfinishedMessage();
|
||||
throw e;
|
||||
} finally {
|
||||
if (parsedMessage != null) {
|
||||
mergeFrom(parsedMessage);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
private java.lang.Object service_ = "";
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public java.lang.String getService() {
|
||||
java.lang.Object ref = service_;
|
||||
if (!(ref instanceof java.lang.String)) {
|
||||
com.google.protobuf.ByteString bs =
|
||||
(com.google.protobuf.ByteString) ref;
|
||||
java.lang.String s = bs.toStringUtf8();
|
||||
service_ = s;
|
||||
return s;
|
||||
} else {
|
||||
return (java.lang.String) ref;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public com.google.protobuf.ByteString
|
||||
getServiceBytes() {
|
||||
java.lang.Object ref = service_;
|
||||
if (ref instanceof String) {
|
||||
com.google.protobuf.ByteString b =
|
||||
com.google.protobuf.ByteString.copyFromUtf8(
|
||||
(java.lang.String) ref);
|
||||
service_ = b;
|
||||
return b;
|
||||
} else {
|
||||
return (com.google.protobuf.ByteString) ref;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public Builder setService(
|
||||
java.lang.String value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
|
||||
service_ = value;
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public Builder clearService() {
|
||||
|
||||
service_ = getDefaultInstance().getService();
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
public Builder setServiceBytes(
|
||||
com.google.protobuf.ByteString value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
checkByteStringIsUtf8(value);
|
||||
|
||||
service_ = value;
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
public final Builder setUnknownFields(
|
||||
final com.google.protobuf.UnknownFieldSet unknownFields) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public final Builder mergeUnknownFields(
|
||||
final com.google.protobuf.UnknownFieldSet unknownFields) {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
// @@protoc_insertion_point(builder_scope:grpc.health.v1.HealthCheckRequest)
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckRequest)
|
||||
private static final io.grpc.health.v1.HealthCheckRequest DEFAULT_INSTANCE;
|
||||
static {
|
||||
DEFAULT_INSTANCE = new io.grpc.health.v1.HealthCheckRequest();
|
||||
}
|
||||
|
||||
public static io.grpc.health.v1.HealthCheckRequest getDefaultInstance() {
|
||||
return DEFAULT_INSTANCE;
|
||||
}
|
||||
|
||||
private static final com.google.protobuf.Parser<HealthCheckRequest>
|
||||
PARSER = new com.google.protobuf.AbstractParser<HealthCheckRequest>() {
|
||||
public HealthCheckRequest parsePartialFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
try {
|
||||
return new HealthCheckRequest(input, extensionRegistry);
|
||||
} catch (RuntimeException e) {
|
||||
if (e.getCause() instanceof
|
||||
com.google.protobuf.InvalidProtocolBufferException) {
|
||||
throw (com.google.protobuf.InvalidProtocolBufferException)
|
||||
e.getCause();
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static com.google.protobuf.Parser<HealthCheckRequest> parser() {
|
||||
return PARSER;
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public com.google.protobuf.Parser<HealthCheckRequest> getParserForType() {
|
||||
return PARSER;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckRequest getDefaultInstanceForType() {
|
||||
return DEFAULT_INSTANCE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: health.proto
|
||||
|
||||
package io.grpc.health.v1;
|
||||
|
||||
public interface HealthCheckRequestOrBuilder extends
|
||||
// @@protoc_insertion_point(interface_extends:grpc.health.v1.HealthCheckRequest)
|
||||
com.google.protobuf.MessageOrBuilder {
|
||||
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
java.lang.String getService();
|
||||
/**
|
||||
* <code>optional string service = 1;</code>
|
||||
*/
|
||||
com.google.protobuf.ByteString
|
||||
getServiceBytes();
|
||||
}
|
||||
|
|
@ -0,0 +1,498 @@
|
|||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: health.proto
|
||||
|
||||
package io.grpc.health.v1;
|
||||
|
||||
/**
|
||||
* Protobuf type {@code grpc.health.v1.HealthCheckResponse}
|
||||
*/
|
||||
public final class HealthCheckResponse extends
|
||||
com.google.protobuf.GeneratedMessage implements
|
||||
// @@protoc_insertion_point(message_implements:grpc.health.v1.HealthCheckResponse)
|
||||
HealthCheckResponseOrBuilder {
|
||||
// Use HealthCheckResponse.newBuilder() to construct.
|
||||
private HealthCheckResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
|
||||
super(builder);
|
||||
}
|
||||
private HealthCheckResponse() {
|
||||
status_ = 0;
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public final com.google.protobuf.UnknownFieldSet
|
||||
getUnknownFields() {
|
||||
return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
|
||||
}
|
||||
private HealthCheckResponse(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
|
||||
this();
|
||||
int mutable_bitField0_ = 0;
|
||||
try {
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
int tag = input.readTag();
|
||||
switch (tag) {
|
||||
case 0:
|
||||
done = true;
|
||||
break;
|
||||
default: {
|
||||
if (!input.skipField(tag)) {
|
||||
done = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 8: {
|
||||
int rawValue = input.readEnum();
|
||||
|
||||
status_ = rawValue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
|
||||
throw new RuntimeException(e.setUnfinishedMessage(this));
|
||||
} catch (java.io.IOException e) {
|
||||
throw new RuntimeException(
|
||||
new com.google.protobuf.InvalidProtocolBufferException(
|
||||
e.getMessage()).setUnfinishedMessage(this));
|
||||
} finally {
|
||||
makeExtensionsImmutable();
|
||||
}
|
||||
}
|
||||
public static final com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptor() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckResponse_descriptor;
|
||||
}
|
||||
|
||||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internalGetFieldAccessorTable() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckResponse_fieldAccessorTable
|
||||
.ensureFieldAccessorsInitialized(
|
||||
io.grpc.health.v1.HealthCheckResponse.class, io.grpc.health.v1.HealthCheckResponse.Builder.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Protobuf enum {@code grpc.health.v1.HealthCheckResponse.ServingStatus}
|
||||
*/
|
||||
public enum ServingStatus
|
||||
implements com.google.protobuf.ProtocolMessageEnum {
|
||||
/**
|
||||
* <code>UNKNOWN = 0;</code>
|
||||
*/
|
||||
UNKNOWN(0, 0),
|
||||
/**
|
||||
* <code>SERVING = 1;</code>
|
||||
*/
|
||||
SERVING(1, 1),
|
||||
/**
|
||||
* <code>NOT_SERVING = 2;</code>
|
||||
*/
|
||||
NOT_SERVING(2, 2),
|
||||
UNRECOGNIZED(-1, -1),
|
||||
;
|
||||
|
||||
/**
|
||||
* <code>UNKNOWN = 0;</code>
|
||||
*/
|
||||
public static final int UNKNOWN_VALUE = 0;
|
||||
/**
|
||||
* <code>SERVING = 1;</code>
|
||||
*/
|
||||
public static final int SERVING_VALUE = 1;
|
||||
/**
|
||||
* <code>NOT_SERVING = 2;</code>
|
||||
*/
|
||||
public static final int NOT_SERVING_VALUE = 2;
|
||||
|
||||
|
||||
public final int getNumber() {
|
||||
if (index == -1) {
|
||||
throw new java.lang.IllegalArgumentException(
|
||||
"Can't get the number of an unknown enum value.");
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static ServingStatus valueOf(int value) {
|
||||
switch (value) {
|
||||
case 0: return UNKNOWN;
|
||||
case 1: return SERVING;
|
||||
case 2: return NOT_SERVING;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static com.google.protobuf.Internal.EnumLiteMap<ServingStatus>
|
||||
internalGetValueMap() {
|
||||
return internalValueMap;
|
||||
}
|
||||
private static final com.google.protobuf.Internal.EnumLiteMap<
|
||||
ServingStatus> internalValueMap =
|
||||
new com.google.protobuf.Internal.EnumLiteMap<ServingStatus>() {
|
||||
public ServingStatus findValueByNumber(int number) {
|
||||
return ServingStatus.valueOf(number);
|
||||
}
|
||||
};
|
||||
|
||||
public final com.google.protobuf.Descriptors.EnumValueDescriptor
|
||||
getValueDescriptor() {
|
||||
return getDescriptor().getValues().get(index);
|
||||
}
|
||||
public final com.google.protobuf.Descriptors.EnumDescriptor
|
||||
getDescriptorForType() {
|
||||
return getDescriptor();
|
||||
}
|
||||
public static final com.google.protobuf.Descriptors.EnumDescriptor
|
||||
getDescriptor() {
|
||||
return io.grpc.health.v1.HealthCheckResponse.getDescriptor().getEnumTypes().get(0);
|
||||
}
|
||||
|
||||
private static final ServingStatus[] VALUES = values();
|
||||
|
||||
public static ServingStatus valueOf(
|
||||
com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
|
||||
if (desc.getType() != getDescriptor()) {
|
||||
throw new java.lang.IllegalArgumentException(
|
||||
"EnumValueDescriptor is not for this type.");
|
||||
}
|
||||
if (desc.getIndex() == -1) {
|
||||
return UNRECOGNIZED;
|
||||
}
|
||||
return VALUES[desc.getIndex()];
|
||||
}
|
||||
|
||||
private final int index;
|
||||
private final int value;
|
||||
|
||||
private ServingStatus(int index, int value) {
|
||||
this.index = index;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(enum_scope:grpc.health.v1.HealthCheckResponse.ServingStatus)
|
||||
}
|
||||
|
||||
public static final int STATUS_FIELD_NUMBER = 1;
|
||||
private int status_;
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public int getStatusValue() {
|
||||
return status_;
|
||||
}
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public io.grpc.health.v1.HealthCheckResponse.ServingStatus getStatus() {
|
||||
io.grpc.health.v1.HealthCheckResponse.ServingStatus result = io.grpc.health.v1.HealthCheckResponse.ServingStatus.valueOf(status_);
|
||||
return result == null ? io.grpc.health.v1.HealthCheckResponse.ServingStatus.UNRECOGNIZED : result;
|
||||
}
|
||||
|
||||
private byte memoizedIsInitialized = -1;
|
||||
public final boolean isInitialized() {
|
||||
byte isInitialized = memoizedIsInitialized;
|
||||
if (isInitialized == 1) return true;
|
||||
if (isInitialized == 0) return false;
|
||||
|
||||
memoizedIsInitialized = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void writeTo(com.google.protobuf.CodedOutputStream output)
|
||||
throws java.io.IOException {
|
||||
if (status_ != io.grpc.health.v1.HealthCheckResponse.ServingStatus.UNKNOWN.getNumber()) {
|
||||
output.writeEnum(1, status_);
|
||||
}
|
||||
}
|
||||
|
||||
public int getSerializedSize() {
|
||||
int size = memoizedSize;
|
||||
if (size != -1) return size;
|
||||
|
||||
size = 0;
|
||||
if (status_ != io.grpc.health.v1.HealthCheckResponse.ServingStatus.UNKNOWN.getNumber()) {
|
||||
size += com.google.protobuf.CodedOutputStream
|
||||
.computeEnumSize(1, status_);
|
||||
}
|
||||
memoizedSize = size;
|
||||
return size;
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = 0L;
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
com.google.protobuf.ByteString data)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
com.google.protobuf.ByteString data,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(byte[] data)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
byte[] data,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
return PARSER.parseFrom(data, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(java.io.InputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
java.io.InputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseDelimitedFrom(java.io.InputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseDelimitedFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseDelimitedFrom(
|
||||
java.io.InputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseDelimitedFrom(input, extensionRegistry);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
com.google.protobuf.CodedInputStream input)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input);
|
||||
}
|
||||
public static io.grpc.health.v1.HealthCheckResponse parseFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
return PARSER.parseFrom(input, extensionRegistry);
|
||||
}
|
||||
|
||||
public Builder newBuilderForType() { return newBuilder(); }
|
||||
public static Builder newBuilder() {
|
||||
return DEFAULT_INSTANCE.toBuilder();
|
||||
}
|
||||
public static Builder newBuilder(io.grpc.health.v1.HealthCheckResponse prototype) {
|
||||
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
|
||||
}
|
||||
public Builder toBuilder() {
|
||||
return this == DEFAULT_INSTANCE
|
||||
? new Builder() : new Builder().mergeFrom(this);
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
protected Builder newBuilderForType(
|
||||
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
|
||||
Builder builder = new Builder(parent);
|
||||
return builder;
|
||||
}
|
||||
/**
|
||||
* Protobuf type {@code grpc.health.v1.HealthCheckResponse}
|
||||
*/
|
||||
public static final class Builder extends
|
||||
com.google.protobuf.GeneratedMessage.Builder<Builder> implements
|
||||
// @@protoc_insertion_point(builder_implements:grpc.health.v1.HealthCheckResponse)
|
||||
io.grpc.health.v1.HealthCheckResponseOrBuilder {
|
||||
public static final com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptor() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckResponse_descriptor;
|
||||
}
|
||||
|
||||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internalGetFieldAccessorTable() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckResponse_fieldAccessorTable
|
||||
.ensureFieldAccessorsInitialized(
|
||||
io.grpc.health.v1.HealthCheckResponse.class, io.grpc.health.v1.HealthCheckResponse.Builder.class);
|
||||
}
|
||||
|
||||
// Construct using io.grpc.health.v1.HealthCheckResponse.newBuilder()
|
||||
private Builder() {
|
||||
maybeForceBuilderInitialization();
|
||||
}
|
||||
|
||||
private Builder(
|
||||
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
|
||||
super(parent);
|
||||
maybeForceBuilderInitialization();
|
||||
}
|
||||
private void maybeForceBuilderInitialization() {
|
||||
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
|
||||
}
|
||||
}
|
||||
public Builder clear() {
|
||||
super.clear();
|
||||
status_ = 0;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public com.google.protobuf.Descriptors.Descriptor
|
||||
getDescriptorForType() {
|
||||
return io.grpc.health.v1.HealthProto.internal_static_grpc_health_v1_HealthCheckResponse_descriptor;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckResponse getDefaultInstanceForType() {
|
||||
return io.grpc.health.v1.HealthCheckResponse.getDefaultInstance();
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckResponse build() {
|
||||
io.grpc.health.v1.HealthCheckResponse result = buildPartial();
|
||||
if (!result.isInitialized()) {
|
||||
throw newUninitializedMessageException(result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckResponse buildPartial() {
|
||||
io.grpc.health.v1.HealthCheckResponse result = new io.grpc.health.v1.HealthCheckResponse(this);
|
||||
result.status_ = status_;
|
||||
onBuilt();
|
||||
return result;
|
||||
}
|
||||
|
||||
public Builder mergeFrom(com.google.protobuf.Message other) {
|
||||
if (other instanceof io.grpc.health.v1.HealthCheckResponse) {
|
||||
return mergeFrom((io.grpc.health.v1.HealthCheckResponse)other);
|
||||
} else {
|
||||
super.mergeFrom(other);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public Builder mergeFrom(io.grpc.health.v1.HealthCheckResponse other) {
|
||||
if (other == io.grpc.health.v1.HealthCheckResponse.getDefaultInstance()) return this;
|
||||
if (other.status_ != 0) {
|
||||
setStatusValue(other.getStatusValue());
|
||||
}
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
|
||||
public final boolean isInitialized() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Builder mergeFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws java.io.IOException {
|
||||
io.grpc.health.v1.HealthCheckResponse parsedMessage = null;
|
||||
try {
|
||||
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
|
||||
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
|
||||
parsedMessage = (io.grpc.health.v1.HealthCheckResponse) e.getUnfinishedMessage();
|
||||
throw e;
|
||||
} finally {
|
||||
if (parsedMessage != null) {
|
||||
mergeFrom(parsedMessage);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
private int status_ = 0;
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public int getStatusValue() {
|
||||
return status_;
|
||||
}
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public Builder setStatusValue(int value) {
|
||||
status_ = value;
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public io.grpc.health.v1.HealthCheckResponse.ServingStatus getStatus() {
|
||||
io.grpc.health.v1.HealthCheckResponse.ServingStatus result = io.grpc.health.v1.HealthCheckResponse.ServingStatus.valueOf(status_);
|
||||
return result == null ? io.grpc.health.v1.HealthCheckResponse.ServingStatus.UNRECOGNIZED : result;
|
||||
}
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public Builder setStatus(io.grpc.health.v1.HealthCheckResponse.ServingStatus value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
|
||||
status_ = value.getNumber();
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
public Builder clearStatus() {
|
||||
|
||||
status_ = 0;
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
public final Builder setUnknownFields(
|
||||
final com.google.protobuf.UnknownFieldSet unknownFields) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public final Builder mergeUnknownFields(
|
||||
final com.google.protobuf.UnknownFieldSet unknownFields) {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
// @@protoc_insertion_point(builder_scope:grpc.health.v1.HealthCheckResponse)
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckResponse)
|
||||
private static final io.grpc.health.v1.HealthCheckResponse DEFAULT_INSTANCE;
|
||||
static {
|
||||
DEFAULT_INSTANCE = new io.grpc.health.v1.HealthCheckResponse();
|
||||
}
|
||||
|
||||
public static io.grpc.health.v1.HealthCheckResponse getDefaultInstance() {
|
||||
return DEFAULT_INSTANCE;
|
||||
}
|
||||
|
||||
private static final com.google.protobuf.Parser<HealthCheckResponse>
|
||||
PARSER = new com.google.protobuf.AbstractParser<HealthCheckResponse>() {
|
||||
public HealthCheckResponse parsePartialFrom(
|
||||
com.google.protobuf.CodedInputStream input,
|
||||
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
|
||||
throws com.google.protobuf.InvalidProtocolBufferException {
|
||||
try {
|
||||
return new HealthCheckResponse(input, extensionRegistry);
|
||||
} catch (RuntimeException e) {
|
||||
if (e.getCause() instanceof
|
||||
com.google.protobuf.InvalidProtocolBufferException) {
|
||||
throw (com.google.protobuf.InvalidProtocolBufferException)
|
||||
e.getCause();
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static com.google.protobuf.Parser<HealthCheckResponse> parser() {
|
||||
return PARSER;
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public com.google.protobuf.Parser<HealthCheckResponse> getParserForType() {
|
||||
return PARSER;
|
||||
}
|
||||
|
||||
public io.grpc.health.v1.HealthCheckResponse getDefaultInstanceForType() {
|
||||
return DEFAULT_INSTANCE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: health.proto
|
||||
|
||||
package io.grpc.health.v1;
|
||||
|
||||
public interface HealthCheckResponseOrBuilder extends
|
||||
// @@protoc_insertion_point(interface_extends:grpc.health.v1.HealthCheckResponse)
|
||||
com.google.protobuf.MessageOrBuilder {
|
||||
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
int getStatusValue();
|
||||
/**
|
||||
* <code>optional .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1;</code>
|
||||
*/
|
||||
io.grpc.health.v1.HealthCheckResponse.ServingStatus getStatus();
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: health.proto
|
||||
|
||||
package io.grpc.health.v1;
|
||||
|
||||
public final class HealthProto {
|
||||
private HealthProto() {}
|
||||
public static void registerAllExtensions(
|
||||
com.google.protobuf.ExtensionRegistry registry) {
|
||||
}
|
||||
static com.google.protobuf.Descriptors.Descriptor
|
||||
internal_static_grpc_health_v1_HealthCheckRequest_descriptor;
|
||||
static
|
||||
com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internal_static_grpc_health_v1_HealthCheckRequest_fieldAccessorTable;
|
||||
static com.google.protobuf.Descriptors.Descriptor
|
||||
internal_static_grpc_health_v1_HealthCheckResponse_descriptor;
|
||||
static
|
||||
com.google.protobuf.GeneratedMessage.FieldAccessorTable
|
||||
internal_static_grpc_health_v1_HealthCheckResponse_fieldAccessorTable;
|
||||
|
||||
public static com.google.protobuf.Descriptors.FileDescriptor
|
||||
getDescriptor() {
|
||||
return descriptor;
|
||||
}
|
||||
private static com.google.protobuf.Descriptors.FileDescriptor
|
||||
descriptor;
|
||||
static {
|
||||
java.lang.String[] descriptorData = {
|
||||
"\n\014health.proto\022\016grpc.health.v1\"%\n\022Health" +
|
||||
"CheckRequest\022\017\n\007service\030\001 \001(\t\"\224\001\n\023Health" +
|
||||
"CheckResponse\022A\n\006status\030\001 \001(\01621.grpc.hea" +
|
||||
"lth.v1.HealthCheckResponse.ServingStatus" +
|
||||
"\":\n\rServingStatus\022\013\n\007UNKNOWN\020\000\022\013\n\007SERVIN" +
|
||||
"G\020\001\022\017\n\013NOT_SERVING\020\0022Z\n\006Health\022P\n\005Check\022" +
|
||||
"\".grpc.health.v1.HealthCheckRequest\032#.gr" +
|
||||
"pc.health.v1.HealthCheckResponseB3\n\021io.g" +
|
||||
"rpc.health.v1B\013HealthProtoP\001\252\002\016Grpc.Heal" +
|
||||
"th.V1b\006proto3"
|
||||
};
|
||||
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
|
||||
public com.google.protobuf.ExtensionRegistry assignDescriptors(
|
||||
com.google.protobuf.Descriptors.FileDescriptor root) {
|
||||
descriptor = root;
|
||||
return null;
|
||||
}
|
||||
};
|
||||
com.google.protobuf.Descriptors.FileDescriptor
|
||||
.internalBuildGeneratedFileFrom(descriptorData,
|
||||
new com.google.protobuf.Descriptors.FileDescriptor[] {
|
||||
}, assigner);
|
||||
internal_static_grpc_health_v1_HealthCheckRequest_descriptor =
|
||||
getDescriptor().getMessageTypes().get(0);
|
||||
internal_static_grpc_health_v1_HealthCheckRequest_fieldAccessorTable = new
|
||||
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
|
||||
internal_static_grpc_health_v1_HealthCheckRequest_descriptor,
|
||||
new java.lang.String[] { "Service", });
|
||||
internal_static_grpc_health_v1_HealthCheckResponse_descriptor =
|
||||
getDescriptor().getMessageTypes().get(1);
|
||||
internal_static_grpc_health_v1_HealthCheckResponse_fieldAccessorTable = new
|
||||
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
|
||||
internal_static_grpc_health_v1_HealthCheckResponse_descriptor,
|
||||
new java.lang.String[] { "Status", });
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(outer_class_scope)
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* Copyright 2016, Google Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package io.grpc.services;
|
||||
|
||||
import static io.grpc.health.v1.HealthCheckResponse.ServingStatus;
|
||||
|
||||
import io.grpc.Status;
|
||||
import io.grpc.StatusException;
|
||||
import io.grpc.health.v1.HealthCheckRequest;
|
||||
import io.grpc.health.v1.HealthCheckResponse;
|
||||
import io.grpc.health.v1.HealthGrpc;
|
||||
import io.grpc.stub.StreamObserver;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
final class HealthServiceImpl extends HealthGrpc.AbstractHealth {
|
||||
|
||||
/* Due to the latency of rpc calls, synchronization of the map does not help with consistency.
|
||||
* However, need use ConcurrentHashMap to prevent the possible race condition of currently putting
|
||||
* two keys with a colliding hashCode into the map. */
|
||||
private final Map<String, ServingStatus> statusMap
|
||||
= new ConcurrentHashMap<String, ServingStatus>();
|
||||
|
||||
@Override
|
||||
public void check(HealthCheckRequest request,
|
||||
StreamObserver<HealthCheckResponse> responseObserver) {
|
||||
ServingStatus status = getStatus(request.getService());
|
||||
if (status == null) {
|
||||
responseObserver.onError(new StatusException(Status.NOT_FOUND));
|
||||
} else {
|
||||
HealthCheckResponse response = HealthCheckResponse.newBuilder().setStatus(status).build();
|
||||
responseObserver.onNext(response);
|
||||
responseObserver.onCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
void setStatus(String service, ServingStatus status) {
|
||||
statusMap.put(service, status);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
ServingStatus getStatus(String service) {
|
||||
return statusMap.get(service);
|
||||
}
|
||||
|
||||
void clearStatus(String service) {
|
||||
statusMap.remove(service);
|
||||
}
|
||||
|
||||
void clearAll() {
|
||||
statusMap.clear();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* Copyright 2016, Google Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package io.grpc.services;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static io.grpc.health.v1.HealthCheckResponse.ServingStatus;
|
||||
|
||||
import io.grpc.health.v1.HealthGrpc;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A {@code HealthStatusManager} object manages a health check service. A health check service is
|
||||
* created in the constructor of {@code HealthStatusManager}, and it can be retrieved by the
|
||||
* {@link #getHealthService()} method.
|
||||
* The health status manager can update the health statuses of the server.
|
||||
*/
|
||||
@io.grpc.ExperimentalApi
|
||||
public final class HealthStatusManager {
|
||||
|
||||
private final HealthServiceImpl healthService;
|
||||
|
||||
/**
|
||||
* Creates a new health service instance.
|
||||
*/
|
||||
public HealthStatusManager() {
|
||||
healthService = new HealthServiceImpl();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the health check service created in the constructor.
|
||||
*/
|
||||
public HealthGrpc.AbstractHealth getHealthService() {
|
||||
return healthService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the status of the server.
|
||||
* @param service the name of some aspect of the server that is associated with a health status.
|
||||
* This name can have no relation with the gRPC services that the server is running with.
|
||||
* It can also be an empty String {@code ""} per the gRPC specification.
|
||||
* @param status is one of the values {@link ServingStatus#SERVING},
|
||||
* {@link ServingStatus#NOT_SERVING} and {@link ServingStatus#UNKNOWN}.
|
||||
*/
|
||||
public void setStatus(String service, ServingStatus status) {
|
||||
checkNotNull(status, "status");
|
||||
healthService.setStatus(service, status);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the health status record of a service. The health service will respond with NOT_FOUND
|
||||
* error on checking the status of a cleared service.
|
||||
* @param service the name of some aspect of the server that is associated with a health status.
|
||||
* This name can have no relation with the gRPC services that the server is running with.
|
||||
* It can also be an empty String {@code ""} per the gRPC specification.
|
||||
*/
|
||||
public void clearStatus(String service) {
|
||||
healthService.clearStatus(service);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright 2016, Google Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Service definitions and utilities for the pre-defined gRPC services.
|
||||
*/
|
||||
package io.grpc.services;
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
// Copyright 2015, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package grpc.health.v1;
|
||||
option csharp_namespace = "Grpc.Health.V1";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "io.grpc.health.v1";
|
||||
option java_outer_classname = "HealthProto";
|
||||
|
||||
message HealthCheckRequest {
|
||||
string service = 1;
|
||||
}
|
||||
|
||||
message HealthCheckResponse {
|
||||
enum ServingStatus {
|
||||
UNKNOWN = 0;
|
||||
SERVING = 1;
|
||||
NOT_SERVING = 2;
|
||||
}
|
||||
ServingStatus status = 1;
|
||||
}
|
||||
|
||||
service Health {
|
||||
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
|
||||
}
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
/*
|
||||
* Copyright 2016, Google Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package io.grpc.services;
|
||||
|
||||
import static io.grpc.health.v1.HealthGrpc.Health;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.any;
|
||||
import static org.mockito.Mockito.inOrder;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
|
||||
import io.grpc.Status;
|
||||
import io.grpc.StatusException;
|
||||
import io.grpc.health.v1.HealthCheckRequest;
|
||||
import io.grpc.health.v1.HealthCheckResponse;
|
||||
import io.grpc.stub.StreamObserver;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.InOrder;
|
||||
|
||||
/** Unit tests for {@link HealthStatusManager}. */
|
||||
@RunWith(JUnit4.class)
|
||||
public class HealthStatusManagerTest {
|
||||
|
||||
private final HealthStatusManager manager = new HealthStatusManager();
|
||||
private final Health health = manager.getHealthService();
|
||||
private final HealthCheckResponse.ServingStatus status
|
||||
= HealthCheckResponse.ServingStatus.UNKNOWN;
|
||||
|
||||
@Test
|
||||
public void getHealthService_getterReturnsTheSameHealthRefAfterUpdate() throws Exception {
|
||||
manager.setStatus("", status);
|
||||
assertEquals(health, manager.getHealthService());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void checkValidStatus() throws Exception {
|
||||
//setup
|
||||
manager.setStatus("", status);
|
||||
HealthCheckRequest request = HealthCheckRequest.newBuilder().setService("").build();
|
||||
@SuppressWarnings("unchecked")
|
||||
StreamObserver<HealthCheckResponse> observer = mock(StreamObserver.class);
|
||||
|
||||
//test
|
||||
health.check(request, observer);
|
||||
|
||||
//verify
|
||||
InOrder inOrder = inOrder(observer);
|
||||
inOrder.verify(observer, times(1)).onNext(any(HealthCheckResponse.class));
|
||||
inOrder.verify(observer, times(1)).onCompleted();
|
||||
verify(observer, never()).onError(any(Throwable.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkStatusNotFound() throws Exception {
|
||||
//setup
|
||||
manager.setStatus("", status);
|
||||
HealthCheckRequest request
|
||||
= HealthCheckRequest.newBuilder().setService("invalid").build();
|
||||
@SuppressWarnings("unchecked")
|
||||
StreamObserver<HealthCheckResponse> observer = mock(StreamObserver.class);
|
||||
|
||||
//test
|
||||
health.check(request, observer);
|
||||
|
||||
//verify
|
||||
ArgumentCaptor<StatusException> exception = ArgumentCaptor.forClass(StatusException.class);
|
||||
verify(observer, times(1)).onError(exception.capture());
|
||||
assertEquals(Status.NOT_FOUND, exception.getValue().getStatus());
|
||||
|
||||
verify(observer, never()).onCompleted();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notFoundForClearedStatus() throws Exception {
|
||||
//setup
|
||||
manager.setStatus("", status);
|
||||
manager.clearStatus("");
|
||||
HealthCheckRequest request
|
||||
= HealthCheckRequest.newBuilder().setService("").build();
|
||||
@SuppressWarnings("unchecked")
|
||||
StreamObserver<HealthCheckResponse> observer = mock(StreamObserver.class);
|
||||
|
||||
//test
|
||||
health.check(request, observer);
|
||||
|
||||
//verify
|
||||
ArgumentCaptor<StatusException> exception = ArgumentCaptor.forClass(StatusException.class);
|
||||
verify(observer, times(1)).onError(exception.capture());
|
||||
assertEquals(Status.NOT_FOUND, exception.getValue().getStatus());
|
||||
|
||||
verify(observer, never()).onCompleted();
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ include ":grpc-testing"
|
|||
include ":grpc-interop-testing"
|
||||
include ":grpc-all"
|
||||
include ":grpc-benchmarks"
|
||||
include ":grpc-services"
|
||||
include ":grpc-examples"
|
||||
|
||||
project(':grpc-core').projectDir = "$rootDir/core" as File
|
||||
|
|
@ -27,6 +28,7 @@ project(':grpc-testing').projectDir = "$rootDir/testing" as File
|
|||
project(':grpc-interop-testing').projectDir = "$rootDir/interop-testing" as File
|
||||
project(':grpc-all').projectDir = "$rootDir/all" as File
|
||||
project(':grpc-benchmarks').projectDir = "$rootDir/benchmarks" as File
|
||||
project(':grpc-services').projectDir = "$rootDir/services" as File
|
||||
project(':grpc-examples').projectDir = "$rootDir/examples" as File
|
||||
|
||||
if (settings.hasProperty('skipCodegen') && skipCodegen.toBoolean()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue