From cecb501245bb7d93b2e4c55acb783958b158f637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Wed, 28 Mar 2012 09:50:34 +0200 Subject: Support very simple serving. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit – Not asynchronous at this point. – Not well-tested. --- src/main/java/com/orbekk/protobuf/Rpc.java | 202 +++- src/main/java/com/orbekk/protobuf/Rpc.proto | 9 +- .../com/orbekk/protobuf/SimpleProtobufClient.java | 3 +- .../com/orbekk/protobuf/SimpleProtobufServer.java | 79 +- src/main/java/com/orbekk/protobuf/Test.java | 1035 ++++++++++++++++++++ src/main/java/com/orbekk/protobuf/Test.proto | 15 + 6 files changed, 1304 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/orbekk/protobuf/Test.java create mode 100644 src/main/java/com/orbekk/protobuf/Test.proto diff --git a/src/main/java/com/orbekk/protobuf/Rpc.java b/src/main/java/com/orbekk/protobuf/Rpc.java index 2748329..c74e48a 100644 --- a/src/main/java/com/orbekk/protobuf/Rpc.java +++ b/src/main/java/com/orbekk/protobuf/Rpc.java @@ -542,9 +542,13 @@ public final class Rpc { boolean hasResponseProto(); com.google.protobuf.ByteString getResponseProto(); - // optional int32 error = 2 [default = 0]; + // optional .com.orbekk.protobuf.Response.Error error = 2; boolean hasError(); - int getError(); + com.orbekk.protobuf.Rpc.Response.Error getError(); + + // optional int32 app_error = 4; + boolean hasAppError(); + int getAppError(); // optional string error_message = 3; boolean hasErrorMessage(); @@ -578,6 +582,81 @@ public final class Rpc { return com.orbekk.protobuf.Rpc.internal_static_com_orbekk_protobuf_Response_fieldAccessorTable; } + public enum Error + implements com.google.protobuf.ProtocolMessageEnum { + UNKNOWN_SERVICE(0, 0), + UNKNOWN_METHOD(1, 1), + CANCELED(2, 2), + APP_ERROR(3, 3), + ; + + public static final int UNKNOWN_SERVICE_VALUE = 0; + public static final int UNKNOWN_METHOD_VALUE = 1; + public static final int CANCELED_VALUE = 2; + public static final int APP_ERROR_VALUE = 3; + + + public final int getNumber() { return value; } + + public static Error valueOf(int value) { + switch (value) { + case 0: return UNKNOWN_SERVICE; + case 1: return UNKNOWN_METHOD; + case 2: return CANCELED; + case 3: return APP_ERROR; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Error findValueByNumber(int number) { + return Error.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 com.orbekk.protobuf.Rpc.Response.getDescriptor().getEnumTypes().get(0); + } + + private static final Error[] VALUES = { + UNKNOWN_SERVICE, UNKNOWN_METHOD, CANCELED, APP_ERROR, + }; + + public static Error valueOf( + com.google.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 Error(int index, int value) { + this.index = index; + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:com.orbekk.protobuf.Response.Error) + } + private int bitField0_; // optional bytes response_proto = 1; public static final int RESPONSE_PROTO_FIELD_NUMBER = 1; @@ -589,21 +668,31 @@ public final class Rpc { return responseProto_; } - // optional int32 error = 2 [default = 0]; + // optional .com.orbekk.protobuf.Response.Error error = 2; public static final int ERROR_FIELD_NUMBER = 2; - private int error_; + private com.orbekk.protobuf.Rpc.Response.Error error_; public boolean hasError() { return ((bitField0_ & 0x00000002) == 0x00000002); } - public int getError() { + public com.orbekk.protobuf.Rpc.Response.Error getError() { return error_; } + // optional int32 app_error = 4; + public static final int APP_ERROR_FIELD_NUMBER = 4; + private int appError_; + public boolean hasAppError() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public int getAppError() { + return appError_; + } + // optional string error_message = 3; public static final int ERROR_MESSAGE_FIELD_NUMBER = 3; private Object errorMessage_; public boolean hasErrorMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); + return ((bitField0_ & 0x00000008) == 0x00000008); } public String getErrorMessage() { Object ref = errorMessage_; @@ -633,7 +722,8 @@ public final class Rpc { private void initFields() { responseProto_ = com.google.protobuf.ByteString.EMPTY; - error_ = 0; + error_ = com.orbekk.protobuf.Rpc.Response.Error.UNKNOWN_SERVICE; + appError_ = 0; errorMessage_ = ""; } private byte memoizedIsInitialized = -1; @@ -652,11 +742,14 @@ public final class Rpc { output.writeBytes(1, responseProto_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeInt32(2, error_); + output.writeEnum(2, error_.getNumber()); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { + if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeBytes(3, getErrorMessageBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(4, appError_); + } getUnknownFields().writeTo(output); } @@ -672,12 +765,16 @@ public final class Rpc { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, error_); + .computeEnumSize(2, error_.getNumber()); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { + if (((bitField0_ & 0x00000008) == 0x00000008)) { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, getErrorMessageBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, appError_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -802,10 +899,12 @@ public final class Rpc { super.clear(); responseProto_ = com.google.protobuf.ByteString.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); - error_ = 0; + error_ = com.orbekk.protobuf.Rpc.Response.Error.UNKNOWN_SERVICE; bitField0_ = (bitField0_ & ~0x00000002); - errorMessage_ = ""; + appError_ = 0; bitField0_ = (bitField0_ & ~0x00000004); + errorMessage_ = ""; + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -855,6 +954,10 @@ public final class Rpc { if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } + result.appError_ = appError_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } result.errorMessage_ = errorMessage_; result.bitField0_ = to_bitField0_; onBuilt(); @@ -878,6 +981,9 @@ public final class Rpc { if (other.hasError()) { setError(other.getError()); } + if (other.hasAppError()) { + setAppError(other.getAppError()); + } if (other.hasErrorMessage()) { setErrorMessage(other.getErrorMessage()); } @@ -918,15 +1024,26 @@ public final class Rpc { break; } case 16: { - bitField0_ |= 0x00000002; - error_ = input.readInt32(); + int rawValue = input.readEnum(); + com.orbekk.protobuf.Rpc.Response.Error value = com.orbekk.protobuf.Rpc.Response.Error.valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(2, rawValue); + } else { + bitField0_ |= 0x00000002; + error_ = value; + } break; } case 26: { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; errorMessage_ = input.readBytes(); break; } + case 32: { + bitField0_ |= 0x00000004; + appError_ = input.readInt32(); + break; + } } } } @@ -957,15 +1074,18 @@ public final class Rpc { return this; } - // optional int32 error = 2 [default = 0]; - private int error_ ; + // optional .com.orbekk.protobuf.Response.Error error = 2; + private com.orbekk.protobuf.Rpc.Response.Error error_ = com.orbekk.protobuf.Rpc.Response.Error.UNKNOWN_SERVICE; public boolean hasError() { return ((bitField0_ & 0x00000002) == 0x00000002); } - public int getError() { + public com.orbekk.protobuf.Rpc.Response.Error getError() { return error_; } - public Builder setError(int value) { + public Builder setError(com.orbekk.protobuf.Rpc.Response.Error value) { + if (value == null) { + throw new NullPointerException(); + } bitField0_ |= 0x00000002; error_ = value; onChanged(); @@ -973,7 +1093,28 @@ public final class Rpc { } public Builder clearError() { bitField0_ = (bitField0_ & ~0x00000002); - error_ = 0; + error_ = com.orbekk.protobuf.Rpc.Response.Error.UNKNOWN_SERVICE; + onChanged(); + return this; + } + + // optional int32 app_error = 4; + private int appError_ ; + public boolean hasAppError() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public int getAppError() { + return appError_; + } + public Builder setAppError(int value) { + bitField0_ |= 0x00000004; + appError_ = value; + onChanged(); + return this; + } + public Builder clearAppError() { + bitField0_ = (bitField0_ & ~0x00000004); + appError_ = 0; onChanged(); return this; } @@ -981,7 +1122,7 @@ public final class Rpc { // optional string error_message = 3; private Object errorMessage_ = ""; public boolean hasErrorMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); + return ((bitField0_ & 0x00000008) == 0x00000008); } public String getErrorMessage() { Object ref = errorMessage_; @@ -997,19 +1138,19 @@ public final class Rpc { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; errorMessage_ = value; onChanged(); return this; } public Builder clearErrorMessage() { - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); errorMessage_ = getDefaultInstance().getErrorMessage(); onChanged(); return this; } void setErrorMessage(com.google.protobuf.ByteString value) { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; errorMessage_ = value; onChanged(); } @@ -1047,9 +1188,12 @@ public final class Rpc { "\n+src/main/java/com/orbekk/protobuf/Rpc." + "proto\022\023com.orbekk.protobuf\"P\n\007Request\022\031\n" + "\021full_service_name\030\001 \001(\t\022\023\n\013method_name\030" + - "\002 \001(\t\022\025\n\rrequest_proto\030\003 \001(\014\"K\n\010Response" + - "\022\026\n\016response_proto\030\001 \001(\014\022\020\n\005error\030\002 \001(\005:" + - "\0010\022\025\n\rerror_message\030\003 \001(\t" + "\002 \001(\t\022\025\n\rrequest_proto\030\003 \001(\014\"\317\001\n\010Respons" + + "e\022\026\n\016response_proto\030\001 \001(\014\0222\n\005error\030\002 \001(\016" + + "2#.com.orbekk.protobuf.Response.Error\022\021\n" + + "\tapp_error\030\004 \001(\005\022\025\n\rerror_message\030\003 \001(\t\"" + + "M\n\005Error\022\023\n\017UNKNOWN_SERVICE\020\000\022\022\n\016UNKNOWN" + + "_METHOD\020\001\022\014\n\010CANCELED\020\002\022\r\n\tAPP_ERROR\020\003" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -1069,7 +1213,7 @@ public final class Rpc { internal_static_com_orbekk_protobuf_Response_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_com_orbekk_protobuf_Response_descriptor, - new java.lang.String[] { "ResponseProto", "Error", "ErrorMessage", }, + new java.lang.String[] { "ResponseProto", "Error", "AppError", "ErrorMessage", }, com.orbekk.protobuf.Rpc.Response.class, com.orbekk.protobuf.Rpc.Response.Builder.class); return null; diff --git a/src/main/java/com/orbekk/protobuf/Rpc.proto b/src/main/java/com/orbekk/protobuf/Rpc.proto index 49e60ea..f733140 100644 --- a/src/main/java/com/orbekk/protobuf/Rpc.proto +++ b/src/main/java/com/orbekk/protobuf/Rpc.proto @@ -10,6 +10,13 @@ message Request { // Next tag: 4 message Response { optional bytes response_proto = 1; - optional int32 error = 2 [default = 0]; + enum Error { + UNKNOWN_SERVICE = 0; + UNKNOWN_METHOD = 1; + CANCELED = 2; + APP_ERROR = 3; + }; + optional Error error = 2; + optional int32 app_error = 4; optional string error_message = 3; } diff --git a/src/main/java/com/orbekk/protobuf/SimpleProtobufClient.java b/src/main/java/com/orbekk/protobuf/SimpleProtobufClient.java index eabb516..ffaedb0 100644 --- a/src/main/java/com/orbekk/protobuf/SimpleProtobufClient.java +++ b/src/main/java/com/orbekk/protobuf/SimpleProtobufClient.java @@ -9,7 +9,8 @@ public class SimpleProtobufClient { try { Socket socket = new Socket("localhost", 10000); Rpc.Request r1 = Rpc.Request.newBuilder() - .setFullServiceName("Service1") + .setFullServiceName("com.orbekk.protobuf.TestService") + .setMethodName("Run") .build(); Rpc.Request r2 = Rpc.Request.newBuilder() .setFullServiceName("Service2") diff --git a/src/main/java/com/orbekk/protobuf/SimpleProtobufServer.java b/src/main/java/com/orbekk/protobuf/SimpleProtobufServer.java index 57afae9..0a20883 100644 --- a/src/main/java/com/orbekk/protobuf/SimpleProtobufServer.java +++ b/src/main/java/com/orbekk/protobuf/SimpleProtobufServer.java @@ -2,16 +2,26 @@ package com.orbekk.protobuf; import java.util.logging.Level; import java.util.logging.Logger; +import java.io.OutputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; +import com.google.protobuf.Message; +import com.google.protobuf.Service; +import com.google.protobuf.RpcController; +import com.google.protobuf.RpcCallback; +import com.google.protobuf.Descriptors; +import java.util.Map; +import java.util.HashMap; public class SimpleProtobufServer extends Thread { private static Logger logger = Logger.getLogger( SimpleProtobufServer.class.getName()); - ServerSocket serverSocket; + private ServerSocket serverSocket; + private Map registeredServices = + new HashMap(); public static SimpleProtobufServer create(int port) { try { @@ -30,16 +40,52 @@ public class SimpleProtobufServer extends Thread { this.serverSocket = serverSocket; } + public synchronized void registerService(Service service) { + String serviceName = service.getDescriptorForType().getFullName(); + if (registeredServices.containsKey(serviceName)) { + logger.warning("Already registered service with this name."); + } + logger.info("Registering service: " + serviceName); + registeredServices.put(serviceName, service); + } + + public void handleRequest(Rpc.Request request, OutputStream out) + throws IOException { + Service service = registeredServices.get(request.getFullServiceName()); + final Rpc.Response.Builder response = Rpc.Response.newBuilder(); + if (service == null) { + response.setError(Rpc.Response.Error.UNKNOWN_SERVICE); + response.build().writeDelimitedTo(out); + return; + } + Descriptors.MethodDescriptor method = service.getDescriptorForType() + .findMethodByName(request.getMethodName()); + if (method == null) { + response.setError(Rpc.Response.Error.UNKNOWN_METHOD); + response.build().writeDelimitedTo(out); + return; + } + RpcCallback doneCallback = new RpcCallback() { + @Override public void run(Message responseMessage) { + response.setResponseProto(responseMessage.toByteString()); + } + }; + Message requestMessage = service.getRequestPrototype(method) + .toBuilder() + .mergeFrom(request.getRequestProto()) + .build(); + service.callMethod(method, null, requestMessage, doneCallback); + } + private void handleConnection(final Socket connection) { new Thread(new Runnable() { @Override public void run() { try { - Rpc.Request r1 = Rpc.Request.parseDelimitedFrom( - connection.getInputStream()); - Rpc.Request r2 = Rpc.Request.parseDelimitedFrom( - connection.getInputStream()); - System.out.println(r1); - System.out.println(r2); + while (true) { + Rpc.Request r1 = Rpc.Request.parseDelimitedFrom( + connection.getInputStream()); + handleRequest(r1, connection.getOutputStream()); + } } catch (IOException e) { logger.info("Closed connection: " + connection); } finally { @@ -66,6 +112,23 @@ public class SimpleProtobufServer extends Thread { } public static void main(String[] args) { - SimpleProtobufServer.create(10000).start(); + SimpleProtobufServer server = SimpleProtobufServer.create(10000); + Test.TestService testService = new Test.TestService() { + @Override public void run(RpcController controller, + Test.TestRequest request, + RpcCallback done) { + System.out.println("Hello from TestService!"); + done.run(Test.TestResponse.newBuilder() + .setId("Hello from server.") + .build()); + } + }; + server.registerService(testService); + server.start(); + try { + server.join(); + } catch (InterruptedException e) { + System.out.println("Stopped."); + } } } diff --git a/src/main/java/com/orbekk/protobuf/Test.java b/src/main/java/com/orbekk/protobuf/Test.java new file mode 100644 index 0000000..8b17a74 --- /dev/null +++ b/src/main/java/com/orbekk/protobuf/Test.java @@ -0,0 +1,1035 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: src/main/java/com/orbekk/protobuf/Test.proto + +package com.orbekk.protobuf; + +public final class Test { + private Test() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + } + public interface TestRequestOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional string id = 1; + boolean hasId(); + String getId(); + } + public static final class TestRequest extends + com.google.protobuf.GeneratedMessage + implements TestRequestOrBuilder { + // Use TestRequest.newBuilder() to construct. + private TestRequest(Builder builder) { + super(builder); + } + private TestRequest(boolean noInit) {} + + private static final TestRequest defaultInstance; + public static TestRequest getDefaultInstance() { + return defaultInstance; + } + + public TestRequest getDefaultInstanceForType() { + return defaultInstance; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestRequest_fieldAccessorTable; + } + + private int bitField0_; + // optional string id = 1; + public static final int ID_FIELD_NUMBER = 1; + private Object id_; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + Object ref = id_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + id_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getIdBytes() { + Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private void initFields() { + id_ = ""; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getIdBytes()); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, getIdBytes()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + @java.lang.Override + protected Object writeReplace() throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.protobuf.Test.TestRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input, extensionRegistry)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.orbekk.protobuf.Test.TestRequest prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements com.orbekk.protobuf.Test.TestRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestRequest_fieldAccessorTable; + } + + // Construct using com.orbekk.protobuf.Test.TestRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + id_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.orbekk.protobuf.Test.TestRequest.getDescriptor(); + } + + public com.orbekk.protobuf.Test.TestRequest getDefaultInstanceForType() { + return com.orbekk.protobuf.Test.TestRequest.getDefaultInstance(); + } + + public com.orbekk.protobuf.Test.TestRequest build() { + com.orbekk.protobuf.Test.TestRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private com.orbekk.protobuf.Test.TestRequest buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + com.orbekk.protobuf.Test.TestRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public com.orbekk.protobuf.Test.TestRequest buildPartial() { + com.orbekk.protobuf.Test.TestRequest result = new com.orbekk.protobuf.Test.TestRequest(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.orbekk.protobuf.Test.TestRequest) { + return mergeFrom((com.orbekk.protobuf.Test.TestRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.orbekk.protobuf.Test.TestRequest other) { + if (other == com.orbekk.protobuf.Test.TestRequest.getDefaultInstance()) return this; + if (other.hasId()) { + setId(other.getId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder( + this.getUnknownFields()); + while (true) { + int tag = input.readTag(); + switch (tag) { + case 0: + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + id_ = input.readBytes(); + break; + } + } + } + } + + private int bitField0_; + + // optional string id = 1; + private Object id_ = ""; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + Object ref = id_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + id_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setId(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + void setId(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + } + + // @@protoc_insertion_point(builder_scope:com.orbekk.protobuf.TestRequest) + } + + static { + defaultInstance = new TestRequest(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:com.orbekk.protobuf.TestRequest) + } + + public interface TestResponseOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional string id = 1; + boolean hasId(); + String getId(); + } + public static final class TestResponse extends + com.google.protobuf.GeneratedMessage + implements TestResponseOrBuilder { + // Use TestResponse.newBuilder() to construct. + private TestResponse(Builder builder) { + super(builder); + } + private TestResponse(boolean noInit) {} + + private static final TestResponse defaultInstance; + public static TestResponse getDefaultInstance() { + return defaultInstance; + } + + public TestResponse getDefaultInstanceForType() { + return defaultInstance; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestResponse_fieldAccessorTable; + } + + private int bitField0_; + // optional string id = 1; + public static final int ID_FIELD_NUMBER = 1; + private Object id_; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + Object ref = id_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + id_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getIdBytes() { + Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private void initFields() { + id_ = ""; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getIdBytes()); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, getIdBytes()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + @java.lang.Override + protected Object writeReplace() throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.protobuf.Test.TestResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input, extensionRegistry)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.protobuf.Test.TestResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.orbekk.protobuf.Test.TestResponse prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements com.orbekk.protobuf.Test.TestResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.protobuf.Test.internal_static_com_orbekk_protobuf_TestResponse_fieldAccessorTable; + } + + // Construct using com.orbekk.protobuf.Test.TestResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + id_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.orbekk.protobuf.Test.TestResponse.getDescriptor(); + } + + public com.orbekk.protobuf.Test.TestResponse getDefaultInstanceForType() { + return com.orbekk.protobuf.Test.TestResponse.getDefaultInstance(); + } + + public com.orbekk.protobuf.Test.TestResponse build() { + com.orbekk.protobuf.Test.TestResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private com.orbekk.protobuf.Test.TestResponse buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + com.orbekk.protobuf.Test.TestResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public com.orbekk.protobuf.Test.TestResponse buildPartial() { + com.orbekk.protobuf.Test.TestResponse result = new com.orbekk.protobuf.Test.TestResponse(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.orbekk.protobuf.Test.TestResponse) { + return mergeFrom((com.orbekk.protobuf.Test.TestResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.orbekk.protobuf.Test.TestResponse other) { + if (other == com.orbekk.protobuf.Test.TestResponse.getDefaultInstance()) return this; + if (other.hasId()) { + setId(other.getId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder( + this.getUnknownFields()); + while (true) { + int tag = input.readTag(); + switch (tag) { + case 0: + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + id_ = input.readBytes(); + break; + } + } + } + } + + private int bitField0_; + + // optional string id = 1; + private Object id_ = ""; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + Object ref = id_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + id_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setId(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + void setId(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + } + + // @@protoc_insertion_point(builder_scope:com.orbekk.protobuf.TestResponse) + } + + static { + defaultInstance = new TestResponse(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:com.orbekk.protobuf.TestResponse) + } + + public static abstract class TestService + implements com.google.protobuf.Service { + protected TestService() {} + + public interface Interface { + public abstract void run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request, + com.google.protobuf.RpcCallback done); + + } + + public static com.google.protobuf.Service newReflectiveService( + final Interface impl) { + return new TestService() { + @java.lang.Override + public void run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request, + com.google.protobuf.RpcCallback done) { + impl.run(controller, request, done); + } + + }; + } + + public static com.google.protobuf.BlockingService + newReflectiveBlockingService(final BlockingInterface impl) { + return new com.google.protobuf.BlockingService() { + public final com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptorForType() { + return getDescriptor(); + } + + public final com.google.protobuf.Message callBlockingMethod( + com.google.protobuf.Descriptors.MethodDescriptor method, + com.google.protobuf.RpcController controller, + com.google.protobuf.Message request) + throws com.google.protobuf.ServiceException { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.callBlockingMethod() given method descriptor for " + + "wrong service type."); + } + switch(method.getIndex()) { + case 0: + return impl.run(controller, (com.orbekk.protobuf.Test.TestRequest)request); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getRequestPrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getRequestPrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.protobuf.Test.TestRequest.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getResponsePrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getResponsePrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.protobuf.Test.TestResponse.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + }; + } + + public abstract void run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request, + com.google.protobuf.RpcCallback done); + + public static final + com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptor() { + return com.orbekk.protobuf.Test.getDescriptor().getServices().get(0); + } + public final com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptorForType() { + return getDescriptor(); + } + + public final void callMethod( + com.google.protobuf.Descriptors.MethodDescriptor method, + com.google.protobuf.RpcController controller, + com.google.protobuf.Message request, + com.google.protobuf.RpcCallback< + com.google.protobuf.Message> done) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.callMethod() given method descriptor for wrong " + + "service type."); + } + switch(method.getIndex()) { + case 0: + this.run(controller, (com.orbekk.protobuf.Test.TestRequest)request, + com.google.protobuf.RpcUtil.specializeCallback( + done)); + return; + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getRequestPrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getRequestPrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.protobuf.Test.TestRequest.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getResponsePrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getResponsePrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.protobuf.Test.TestResponse.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public static Stub newStub( + com.google.protobuf.RpcChannel channel) { + return new Stub(channel); + } + + public static final class Stub extends com.orbekk.protobuf.Test.TestService implements Interface { + private Stub(com.google.protobuf.RpcChannel channel) { + this.channel = channel; + } + + private final com.google.protobuf.RpcChannel channel; + + public com.google.protobuf.RpcChannel getChannel() { + return channel; + } + + public void run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request, + com.google.protobuf.RpcCallback done) { + channel.callMethod( + getDescriptor().getMethods().get(0), + controller, + request, + com.orbekk.protobuf.Test.TestResponse.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + com.orbekk.protobuf.Test.TestResponse.class, + com.orbekk.protobuf.Test.TestResponse.getDefaultInstance())); + } + } + + public static BlockingInterface newBlockingStub( + com.google.protobuf.BlockingRpcChannel channel) { + return new BlockingStub(channel); + } + + public interface BlockingInterface { + public com.orbekk.protobuf.Test.TestResponse run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request) + throws com.google.protobuf.ServiceException; + } + + private static final class BlockingStub implements BlockingInterface { + private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) { + this.channel = channel; + } + + private final com.google.protobuf.BlockingRpcChannel channel; + + public com.orbekk.protobuf.Test.TestResponse run( + com.google.protobuf.RpcController controller, + com.orbekk.protobuf.Test.TestRequest request) + throws com.google.protobuf.ServiceException { + return (com.orbekk.protobuf.Test.TestResponse) channel.callBlockingMethod( + getDescriptor().getMethods().get(0), + controller, + request, + com.orbekk.protobuf.Test.TestResponse.getDefaultInstance()); + } + + } + } + + private static com.google.protobuf.Descriptors.Descriptor + internal_static_com_orbekk_protobuf_TestRequest_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_com_orbekk_protobuf_TestRequest_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_com_orbekk_protobuf_TestResponse_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_com_orbekk_protobuf_TestResponse_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n,src/main/java/com/orbekk/protobuf/Test" + + ".proto\022\023com.orbekk.protobuf\"\031\n\013TestReque" + + "st\022\n\n\002id\030\001 \001(\t\"\032\n\014TestResponse\022\n\n\002id\030\001 \001" + + "(\t2Y\n\013TestService\022J\n\003Run\022 .com.orbekk.pr" + + "otobuf.TestRequest\032!.com.orbekk.protobuf" + + ".TestResponseB\003\210\001\001" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + internal_static_com_orbekk_protobuf_TestRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_com_orbekk_protobuf_TestRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_orbekk_protobuf_TestRequest_descriptor, + new java.lang.String[] { "Id", }, + com.orbekk.protobuf.Test.TestRequest.class, + com.orbekk.protobuf.Test.TestRequest.Builder.class); + internal_static_com_orbekk_protobuf_TestResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_com_orbekk_protobuf_TestResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_orbekk_protobuf_TestResponse_descriptor, + new java.lang.String[] { "Id", }, + com.orbekk.protobuf.Test.TestResponse.class, + com.orbekk.protobuf.Test.TestResponse.Builder.class); + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/com/orbekk/protobuf/Test.proto b/src/main/java/com/orbekk/protobuf/Test.proto new file mode 100644 index 0000000..3abb507 --- /dev/null +++ b/src/main/java/com/orbekk/protobuf/Test.proto @@ -0,0 +1,15 @@ +package com.orbekk.protobuf; + +option java_generic_services = true; + +message TestRequest { + optional string id = 1; +} + +message TestResponse { + optional string id = 1; +} + +service TestService { + rpc Run (TestRequest) returns (TestResponse); +} -- cgit v1.2.3