diff --git a/java/compiler/compile-server/compile-server.iml b/java/compiler/compile-server/compile-server.iml
new file mode 100644
index 000000000000..d1ae89fe89f6
--- /dev/null
+++ b/java/compiler/compile-server/compile-server.iml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/compiler/compile-server/proto/gen_proto.bat b/java/compiler/compile-server/proto/gen_proto.bat
new file mode 100644
index 000000000000..ea0421735789
--- /dev/null
+++ b/java/compiler/compile-server/proto/gen_proto.bat
@@ -0,0 +1 @@
+protoc -I=. --java_out=../src *.proto
\ No newline at end of file
diff --git a/java/compiler/compile-server/proto/jps_remote_proto.proto b/java/compiler/compile-server/proto/jps_remote_proto.proto
new file mode 100644
index 000000000000..0789c5ebc779
--- /dev/null
+++ b/java/compiler/compile-server/proto/jps_remote_proto.proto
@@ -0,0 +1,99 @@
+package org.jetbrains.jpsservice;
+
+option java_package = "org.jetbrains.jpsservice";
+option optimize_for = LITE_RUNTIME;
+
+message Message {
+
+ message UUID {
+ required sint64 most_sig_bits = 1;
+ required sint64 least_sig_bits = 2;
+ }
+
+ enum Type {
+ REQUEST = 1;
+ RESPONSE = 2;
+ FAILURE = 3;
+ }
+
+ message Failure {
+ optional int32 error_code = 1;
+ optional string description = 2;
+ optional string stacktrace = 3;
+ }
+
+ message Request {
+ enum Type {
+ COMPILE_REQUEST = 1;
+ SHUTDOWN_COMMAND = 2;
+ }
+
+ message CompilationRequest {
+ enum Type {
+ REBUILD = 1;
+ MAKE = 2;
+ CLEAN = 3;
+ CANCEL = 4;
+ }
+ required Type command_type = 1;
+ optional string project_id = 2;
+ repeated string module_name = 4;
+ }
+
+ message ShutdownCommand {
+ enum ShutdownPolicy {
+ CANCEL_RUNNING_BUILDS = 1;
+ WAIT_RUNNING_BUILDS = 2;
+ }
+ required ShutdownPolicy shutdownPolicy = 1;
+ }
+
+ required Type request_type = 1;
+ optional CompilationRequest compile_request = 2;
+ optional ShutdownCommand shutdown_command = 3;
+ }
+
+ message Response {
+ enum Type {
+ COMMAND_RESPONSE = 1;
+ COMPILE_MESSAGE = 2;
+ }
+
+ message CommandResponse {
+ enum Type {
+ COMMAND_ACCEPTED = 1;
+ COMMAND_REJECTED = 2;
+ BUILD_COMPLETED = 3;
+ BUILD_CANCELED = 4;
+ }
+ required Type command_type = 1;
+ optional string description = 2;
+ }
+
+ message CompileMessage {
+ enum Kind {
+ ERROR = 1;
+ WARNING = 2;
+ INFO = 3;
+ PROGRESS = 4;
+ }
+ required Kind kind = 1;
+ optional string text = 2;
+ optional string source_file_path = 3;
+ optional uint32 line = 4;
+ optional uint32 column = 5;
+ }
+
+ required Type response_type = 1;
+ optional CommandResponse command_response = 2;
+ optional CompileMessage compile_message = 3;
+ }
+
+ required UUID session_id = 1;
+ required Type message_type = 2;
+ optional Request request = 3;
+ optional Response response = 4;
+ optional Failure failure = 5;
+}
+
+
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java
new file mode 100644
index 000000000000..1438b100125f
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java
@@ -0,0 +1,229 @@
+package org.jetbrains.jpsservice;
+
+import org.jboss.netty.bootstrap.ClientBootstrap;
+import org.jboss.netty.channel.*;
+import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
+import org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jpsservice.impl.JpsClientMessageHandler;
+import org.jetbrains.jpsservice.impl.ProtoUtil;
+
+import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/11/11
+ */
+public class Client {
+ private static enum State {
+ DISCONNECTED, CONNECTING, CONNECTED, DISCONNECTING
+ }
+ private final AtomicReference myState = new AtomicReference(State.DISCONNECTED);
+
+ private final ChannelPipelineFactory myPipelineFactory;
+ private final ChannelFactory myChannelFactory;
+ private ChannelFuture myConnectFuture;
+ private final ConcurrentHashMap myHandlers = new ConcurrentHashMap();
+
+ public Client() {
+ myChannelFactory = new NioClientSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool(), 1);
+
+ myPipelineFactory = new ChannelPipelineFactory() {
+ public ChannelPipeline getPipeline() throws Exception {
+ return Channels.pipeline(
+ new ProtobufVarint32FrameDecoder(),
+ new ProtobufDecoder(JpsRemoteProto.Message.getDefaultInstance()),
+ new ProtobufVarint32LengthFieldPrepender(),
+ new ProtobufEncoder(),
+ new JpsClientMessageHandler() {
+
+ protected JpsServerResponseHandler getHandler(UUID sessionId) {
+ final RequestFuture future = myHandlers.get(sessionId);
+ return future != null? future.myHandler : null;
+ }
+
+ protected void terminateSession(UUID sessionId) {
+ final RequestFuture future = myHandlers.remove(sessionId);
+ if (future != null) {
+ final JpsServerResponseHandler handler = future.myHandler;
+ try {
+ if (handler != null) {
+ try {
+ handler.sessionTerminated();
+ }
+ catch (Throwable ignored) {
+ ignored.printStackTrace();
+ }
+ }
+ }
+ finally {
+ future.setDone();
+ }
+ }
+ }
+
+ public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
+ try {
+ super.channelClosed(ctx, e);
+ }
+ finally {
+ for (UUID uuid : new ArrayList(myHandlers.keySet())) {
+ terminateSession(uuid);
+ }
+ }
+ }
+ }
+ );
+ }
+ };
+ }
+
+ public Future sendCompileRequest(String projectId, List modules, boolean rebuild, JpsServerResponseHandler handler) throws Throwable {
+ if (myState.get() != State.CONNECTED) {
+ return null;
+ }
+ return sendRequest(
+ rebuild? ProtoUtil.createRebuildRequest(projectId, modules) : ProtoUtil.createMakeRequest(projectId, modules),
+ handler
+ );
+ }
+
+ @Nullable
+ public Future sendShutdownRequest() throws Throwable {
+ if (myState.get() != State.CONNECTED) {
+ return null;
+ }
+ return sendRequest(ProtoUtil.createShutdownRequest(true), null);
+ }
+
+ private Future sendRequest(JpsRemoteProto.Message.Request request, @Nullable JpsServerResponseHandler handler) {
+ final UUID sessionUUID = UUID.randomUUID();
+ final RequestFuture requestFuture = new RequestFuture(handler);
+ myHandlers.put(sessionUUID, requestFuture);
+ boolean success = false;
+ try {
+ final ChannelFuture future = Channels.write(myConnectFuture.getChannel(), ProtoUtil.toMessage(sessionUUID, request));
+ future.awaitUninterruptibly();
+ success = future.isSuccess();
+ return success? requestFuture : null;
+ }
+ finally {
+ if (!success) {
+ requestFuture.setDone();
+ myHandlers.remove(sessionUUID);
+ handler.sessionTerminated();
+ }
+ }
+ }
+
+ public boolean connect(final String host, final int port) throws Throwable {
+ if (myState.compareAndSet(State.DISCONNECTED, State.CONNECTING)) {
+ boolean success = false;
+
+ try {
+ final ClientBootstrap bootstrap = new ClientBootstrap(myChannelFactory);
+ bootstrap.setPipelineFactory(myPipelineFactory);
+ bootstrap.setOption("tcpNoDelay", true);
+ bootstrap.setOption("keepAlive", true);
+ final ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
+ future.awaitUninterruptibly();
+
+ success = future.isSuccess();
+
+ if (success) {
+ myConnectFuture = future;
+ }
+ else {
+ final Throwable reason = future.getCause();
+ if (reason != null) {
+ throw reason;
+ }
+ }
+
+ return success;
+ }
+ finally {
+ myState.compareAndSet(State.CONNECTING, success? State.CONNECTED : State.DISCONNECTED);
+ }
+ }
+ // already connected
+ return false;
+ }
+
+ public void disconnect() {
+ if (myState.compareAndSet(State.CONNECTED, State.DISCONNECTING)) {
+ try {
+ final ChannelFuture future = myConnectFuture;
+ if (future != null) {
+ try {
+ final ChannelFuture closeFuture = future.getChannel().close();
+ closeFuture.awaitUninterruptibly();
+ }
+ finally {
+ myChannelFactory.releaseExternalResources();
+ }
+ }
+ }
+ finally {
+ myConnectFuture = null;
+ myState.compareAndSet(State.DISCONNECTING, State.DISCONNECTED);
+ }
+ }
+ }
+
+ public boolean isConnected() {
+ return myState.get() == State.CONNECTED;
+ }
+
+ private static class RequestFuture implements Future {
+ private final Semaphore mySemaphore = new Semaphore(1);
+ private final AtomicBoolean myDone = new AtomicBoolean(false);
+ private final JpsServerResponseHandler myHandler;
+
+ public RequestFuture(JpsServerResponseHandler handler) {
+ myHandler = handler;
+ mySemaphore.acquireUninterruptibly();
+ }
+
+ public void setDone() {
+ if (!myDone.getAndSet(true)) {
+ mySemaphore.release();
+ }
+ }
+
+ public boolean cancel(boolean mayInterruptIfRunning) {
+ return false;
+ }
+
+ public boolean isCancelled() {
+ return false;
+ }
+
+ public boolean isDone() {
+ return myDone.get();
+ }
+
+ public Object get() throws InterruptedException, ExecutionException {
+ while (!isDone()) {
+ mySemaphore.tryAcquire(100L, TimeUnit.MILLISECONDS);
+ }
+ return null;
+ }
+
+ public Object get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+ if (!isDone()) {
+ mySemaphore.tryAcquire(timeout, unit);
+ }
+ return null;
+ }
+ }
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsRemoteProto.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsRemoteProto.java
new file mode 100644
index 000000000000..60ad125a21cf
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsRemoteProto.java
@@ -0,0 +1,3617 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: jps_remote_proto.proto
+
+package org.jetbrains.jpsservice;
+
+public final class JpsRemoteProto {
+ private JpsRemoteProto() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+ public static final class Message extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use Message.newBuilder() to construct.
+ private Message() {
+ initFields();
+ }
+ private Message(boolean noInit) {}
+
+ private static final Message defaultInstance;
+ public static Message getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Message getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Type
+ implements com.google.protobuf.Internal.EnumLite {
+ REQUEST(0, 1),
+ RESPONSE(1, 2),
+ FAILURE(2, 3),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return REQUEST;
+ case 2: return RESPONSE;
+ case 3: return FAILURE;
+ 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 Type findValueByNumber(int number) {
+ return Type.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Type)
+ }
+
+ public static final class UUID extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use UUID.newBuilder() to construct.
+ private UUID() {
+ initFields();
+ }
+ private UUID(boolean noInit) {}
+
+ private static final UUID defaultInstance;
+ public static UUID getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public UUID getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ // required sint64 most_sig_bits = 1;
+ public static final int MOST_SIG_BITS_FIELD_NUMBER = 1;
+ private boolean hasMostSigBits;
+ private long mostSigBits_ = 0L;
+ public boolean hasMostSigBits() { return hasMostSigBits; }
+ public long getMostSigBits() { return mostSigBits_; }
+
+ // required sint64 least_sig_bits = 2;
+ public static final int LEAST_SIG_BITS_FIELD_NUMBER = 2;
+ private boolean hasLeastSigBits;
+ private long leastSigBits_ = 0L;
+ public boolean hasLeastSigBits() { return hasLeastSigBits; }
+ public long getLeastSigBits() { return leastSigBits_; }
+
+ private void initFields() {
+ }
+ public final boolean isInitialized() {
+ if (!hasMostSigBits) return false;
+ if (!hasLeastSigBits) return false;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasMostSigBits()) {
+ output.writeSInt64(1, getMostSigBits());
+ }
+ if (hasLeastSigBits()) {
+ output.writeSInt64(2, getLeastSigBits());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMostSigBits()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeSInt64Size(1, getMostSigBits());
+ }
+ if (hasLeastSigBits()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeSInt64Size(2, getLeastSigBits());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.getDefaultInstance()) return this;
+ if (other.hasMostSigBits()) {
+ setMostSigBits(other.getMostSigBits());
+ }
+ if (other.hasLeastSigBits()) {
+ setLeastSigBits(other.getLeastSigBits());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ setMostSigBits(input.readSInt64());
+ break;
+ }
+ case 16: {
+ setLeastSigBits(input.readSInt64());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required sint64 most_sig_bits = 1;
+ public boolean hasMostSigBits() {
+ return result.hasMostSigBits();
+ }
+ public long getMostSigBits() {
+ return result.getMostSigBits();
+ }
+ public Builder setMostSigBits(long value) {
+ result.hasMostSigBits = true;
+ result.mostSigBits_ = value;
+ return this;
+ }
+ public Builder clearMostSigBits() {
+ result.hasMostSigBits = false;
+ result.mostSigBits_ = 0L;
+ return this;
+ }
+
+ // required sint64 least_sig_bits = 2;
+ public boolean hasLeastSigBits() {
+ return result.hasLeastSigBits();
+ }
+ public long getLeastSigBits() {
+ return result.getLeastSigBits();
+ }
+ public Builder setLeastSigBits(long value) {
+ result.hasLeastSigBits = true;
+ result.leastSigBits_ = value;
+ return this;
+ }
+ public Builder clearLeastSigBits() {
+ result.hasLeastSigBits = false;
+ result.leastSigBits_ = 0L;
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.UUID)
+ }
+
+ static {
+ defaultInstance = new UUID(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.UUID)
+ }
+
+ public static final class Failure extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use Failure.newBuilder() to construct.
+ private Failure() {
+ initFields();
+ }
+ private Failure(boolean noInit) {}
+
+ private static final Failure defaultInstance;
+ public static Failure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Failure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ // optional int32 error_code = 1;
+ public static final int ERROR_CODE_FIELD_NUMBER = 1;
+ private boolean hasErrorCode;
+ private int errorCode_ = 0;
+ public boolean hasErrorCode() { return hasErrorCode; }
+ public int getErrorCode() { return errorCode_; }
+
+ // optional string description = 2;
+ public static final int DESCRIPTION_FIELD_NUMBER = 2;
+ private boolean hasDescription;
+ private java.lang.String description_ = "";
+ public boolean hasDescription() { return hasDescription; }
+ public java.lang.String getDescription() { return description_; }
+
+ // optional string stacktrace = 3;
+ public static final int STACKTRACE_FIELD_NUMBER = 3;
+ private boolean hasStacktrace;
+ private java.lang.String stacktrace_ = "";
+ public boolean hasStacktrace() { return hasStacktrace; }
+ public java.lang.String getStacktrace() { return stacktrace_; }
+
+ private void initFields() {
+ }
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasErrorCode()) {
+ output.writeInt32(1, getErrorCode());
+ }
+ if (hasDescription()) {
+ output.writeString(2, getDescription());
+ }
+ if (hasStacktrace()) {
+ output.writeString(3, getStacktrace());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasErrorCode()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, getErrorCode());
+ }
+ if (hasDescription()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(2, getDescription());
+ }
+ if (hasStacktrace()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(3, getStacktrace());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.getDefaultInstance()) return this;
+ if (other.hasErrorCode()) {
+ setErrorCode(other.getErrorCode());
+ }
+ if (other.hasDescription()) {
+ setDescription(other.getDescription());
+ }
+ if (other.hasStacktrace()) {
+ setStacktrace(other.getStacktrace());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ setErrorCode(input.readInt32());
+ break;
+ }
+ case 18: {
+ setDescription(input.readString());
+ break;
+ }
+ case 26: {
+ setStacktrace(input.readString());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // optional int32 error_code = 1;
+ public boolean hasErrorCode() {
+ return result.hasErrorCode();
+ }
+ public int getErrorCode() {
+ return result.getErrorCode();
+ }
+ public Builder setErrorCode(int value) {
+ result.hasErrorCode = true;
+ result.errorCode_ = value;
+ return this;
+ }
+ public Builder clearErrorCode() {
+ result.hasErrorCode = false;
+ result.errorCode_ = 0;
+ return this;
+ }
+
+ // optional string description = 2;
+ public boolean hasDescription() {
+ return result.hasDescription();
+ }
+ public java.lang.String getDescription() {
+ return result.getDescription();
+ }
+ public Builder setDescription(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasDescription = true;
+ result.description_ = value;
+ return this;
+ }
+ public Builder clearDescription() {
+ result.hasDescription = false;
+ result.description_ = getDefaultInstance().getDescription();
+ return this;
+ }
+
+ // optional string stacktrace = 3;
+ public boolean hasStacktrace() {
+ return result.hasStacktrace();
+ }
+ public java.lang.String getStacktrace() {
+ return result.getStacktrace();
+ }
+ public Builder setStacktrace(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasStacktrace = true;
+ result.stacktrace_ = value;
+ return this;
+ }
+ public Builder clearStacktrace() {
+ result.hasStacktrace = false;
+ result.stacktrace_ = getDefaultInstance().getStacktrace();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Failure)
+ }
+
+ static {
+ defaultInstance = new Failure(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Failure)
+ }
+
+ public static final class Request extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use Request.newBuilder() to construct.
+ private Request() {
+ initFields();
+ }
+ private Request(boolean noInit) {}
+
+ private static final Request defaultInstance;
+ public static Request getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Request getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Type
+ implements com.google.protobuf.Internal.EnumLite {
+ COMPILE_REQUEST(0, 1),
+ SHUTDOWN_COMMAND(1, 2),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return COMPILE_REQUEST;
+ case 2: return SHUTDOWN_COMMAND;
+ 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 Type findValueByNumber(int number) {
+ return Type.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Request.Type)
+ }
+
+ public static final class CompilationRequest extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use CompilationRequest.newBuilder() to construct.
+ private CompilationRequest() {
+ initFields();
+ }
+ private CompilationRequest(boolean noInit) {}
+
+ private static final CompilationRequest defaultInstance;
+ public static CompilationRequest getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public CompilationRequest getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Type
+ implements com.google.protobuf.Internal.EnumLite {
+ REBUILD(0, 1),
+ MAKE(1, 2),
+ CLEAN(2, 3),
+ CANCEL(3, 4),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return REBUILD;
+ case 2: return MAKE;
+ case 3: return CLEAN;
+ case 4: return CANCEL;
+ 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 Type findValueByNumber(int number) {
+ return Type.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Request.CompilationRequest.Type)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Request.CompilationRequest.Type command_type = 1;
+ public static final int COMMAND_TYPE_FIELD_NUMBER = 1;
+ private boolean hasCommandType;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type commandType_;
+ public boolean hasCommandType() { return hasCommandType; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type getCommandType() { return commandType_; }
+
+ // optional string project_id = 2;
+ public static final int PROJECT_ID_FIELD_NUMBER = 2;
+ private boolean hasProjectId;
+ private java.lang.String projectId_ = "";
+ public boolean hasProjectId() { return hasProjectId; }
+ public java.lang.String getProjectId() { return projectId_; }
+
+ // repeated string module_name = 4;
+ public static final int MODULE_NAME_FIELD_NUMBER = 4;
+ private java.util.List moduleName_ =
+ java.util.Collections.emptyList();
+ public java.util.List getModuleNameList() {
+ return moduleName_;
+ }
+ public int getModuleNameCount() { return moduleName_.size(); }
+ public java.lang.String getModuleName(int index) {
+ return moduleName_.get(index);
+ }
+
+ private void initFields() {
+ commandType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD;
+ }
+ public final boolean isInitialized() {
+ if (!hasCommandType) return false;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasCommandType()) {
+ output.writeEnum(1, getCommandType().getNumber());
+ }
+ if (hasProjectId()) {
+ output.writeString(2, getProjectId());
+ }
+ for (java.lang.String element : getModuleNameList()) {
+ output.writeString(4, element);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasCommandType()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getCommandType().getNumber());
+ }
+ if (hasProjectId()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(2, getProjectId());
+ }
+ {
+ int dataSize = 0;
+ for (java.lang.String element : getModuleNameList()) {
+ dataSize += com.google.protobuf.CodedOutputStream
+ .computeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * getModuleNameList().size();
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ if (result.moduleName_ != java.util.Collections.EMPTY_LIST) {
+ result.moduleName_ =
+ java.util.Collections.unmodifiableList(result.moduleName_);
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.getDefaultInstance()) return this;
+ if (other.hasCommandType()) {
+ setCommandType(other.getCommandType());
+ }
+ if (other.hasProjectId()) {
+ setProjectId(other.getProjectId());
+ }
+ if (!other.moduleName_.isEmpty()) {
+ if (result.moduleName_.isEmpty()) {
+ result.moduleName_ = new java.util.ArrayList();
+ }
+ result.moduleName_.addAll(other.moduleName_);
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type.valueOf(rawValue);
+ if (value != null) {
+ setCommandType(value);
+ }
+ break;
+ }
+ case 18: {
+ setProjectId(input.readString());
+ break;
+ }
+ case 34: {
+ addModuleName(input.readString());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Request.CompilationRequest.Type command_type = 1;
+ public boolean hasCommandType() {
+ return result.hasCommandType();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type getCommandType() {
+ return result.getCommandType();
+ }
+ public Builder setCommandType(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasCommandType = true;
+ result.commandType_ = value;
+ return this;
+ }
+ public Builder clearCommandType() {
+ result.hasCommandType = false;
+ result.commandType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD;
+ return this;
+ }
+
+ // optional string project_id = 2;
+ public boolean hasProjectId() {
+ return result.hasProjectId();
+ }
+ public java.lang.String getProjectId() {
+ return result.getProjectId();
+ }
+ public Builder setProjectId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasProjectId = true;
+ result.projectId_ = value;
+ return this;
+ }
+ public Builder clearProjectId() {
+ result.hasProjectId = false;
+ result.projectId_ = getDefaultInstance().getProjectId();
+ return this;
+ }
+
+ // repeated string module_name = 4;
+ public java.util.List getModuleNameList() {
+ return java.util.Collections.unmodifiableList(result.moduleName_);
+ }
+ public int getModuleNameCount() {
+ return result.getModuleNameCount();
+ }
+ public java.lang.String getModuleName(int index) {
+ return result.getModuleName(index);
+ }
+ public Builder setModuleName(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.moduleName_.set(index, value);
+ return this;
+ }
+ public Builder addModuleName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ if (result.moduleName_.isEmpty()) {
+ result.moduleName_ = new java.util.ArrayList();
+ }
+ result.moduleName_.add(value);
+ return this;
+ }
+ public Builder addAllModuleName(
+ java.lang.Iterable extends java.lang.String> values) {
+ if (result.moduleName_.isEmpty()) {
+ result.moduleName_ = new java.util.ArrayList();
+ }
+ super.addAll(values, result.moduleName_);
+ return this;
+ }
+ public Builder clearModuleName() {
+ result.moduleName_ = java.util.Collections.emptyList();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Request.CompilationRequest)
+ }
+
+ static {
+ defaultInstance = new CompilationRequest(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Request.CompilationRequest)
+ }
+
+ public static final class ShutdownCommand extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use ShutdownCommand.newBuilder() to construct.
+ private ShutdownCommand() {
+ initFields();
+ }
+ private ShutdownCommand(boolean noInit) {}
+
+ private static final ShutdownCommand defaultInstance;
+ public static ShutdownCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public ShutdownCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum ShutdownPolicy
+ implements com.google.protobuf.Internal.EnumLite {
+ CANCEL_RUNNING_BUILDS(0, 1),
+ WAIT_RUNNING_BUILDS(1, 2),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static ShutdownPolicy valueOf(int value) {
+ switch (value) {
+ case 1: return CANCEL_RUNNING_BUILDS;
+ case 2: return WAIT_RUNNING_BUILDS;
+ 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 ShutdownPolicy findValueByNumber(int number) {
+ return ShutdownPolicy.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private ShutdownPolicy(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Request.ShutdownCommand.ShutdownPolicy)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Request.ShutdownCommand.ShutdownPolicy shutdownPolicy = 1;
+ public static final int SHUTDOWNPOLICY_FIELD_NUMBER = 1;
+ private boolean hasShutdownPolicy;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy shutdownPolicy_;
+ public boolean hasShutdownPolicy() { return hasShutdownPolicy; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy getShutdownPolicy() { return shutdownPolicy_; }
+
+ private void initFields() {
+ shutdownPolicy_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy.CANCEL_RUNNING_BUILDS;
+ }
+ public final boolean isInitialized() {
+ if (!hasShutdownPolicy) return false;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasShutdownPolicy()) {
+ output.writeEnum(1, getShutdownPolicy().getNumber());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasShutdownPolicy()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getShutdownPolicy().getNumber());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.getDefaultInstance()) return this;
+ if (other.hasShutdownPolicy()) {
+ setShutdownPolicy(other.getShutdownPolicy());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy.valueOf(rawValue);
+ if (value != null) {
+ setShutdownPolicy(value);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Request.ShutdownCommand.ShutdownPolicy shutdownPolicy = 1;
+ public boolean hasShutdownPolicy() {
+ return result.hasShutdownPolicy();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy getShutdownPolicy() {
+ return result.getShutdownPolicy();
+ }
+ public Builder setShutdownPolicy(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasShutdownPolicy = true;
+ result.shutdownPolicy_ = value;
+ return this;
+ }
+ public Builder clearShutdownPolicy() {
+ result.hasShutdownPolicy = false;
+ result.shutdownPolicy_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy.CANCEL_RUNNING_BUILDS;
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Request.ShutdownCommand)
+ }
+
+ static {
+ defaultInstance = new ShutdownCommand(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Request.ShutdownCommand)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Request.Type request_type = 1;
+ public static final int REQUEST_TYPE_FIELD_NUMBER = 1;
+ private boolean hasRequestType;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type requestType_;
+ public boolean hasRequestType() { return hasRequestType; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type getRequestType() { return requestType_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Request.CompilationRequest compile_request = 2;
+ public static final int COMPILE_REQUEST_FIELD_NUMBER = 2;
+ private boolean hasCompileRequest;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest compileRequest_;
+ public boolean hasCompileRequest() { return hasCompileRequest; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest getCompileRequest() { return compileRequest_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Request.ShutdownCommand shutdown_command = 3;
+ public static final int SHUTDOWN_COMMAND_FIELD_NUMBER = 3;
+ private boolean hasShutdownCommand;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand shutdownCommand_;
+ public boolean hasShutdownCommand() { return hasShutdownCommand; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand getShutdownCommand() { return shutdownCommand_; }
+
+ private void initFields() {
+ requestType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST;
+ compileRequest_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.getDefaultInstance();
+ shutdownCommand_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.getDefaultInstance();
+ }
+ public final boolean isInitialized() {
+ if (!hasRequestType) return false;
+ if (hasCompileRequest()) {
+ if (!getCompileRequest().isInitialized()) return false;
+ }
+ if (hasShutdownCommand()) {
+ if (!getShutdownCommand().isInitialized()) return false;
+ }
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasRequestType()) {
+ output.writeEnum(1, getRequestType().getNumber());
+ }
+ if (hasCompileRequest()) {
+ output.writeMessage(2, getCompileRequest());
+ }
+ if (hasShutdownCommand()) {
+ output.writeMessage(3, getShutdownCommand());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequestType()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getRequestType().getNumber());
+ }
+ if (hasCompileRequest()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, getCompileRequest());
+ }
+ if (hasShutdownCommand()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, getShutdownCommand());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Request parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Request internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Request();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.getDefaultInstance()) return this;
+ if (other.hasRequestType()) {
+ setRequestType(other.getRequestType());
+ }
+ if (other.hasCompileRequest()) {
+ mergeCompileRequest(other.getCompileRequest());
+ }
+ if (other.hasShutdownCommand()) {
+ mergeShutdownCommand(other.getShutdownCommand());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type.valueOf(rawValue);
+ if (value != null) {
+ setRequestType(value);
+ }
+ break;
+ }
+ case 18: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.newBuilder();
+ if (hasCompileRequest()) {
+ subBuilder.mergeFrom(getCompileRequest());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setCompileRequest(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.newBuilder();
+ if (hasShutdownCommand()) {
+ subBuilder.mergeFrom(getShutdownCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setShutdownCommand(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Request.Type request_type = 1;
+ public boolean hasRequestType() {
+ return result.hasRequestType();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type getRequestType() {
+ return result.getRequestType();
+ }
+ public Builder setRequestType(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasRequestType = true;
+ result.requestType_ = value;
+ return this;
+ }
+ public Builder clearRequestType() {
+ result.hasRequestType = false;
+ result.requestType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST;
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Request.CompilationRequest compile_request = 2;
+ public boolean hasCompileRequest() {
+ return result.hasCompileRequest();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest getCompileRequest() {
+ return result.getCompileRequest();
+ }
+ public Builder setCompileRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasCompileRequest = true;
+ result.compileRequest_ = value;
+ return this;
+ }
+ public Builder setCompileRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.Builder builderForValue) {
+ result.hasCompileRequest = true;
+ result.compileRequest_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeCompileRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest value) {
+ if (result.hasCompileRequest() &&
+ result.compileRequest_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.getDefaultInstance()) {
+ result.compileRequest_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.newBuilder(result.compileRequest_).mergeFrom(value).buildPartial();
+ } else {
+ result.compileRequest_ = value;
+ }
+ result.hasCompileRequest = true;
+ return this;
+ }
+ public Builder clearCompileRequest() {
+ result.hasCompileRequest = false;
+ result.compileRequest_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.CompilationRequest.getDefaultInstance();
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Request.ShutdownCommand shutdown_command = 3;
+ public boolean hasShutdownCommand() {
+ return result.hasShutdownCommand();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand getShutdownCommand() {
+ return result.getShutdownCommand();
+ }
+ public Builder setShutdownCommand(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasShutdownCommand = true;
+ result.shutdownCommand_ = value;
+ return this;
+ }
+ public Builder setShutdownCommand(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.Builder builderForValue) {
+ result.hasShutdownCommand = true;
+ result.shutdownCommand_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeShutdownCommand(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand value) {
+ if (result.hasShutdownCommand() &&
+ result.shutdownCommand_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.getDefaultInstance()) {
+ result.shutdownCommand_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.newBuilder(result.shutdownCommand_).mergeFrom(value).buildPartial();
+ } else {
+ result.shutdownCommand_ = value;
+ }
+ result.hasShutdownCommand = true;
+ return this;
+ }
+ public Builder clearShutdownCommand() {
+ result.hasShutdownCommand = false;
+ result.shutdownCommand_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.ShutdownCommand.getDefaultInstance();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Request)
+ }
+
+ static {
+ defaultInstance = new Request(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Request)
+ }
+
+ public static final class Response extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use Response.newBuilder() to construct.
+ private Response() {
+ initFields();
+ }
+ private Response(boolean noInit) {}
+
+ private static final Response defaultInstance;
+ public static Response getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Response getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Type
+ implements com.google.protobuf.Internal.EnumLite {
+ COMMAND_RESPONSE(0, 1),
+ COMPILE_MESSAGE(1, 2),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return COMMAND_RESPONSE;
+ case 2: return COMPILE_MESSAGE;
+ 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 Type findValueByNumber(int number) {
+ return Type.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Response.Type)
+ }
+
+ public static final class CommandResponse extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use CommandResponse.newBuilder() to construct.
+ private CommandResponse() {
+ initFields();
+ }
+ private CommandResponse(boolean noInit) {}
+
+ private static final CommandResponse defaultInstance;
+ public static CommandResponse getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public CommandResponse getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Type
+ implements com.google.protobuf.Internal.EnumLite {
+ COMMAND_ACCEPTED(0, 1),
+ COMMAND_REJECTED(1, 2),
+ BUILD_COMPLETED(2, 3),
+ BUILD_CANCELED(3, 4),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return COMMAND_ACCEPTED;
+ case 2: return COMMAND_REJECTED;
+ case 3: return BUILD_COMPLETED;
+ case 4: return BUILD_CANCELED;
+ 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 Type findValueByNumber(int number) {
+ return Type.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Response.CommandResponse.Type)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Response.CommandResponse.Type command_type = 1;
+ public static final int COMMAND_TYPE_FIELD_NUMBER = 1;
+ private boolean hasCommandType;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type commandType_;
+ public boolean hasCommandType() { return hasCommandType; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type getCommandType() { return commandType_; }
+
+ // optional string description = 2;
+ public static final int DESCRIPTION_FIELD_NUMBER = 2;
+ private boolean hasDescription;
+ private java.lang.String description_ = "";
+ public boolean hasDescription() { return hasDescription; }
+ public java.lang.String getDescription() { return description_; }
+
+ private void initFields() {
+ commandType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type.COMMAND_ACCEPTED;
+ }
+ public final boolean isInitialized() {
+ if (!hasCommandType) return false;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasCommandType()) {
+ output.writeEnum(1, getCommandType().getNumber());
+ }
+ if (hasDescription()) {
+ output.writeString(2, getDescription());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasCommandType()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getCommandType().getNumber());
+ }
+ if (hasDescription()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(2, getDescription());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.getDefaultInstance()) return this;
+ if (other.hasCommandType()) {
+ setCommandType(other.getCommandType());
+ }
+ if (other.hasDescription()) {
+ setDescription(other.getDescription());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type.valueOf(rawValue);
+ if (value != null) {
+ setCommandType(value);
+ }
+ break;
+ }
+ case 18: {
+ setDescription(input.readString());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Response.CommandResponse.Type command_type = 1;
+ public boolean hasCommandType() {
+ return result.hasCommandType();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type getCommandType() {
+ return result.getCommandType();
+ }
+ public Builder setCommandType(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasCommandType = true;
+ result.commandType_ = value;
+ return this;
+ }
+ public Builder clearCommandType() {
+ result.hasCommandType = false;
+ result.commandType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Type.COMMAND_ACCEPTED;
+ return this;
+ }
+
+ // optional string description = 2;
+ public boolean hasDescription() {
+ return result.hasDescription();
+ }
+ public java.lang.String getDescription() {
+ return result.getDescription();
+ }
+ public Builder setDescription(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasDescription = true;
+ result.description_ = value;
+ return this;
+ }
+ public Builder clearDescription() {
+ result.hasDescription = false;
+ result.description_ = getDefaultInstance().getDescription();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Response.CommandResponse)
+ }
+
+ static {
+ defaultInstance = new CommandResponse(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Response.CommandResponse)
+ }
+
+ public static final class CompileMessage extends
+ com.google.protobuf.GeneratedMessageLite {
+ // Use CompileMessage.newBuilder() to construct.
+ private CompileMessage() {
+ initFields();
+ }
+ private CompileMessage(boolean noInit) {}
+
+ private static final CompileMessage defaultInstance;
+ public static CompileMessage getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public CompileMessage getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public enum Kind
+ implements com.google.protobuf.Internal.EnumLite {
+ ERROR(0, 1),
+ WARNING(1, 2),
+ INFO(2, 3),
+ PROGRESS(3, 4),
+ ;
+
+
+ public final int getNumber() { return value; }
+
+ public static Kind valueOf(int value) {
+ switch (value) {
+ case 1: return ERROR;
+ case 2: return WARNING;
+ case 3: return INFO;
+ case 4: return PROGRESS;
+ 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 Kind findValueByNumber(int number) {
+ return Kind.valueOf(number)
+ ; }
+ };
+
+ private final int index;
+ private final int value;
+ private Kind(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.Response.CompileMessage.Kind)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Response.CompileMessage.Kind kind = 1;
+ public static final int KIND_FIELD_NUMBER = 1;
+ private boolean hasKind;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind kind_;
+ public boolean hasKind() { return hasKind; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind getKind() { return kind_; }
+
+ // optional string text = 2;
+ public static final int TEXT_FIELD_NUMBER = 2;
+ private boolean hasText;
+ private java.lang.String text_ = "";
+ public boolean hasText() { return hasText; }
+ public java.lang.String getText() { return text_; }
+
+ // optional string source_file_path = 3;
+ public static final int SOURCE_FILE_PATH_FIELD_NUMBER = 3;
+ private boolean hasSourceFilePath;
+ private java.lang.String sourceFilePath_ = "";
+ public boolean hasSourceFilePath() { return hasSourceFilePath; }
+ public java.lang.String getSourceFilePath() { return sourceFilePath_; }
+
+ // optional uint32 line = 4;
+ public static final int LINE_FIELD_NUMBER = 4;
+ private boolean hasLine;
+ private int line_ = 0;
+ public boolean hasLine() { return hasLine; }
+ public int getLine() { return line_; }
+
+ // optional uint32 column = 5;
+ public static final int COLUMN_FIELD_NUMBER = 5;
+ private boolean hasColumn;
+ private int column_ = 0;
+ public boolean hasColumn() { return hasColumn; }
+ public int getColumn() { return column_; }
+
+ private void initFields() {
+ kind_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind.ERROR;
+ }
+ public final boolean isInitialized() {
+ if (!hasKind) return false;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasKind()) {
+ output.writeEnum(1, getKind().getNumber());
+ }
+ if (hasText()) {
+ output.writeString(2, getText());
+ }
+ if (hasSourceFilePath()) {
+ output.writeString(3, getSourceFilePath());
+ }
+ if (hasLine()) {
+ output.writeUInt32(4, getLine());
+ }
+ if (hasColumn()) {
+ output.writeUInt32(5, getColumn());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasKind()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getKind().getNumber());
+ }
+ if (hasText()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(2, getText());
+ }
+ if (hasSourceFilePath()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeStringSize(3, getSourceFilePath());
+ }
+ if (hasLine()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(4, getLine());
+ }
+ if (hasColumn()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(5, getColumn());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.getDefaultInstance()) return this;
+ if (other.hasKind()) {
+ setKind(other.getKind());
+ }
+ if (other.hasText()) {
+ setText(other.getText());
+ }
+ if (other.hasSourceFilePath()) {
+ setSourceFilePath(other.getSourceFilePath());
+ }
+ if (other.hasLine()) {
+ setLine(other.getLine());
+ }
+ if (other.hasColumn()) {
+ setColumn(other.getColumn());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind.valueOf(rawValue);
+ if (value != null) {
+ setKind(value);
+ }
+ break;
+ }
+ case 18: {
+ setText(input.readString());
+ break;
+ }
+ case 26: {
+ setSourceFilePath(input.readString());
+ break;
+ }
+ case 32: {
+ setLine(input.readUInt32());
+ break;
+ }
+ case 40: {
+ setColumn(input.readUInt32());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Response.CompileMessage.Kind kind = 1;
+ public boolean hasKind() {
+ return result.hasKind();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind getKind() {
+ return result.getKind();
+ }
+ public Builder setKind(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasKind = true;
+ result.kind_ = value;
+ return this;
+ }
+ public Builder clearKind() {
+ result.hasKind = false;
+ result.kind_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Kind.ERROR;
+ return this;
+ }
+
+ // optional string text = 2;
+ public boolean hasText() {
+ return result.hasText();
+ }
+ public java.lang.String getText() {
+ return result.getText();
+ }
+ public Builder setText(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasText = true;
+ result.text_ = value;
+ return this;
+ }
+ public Builder clearText() {
+ result.hasText = false;
+ result.text_ = getDefaultInstance().getText();
+ return this;
+ }
+
+ // optional string source_file_path = 3;
+ public boolean hasSourceFilePath() {
+ return result.hasSourceFilePath();
+ }
+ public java.lang.String getSourceFilePath() {
+ return result.getSourceFilePath();
+ }
+ public Builder setSourceFilePath(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasSourceFilePath = true;
+ result.sourceFilePath_ = value;
+ return this;
+ }
+ public Builder clearSourceFilePath() {
+ result.hasSourceFilePath = false;
+ result.sourceFilePath_ = getDefaultInstance().getSourceFilePath();
+ return this;
+ }
+
+ // optional uint32 line = 4;
+ public boolean hasLine() {
+ return result.hasLine();
+ }
+ public int getLine() {
+ return result.getLine();
+ }
+ public Builder setLine(int value) {
+ result.hasLine = true;
+ result.line_ = value;
+ return this;
+ }
+ public Builder clearLine() {
+ result.hasLine = false;
+ result.line_ = 0;
+ return this;
+ }
+
+ // optional uint32 column = 5;
+ public boolean hasColumn() {
+ return result.hasColumn();
+ }
+ public int getColumn() {
+ return result.getColumn();
+ }
+ public Builder setColumn(int value) {
+ result.hasColumn = true;
+ result.column_ = value;
+ return this;
+ }
+ public Builder clearColumn() {
+ result.hasColumn = false;
+ result.column_ = 0;
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Response.CompileMessage)
+ }
+
+ static {
+ defaultInstance = new CompileMessage(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Response.CompileMessage)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Response.Type response_type = 1;
+ public static final int RESPONSE_TYPE_FIELD_NUMBER = 1;
+ private boolean hasResponseType;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type responseType_;
+ public boolean hasResponseType() { return hasResponseType; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type getResponseType() { return responseType_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Response.CommandResponse command_response = 2;
+ public static final int COMMAND_RESPONSE_FIELD_NUMBER = 2;
+ private boolean hasCommandResponse;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse commandResponse_;
+ public boolean hasCommandResponse() { return hasCommandResponse; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse getCommandResponse() { return commandResponse_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Response.CompileMessage compile_message = 3;
+ public static final int COMPILE_MESSAGE_FIELD_NUMBER = 3;
+ private boolean hasCompileMessage;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage compileMessage_;
+ public boolean hasCompileMessage() { return hasCompileMessage; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage getCompileMessage() { return compileMessage_; }
+
+ private void initFields() {
+ responseType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type.COMMAND_RESPONSE;
+ commandResponse_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.getDefaultInstance();
+ compileMessage_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.getDefaultInstance();
+ }
+ public final boolean isInitialized() {
+ if (!hasResponseType) return false;
+ if (hasCommandResponse()) {
+ if (!getCommandResponse().isInitialized()) return false;
+ }
+ if (hasCompileMessage()) {
+ if (!getCompileMessage().isInitialized()) return false;
+ }
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasResponseType()) {
+ output.writeEnum(1, getResponseType().getNumber());
+ }
+ if (hasCommandResponse()) {
+ output.writeMessage(2, getCommandResponse());
+ }
+ if (hasCompileMessage()) {
+ output.writeMessage(3, getCompileMessage());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasResponseType()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, getResponseType().getNumber());
+ }
+ if (hasCommandResponse()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, getCommandResponse());
+ }
+ if (hasCompileMessage()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, getCompileMessage());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message.Response parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message.Response internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message.Response();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.getDefaultInstance()) return this;
+ if (other.hasResponseType()) {
+ setResponseType(other.getResponseType());
+ }
+ if (other.hasCommandResponse()) {
+ mergeCommandResponse(other.getCommandResponse());
+ }
+ if (other.hasCompileMessage()) {
+ mergeCompileMessage(other.getCompileMessage());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type.valueOf(rawValue);
+ if (value != null) {
+ setResponseType(value);
+ }
+ break;
+ }
+ case 18: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.newBuilder();
+ if (hasCommandResponse()) {
+ subBuilder.mergeFrom(getCommandResponse());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setCommandResponse(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.newBuilder();
+ if (hasCompileMessage()) {
+ subBuilder.mergeFrom(getCompileMessage());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setCompileMessage(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.Response.Type response_type = 1;
+ public boolean hasResponseType() {
+ return result.hasResponseType();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type getResponseType() {
+ return result.getResponseType();
+ }
+ public Builder setResponseType(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasResponseType = true;
+ result.responseType_ = value;
+ return this;
+ }
+ public Builder clearResponseType() {
+ result.hasResponseType = false;
+ result.responseType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Type.COMMAND_RESPONSE;
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Response.CommandResponse command_response = 2;
+ public boolean hasCommandResponse() {
+ return result.hasCommandResponse();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse getCommandResponse() {
+ return result.getCommandResponse();
+ }
+ public Builder setCommandResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasCommandResponse = true;
+ result.commandResponse_ = value;
+ return this;
+ }
+ public Builder setCommandResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.Builder builderForValue) {
+ result.hasCommandResponse = true;
+ result.commandResponse_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeCommandResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse value) {
+ if (result.hasCommandResponse() &&
+ result.commandResponse_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.getDefaultInstance()) {
+ result.commandResponse_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.newBuilder(result.commandResponse_).mergeFrom(value).buildPartial();
+ } else {
+ result.commandResponse_ = value;
+ }
+ result.hasCommandResponse = true;
+ return this;
+ }
+ public Builder clearCommandResponse() {
+ result.hasCommandResponse = false;
+ result.commandResponse_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CommandResponse.getDefaultInstance();
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Response.CompileMessage compile_message = 3;
+ public boolean hasCompileMessage() {
+ return result.hasCompileMessage();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage getCompileMessage() {
+ return result.getCompileMessage();
+ }
+ public Builder setCompileMessage(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasCompileMessage = true;
+ result.compileMessage_ = value;
+ return this;
+ }
+ public Builder setCompileMessage(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.Builder builderForValue) {
+ result.hasCompileMessage = true;
+ result.compileMessage_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeCompileMessage(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage value) {
+ if (result.hasCompileMessage() &&
+ result.compileMessage_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.getDefaultInstance()) {
+ result.compileMessage_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.newBuilder(result.compileMessage_).mergeFrom(value).buildPartial();
+ } else {
+ result.compileMessage_ = value;
+ }
+ result.hasCompileMessage = true;
+ return this;
+ }
+ public Builder clearCompileMessage() {
+ result.hasCompileMessage = false;
+ result.compileMessage_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.CompileMessage.getDefaultInstance();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Response)
+ }
+
+ static {
+ defaultInstance = new Response(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Response)
+ }
+
+ // required .org.jetbrains.jpsservice.Message.UUID session_id = 1;
+ public static final int SESSION_ID_FIELD_NUMBER = 1;
+ private boolean hasSessionId;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID sessionId_;
+ public boolean hasSessionId() { return hasSessionId; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID getSessionId() { return sessionId_; }
+
+ // required .org.jetbrains.jpsservice.Message.Type message_type = 2;
+ public static final int MESSAGE_TYPE_FIELD_NUMBER = 2;
+ private boolean hasMessageType;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Type messageType_;
+ public boolean hasMessageType() { return hasMessageType; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Type getMessageType() { return messageType_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Request request = 3;
+ public static final int REQUEST_FIELD_NUMBER = 3;
+ private boolean hasRequest;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Request request_;
+ public boolean hasRequest() { return hasRequest; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request getRequest() { return request_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Response response = 4;
+ public static final int RESPONSE_FIELD_NUMBER = 4;
+ private boolean hasResponse;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Response response_;
+ public boolean hasResponse() { return hasResponse; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response getResponse() { return response_; }
+
+ // optional .org.jetbrains.jpsservice.Message.Failure failure = 5;
+ public static final int FAILURE_FIELD_NUMBER = 5;
+ private boolean hasFailure;
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure failure_;
+ public boolean hasFailure() { return hasFailure; }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure getFailure() { return failure_; }
+
+ private void initFields() {
+ sessionId_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.getDefaultInstance();
+ messageType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Type.REQUEST;
+ request_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.getDefaultInstance();
+ response_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.getDefaultInstance();
+ failure_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.getDefaultInstance();
+ }
+ public final boolean isInitialized() {
+ if (!hasSessionId) return false;
+ if (!hasMessageType) return false;
+ if (!getSessionId().isInitialized()) return false;
+ if (hasRequest()) {
+ if (!getRequest().isInitialized()) return false;
+ }
+ if (hasResponse()) {
+ if (!getResponse().isInitialized()) return false;
+ }
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (hasSessionId()) {
+ output.writeMessage(1, getSessionId());
+ }
+ if (hasMessageType()) {
+ output.writeEnum(2, getMessageType().getNumber());
+ }
+ if (hasRequest()) {
+ output.writeMessage(3, getRequest());
+ }
+ if (hasResponse()) {
+ output.writeMessage(4, getResponse());
+ }
+ if (hasFailure()) {
+ output.writeMessage(5, getFailure());
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSessionId()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, getSessionId());
+ }
+ if (hasMessageType()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, getMessageType().getNumber());
+ }
+ if (hasRequest()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, getRequest());
+ }
+ if (hasResponse()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, getResponse());
+ }
+ if (hasFailure()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(5, getFailure());
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static org.jetbrains.jpsservice.JpsRemoteProto.Message parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.jpsservice.JpsRemoteProto.Message prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.jpsservice.JpsRemoteProto.Message, Builder> {
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message result;
+
+ // Construct using org.jetbrains.jpsservice.JpsRemoteProto.Message.newBuilder()
+ private Builder() {}
+
+ private static Builder create() {
+ Builder builder = new Builder();
+ builder.result = new org.jetbrains.jpsservice.JpsRemoteProto.Message();
+ return builder;
+ }
+
+ protected org.jetbrains.jpsservice.JpsRemoteProto.Message internalGetResult() {
+ return result;
+ }
+
+ public Builder clear() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "Cannot call clear() after build().");
+ }
+ result = new org.jetbrains.jpsservice.JpsRemoteProto.Message();
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(result);
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message getDefaultInstanceForType() {
+ return org.jetbrains.jpsservice.JpsRemoteProto.Message.getDefaultInstance();
+ }
+
+ public boolean isInitialized() {
+ return result.isInitialized();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message build() {
+ if (result != null && !isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return buildPartial();
+ }
+
+ private org.jetbrains.jpsservice.JpsRemoteProto.Message buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ if (!isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return buildPartial();
+ }
+
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message buildPartial() {
+ if (result == null) {
+ throw new IllegalStateException(
+ "build() has already been called on this Builder.");
+ }
+ org.jetbrains.jpsservice.JpsRemoteProto.Message returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public Builder mergeFrom(org.jetbrains.jpsservice.JpsRemoteProto.Message other) {
+ if (other == org.jetbrains.jpsservice.JpsRemoteProto.Message.getDefaultInstance()) return this;
+ if (other.hasSessionId()) {
+ mergeSessionId(other.getSessionId());
+ }
+ if (other.hasMessageType()) {
+ setMessageType(other.getMessageType());
+ }
+ if (other.hasRequest()) {
+ mergeRequest(other.getRequest());
+ }
+ if (other.hasResponse()) {
+ mergeResponse(other.getResponse());
+ }
+ if (other.hasFailure()) {
+ mergeFailure(other.getFailure());
+ }
+ return this;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!parseUnknownField(input, extensionRegistry, tag)) {
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.newBuilder();
+ if (hasSessionId()) {
+ subBuilder.mergeFrom(getSessionId());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setSessionId(subBuilder.buildPartial());
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Type value = org.jetbrains.jpsservice.JpsRemoteProto.Message.Type.valueOf(rawValue);
+ if (value != null) {
+ setMessageType(value);
+ }
+ break;
+ }
+ case 26: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.newBuilder();
+ if (hasRequest()) {
+ subBuilder.mergeFrom(getRequest());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setRequest(subBuilder.buildPartial());
+ break;
+ }
+ case 34: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.newBuilder();
+ if (hasResponse()) {
+ subBuilder.mergeFrom(getResponse());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setResponse(subBuilder.buildPartial());
+ break;
+ }
+ case 42: {
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.Builder subBuilder = org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.newBuilder();
+ if (hasFailure()) {
+ subBuilder.mergeFrom(getFailure());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setFailure(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+
+ // required .org.jetbrains.jpsservice.Message.UUID session_id = 1;
+ public boolean hasSessionId() {
+ return result.hasSessionId();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID getSessionId() {
+ return result.getSessionId();
+ }
+ public Builder setSessionId(org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasSessionId = true;
+ result.sessionId_ = value;
+ return this;
+ }
+ public Builder setSessionId(org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.Builder builderForValue) {
+ result.hasSessionId = true;
+ result.sessionId_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeSessionId(org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID value) {
+ if (result.hasSessionId() &&
+ result.sessionId_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.getDefaultInstance()) {
+ result.sessionId_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.newBuilder(result.sessionId_).mergeFrom(value).buildPartial();
+ } else {
+ result.sessionId_ = value;
+ }
+ result.hasSessionId = true;
+ return this;
+ }
+ public Builder clearSessionId() {
+ result.hasSessionId = false;
+ result.sessionId_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.UUID.getDefaultInstance();
+ return this;
+ }
+
+ // required .org.jetbrains.jpsservice.Message.Type message_type = 2;
+ public boolean hasMessageType() {
+ return result.hasMessageType();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Type getMessageType() {
+ return result.getMessageType();
+ }
+ public Builder setMessageType(org.jetbrains.jpsservice.JpsRemoteProto.Message.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasMessageType = true;
+ result.messageType_ = value;
+ return this;
+ }
+ public Builder clearMessageType() {
+ result.hasMessageType = false;
+ result.messageType_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Type.REQUEST;
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Request request = 3;
+ public boolean hasRequest() {
+ return result.hasRequest();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Request getRequest() {
+ return result.getRequest();
+ }
+ public Builder setRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasRequest = true;
+ result.request_ = value;
+ return this;
+ }
+ public Builder setRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.Builder builderForValue) {
+ result.hasRequest = true;
+ result.request_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeRequest(org.jetbrains.jpsservice.JpsRemoteProto.Message.Request value) {
+ if (result.hasRequest() &&
+ result.request_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.getDefaultInstance()) {
+ result.request_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.newBuilder(result.request_).mergeFrom(value).buildPartial();
+ } else {
+ result.request_ = value;
+ }
+ result.hasRequest = true;
+ return this;
+ }
+ public Builder clearRequest() {
+ result.hasRequest = false;
+ result.request_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Request.getDefaultInstance();
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Response response = 4;
+ public boolean hasResponse() {
+ return result.hasResponse();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Response getResponse() {
+ return result.getResponse();
+ }
+ public Builder setResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasResponse = true;
+ result.response_ = value;
+ return this;
+ }
+ public Builder setResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.Builder builderForValue) {
+ result.hasResponse = true;
+ result.response_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeResponse(org.jetbrains.jpsservice.JpsRemoteProto.Message.Response value) {
+ if (result.hasResponse() &&
+ result.response_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.getDefaultInstance()) {
+ result.response_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.newBuilder(result.response_).mergeFrom(value).buildPartial();
+ } else {
+ result.response_ = value;
+ }
+ result.hasResponse = true;
+ return this;
+ }
+ public Builder clearResponse() {
+ result.hasResponse = false;
+ result.response_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Response.getDefaultInstance();
+ return this;
+ }
+
+ // optional .org.jetbrains.jpsservice.Message.Failure failure = 5;
+ public boolean hasFailure() {
+ return result.hasFailure();
+ }
+ public org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure getFailure() {
+ return result.getFailure();
+ }
+ public Builder setFailure(org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ result.hasFailure = true;
+ result.failure_ = value;
+ return this;
+ }
+ public Builder setFailure(org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.Builder builderForValue) {
+ result.hasFailure = true;
+ result.failure_ = builderForValue.build();
+ return this;
+ }
+ public Builder mergeFailure(org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure value) {
+ if (result.hasFailure() &&
+ result.failure_ != org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.getDefaultInstance()) {
+ result.failure_ =
+ org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.newBuilder(result.failure_).mergeFrom(value).buildPartial();
+ } else {
+ result.failure_ = value;
+ }
+ result.hasFailure = true;
+ return this;
+ }
+ public Builder clearFailure() {
+ result.hasFailure = false;
+ result.failure_ = org.jetbrains.jpsservice.JpsRemoteProto.Message.Failure.getDefaultInstance();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message)
+ }
+
+ static {
+ defaultInstance = new Message(true);
+ org.jetbrains.jpsservice.JpsRemoteProto.internalForceInit();
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message)
+ }
+
+
+ static {
+ }
+
+ public static void internalForceInit() {}
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandler.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandler.java
new file mode 100644
index 000000000000..b3c46364112b
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandler.java
@@ -0,0 +1,20 @@
+package org.jetbrains.jpsservice;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/15/11
+ */
+public interface JpsServerResponseHandler {
+ void handleCompileMessage(JpsRemoteProto.Message.Response.CompileMessage compileResponse);
+
+ /**
+ *
+ * @param response
+ * @return false
+ */
+ void handleCommandResponse(JpsRemoteProto.Message.Response.CommandResponse response);
+
+ void handleFailure(JpsRemoteProto.Message.Failure failure);
+
+ void sessionTerminated();
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandlerAdapter.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandlerAdapter.java
new file mode 100644
index 000000000000..e5611023d47e
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/JpsServerResponseHandlerAdapter.java
@@ -0,0 +1,20 @@
+package org.jetbrains.jpsservice;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/15/11
+ */
+public class JpsServerResponseHandlerAdapter implements JpsServerResponseHandler {
+
+ public void handleCompileMessage(JpsRemoteProto.Message.Response.CompileMessage compileResponse) {
+ }
+
+ public void handleCommandResponse(JpsRemoteProto.Message.Response.CommandResponse response) {
+ }
+
+ public void handleFailure(JpsRemoteProto.Message.Failure failure) {
+ }
+
+ public void sessionTerminated() {
+ }
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/Server.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Server.java
new file mode 100644
index 000000000000..ebe7c0f0d074
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Server.java
@@ -0,0 +1,97 @@
+package org.jetbrains.jpsservice;
+
+import org.jboss.netty.bootstrap.ServerBootstrap;
+import org.jboss.netty.channel.*;
+import org.jboss.netty.channel.group.ChannelGroup;
+import org.jboss.netty.channel.group.ChannelGroupFuture;
+import org.jboss.netty.channel.group.DefaultChannelGroup;
+import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+import org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;
+import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender;
+import org.jetbrains.jpsservice.impl.JpsServerMessageHandler;
+
+import java.net.InetSocketAddress;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/11/11
+ */
+public class Server {
+ public static final int DEFAULT_SERVER_PORT = 7777;
+ private static final int MAX_SIMULTANEOUS_BUILD_SESSIONS = Math.max(2, Runtime.getRuntime().availableProcessors());
+
+ private final ChannelGroup myAllOpenChannels = new DefaultChannelGroup("jps-server");
+ private final ChannelFactory myChannelFactory;
+ private final ChannelPipelineFactory myPipelineFactory;
+ private final ExecutorService myBuildsExecutor;
+
+ public Server() {
+ final ExecutorService threadPool = Executors.newCachedThreadPool();
+ myBuildsExecutor = Executors.newFixedThreadPool(MAX_SIMULTANEOUS_BUILD_SESSIONS);
+ myChannelFactory = new NioServerSocketChannelFactory(threadPool, threadPool, 1);
+ final ChannelRegistrar channelRegistrar = new ChannelRegistrar();
+ final JpsServerMessageHandler messageHandler = new JpsServerMessageHandler(myBuildsExecutor, this);
+ myPipelineFactory = new ChannelPipelineFactory() {
+ public ChannelPipeline getPipeline() throws Exception {
+ return Channels.pipeline(
+ channelRegistrar,
+ new ProtobufVarint32FrameDecoder(),
+ new ProtobufDecoder(JpsRemoteProto.Message.getDefaultInstance()),
+ new ProtobufVarint32LengthFieldPrepender(),
+ new ProtobufEncoder(),
+ messageHandler
+ );
+ }
+ };
+ }
+
+ public void start(int listenPort) {
+ final ServerBootstrap bootstrap = new ServerBootstrap(myChannelFactory);
+ bootstrap.setPipelineFactory(myPipelineFactory);
+ bootstrap.setOption("child.tcpNoDelay", true);
+ bootstrap.setOption("child.keepAlive", true);
+ final Channel serverChannel = bootstrap.bind(new InetSocketAddress(listenPort));
+ myAllOpenChannels.add(serverChannel);
+ }
+
+ public void stop() {
+ try {
+ myBuildsExecutor.shutdownNow();
+ final ChannelGroupFuture closeFuture = myAllOpenChannels.close();
+ closeFuture.awaitUninterruptibly();
+ }
+ finally {
+ myChannelFactory.releaseExternalResources();
+ }
+ }
+
+ public static void main(String[] args) {
+ int port = DEFAULT_SERVER_PORT;
+ if (args.length > 0) {
+ try {
+ port = Integer.parseInt(args[0]);
+ }
+ catch (NumberFormatException e) {
+ System.out.println("Error parsing port, using default ("+port+"): " + e.getMessage());
+ }
+ }
+ final Server server = new Server();
+ server.start(port);
+ Runtime.getRuntime().addShutdownHook(new Thread("Shutdown hook thread") {
+ public void run() {
+ server.stop();
+ }
+ });
+ }
+
+ private class ChannelRegistrar extends SimpleChannelUpstreamHandler {
+ public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
+ myAllOpenChannels.add(e.getChannel());
+ super.channelOpen(ctx, e);
+ }
+ }
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsClientMessageHandler.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsClientMessageHandler.java
new file mode 100644
index 000000000000..33888e922c39
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsClientMessageHandler.java
@@ -0,0 +1,70 @@
+package org.jetbrains.jpsservice.impl;
+
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ExceptionEvent;
+import org.jboss.netty.channel.MessageEvent;
+import org.jboss.netty.channel.SimpleChannelHandler;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jpsservice.JpsRemoteProto;
+import org.jetbrains.jpsservice.JpsServerResponseHandler;
+
+import java.util.UUID;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/11/11
+ */
+public abstract class JpsClientMessageHandler extends SimpleChannelHandler{
+
+ public final void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+ final JpsRemoteProto.Message message = (JpsRemoteProto.Message)e.getMessage();
+ final UUID sessionId = ProtoUtil.fromProtoUUID(message.getSessionId());
+ final JpsRemoteProto.Message.Type messageType = message.getMessageType();
+
+ final JpsServerResponseHandler handler = getHandler(sessionId);
+ if (handler == null) {
+ return; // discard message
+ }
+
+ boolean terminateSession = false;
+
+ try {
+ if (messageType == JpsRemoteProto.Message.Type.FAILURE) {
+ terminateSession = true;
+ handler.handleFailure(message.getFailure());
+ }
+ else if (messageType == JpsRemoteProto.Message.Type.RESPONSE) {
+ final JpsRemoteProto.Message.Response response = message.getResponse();
+ final JpsRemoteProto.Message.Response.Type responseType = response.getResponseType();
+ if (responseType == JpsRemoteProto.Message.Response.Type.COMMAND_RESPONSE) {
+ final JpsRemoteProto.Message.Response.CommandResponse commandResponse = response.getCommandResponse();
+ terminateSession = commandResponse.getCommandType() != JpsRemoteProto.Message.Response.CommandResponse.Type.COMMAND_ACCEPTED;
+ handler.handleCommandResponse(commandResponse);
+ }
+ else if (responseType == JpsRemoteProto.Message.Response.Type.COMPILE_MESSAGE) {
+ handler.handleCompileMessage(response.getCompileMessage());
+ }
+ else {
+ throw new Exception("Unknown response: " + response);
+ }
+ }
+ else {
+ throw new Exception("Unknown message received: " + message);
+ }
+ }
+ finally {
+ if (terminateSession) {
+ terminateSession(sessionId);
+ }
+ }
+ }
+
+ public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
+ super.exceptionCaught(ctx, e);
+ }
+
+ @Nullable
+ protected abstract JpsServerResponseHandler getHandler(UUID sessionId);
+
+ protected abstract void terminateSession(UUID sessionId);
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java
new file mode 100644
index 000000000000..d146a94b534d
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java
@@ -0,0 +1,236 @@
+package org.jetbrains.jpsservice.impl;
+
+import org.codehaus.gant.GantBinding;
+import org.jboss.netty.channel.*;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.ether.ProjectWrapper;
+import org.jetbrains.jps.Project;
+import org.jetbrains.jps.listeners.BuildInfoPrinter;
+import org.jetbrains.jpsservice.JpsRemoteProto;
+import org.jetbrains.jpsservice.Server;
+
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/11/11
+ */
+public class JpsServerMessageHandler extends SimpleChannelHandler {
+ private ConcurrentHashMap myBuildsInProgress = new ConcurrentHashMap();
+ private final ExecutorService myBuildsExecutorService;
+ private final Server myServer;
+
+ public JpsServerMessageHandler(ExecutorService buildsExecutorService, Server server) {
+ myBuildsExecutorService = buildsExecutorService;
+ myServer = server;
+ }
+
+ public void messageReceived(final ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+ final JpsRemoteProto.Message message = (JpsRemoteProto.Message)e.getMessage();
+ final UUID sessionId = ProtoUtil.fromProtoUUID(message.getSessionId());
+
+ JpsRemoteProto.Message responseMessage = null;
+ boolean shutdown = false;
+
+ if (message.getMessageType() != JpsRemoteProto.Message.Type.REQUEST) {
+ responseMessage = ProtoUtil.toMessage(sessionId, ProtoUtil.createFailure("Cannot handle message " + message.toString()));
+ }
+ else if (!message.hasRequest()) {
+ responseMessage = ProtoUtil.toMessage(sessionId, ProtoUtil.createFailure("No request in message: " + message.toString()));
+ }
+ else {
+ final JpsRemoteProto.Message.Request request = message.getRequest();
+ final JpsRemoteProto.Message.Request.Type requestType = request.getRequestType();
+ if (requestType == JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST) {
+ final JpsRemoteProto.Message.Response response = startBuild(sessionId, ctx, request.getCompileRequest());
+ if (response != null) {
+ responseMessage = ProtoUtil.toMessage(sessionId, response);
+ }
+ }
+ else if (requestType == JpsRemoteProto.Message.Request.Type.SHUTDOWN_COMMAND){
+ shutdown = true;
+ responseMessage = ProtoUtil.toMessage(sessionId, ProtoUtil.createCommandAcceptedResponse(null));
+ }
+ else {
+ responseMessage = ProtoUtil.toMessage(sessionId, ProtoUtil.createFailure("Unknown request: " + message));
+ }
+ }
+ if (responseMessage != null) {
+ final ChannelFuture future = Channels.write(ctx.getChannel(), responseMessage);
+ if (shutdown) {
+ future.addListener(new ChannelFutureListener() {
+ public void operationComplete(ChannelFuture future) throws Exception {
+ // todo pay attention to policy
+ myBuildsExecutorService.submit(new Runnable() {
+ public void run() {
+ myServer.stop();
+ }
+ });
+ }
+ });
+ }
+ }
+ }
+
+ @Nullable
+ private JpsRemoteProto.Message.Response startBuild(UUID sessionId, final ChannelHandlerContext channelContext, JpsRemoteProto.Message.Request.CompilationRequest compileRequest) {
+ if (!compileRequest.hasProjectId()) {
+ return ProtoUtil.createCommandRejectedResponse("No project specified");
+ }
+
+ final String projectId = compileRequest.getProjectId();
+ final JpsRemoteProto.Message.Request.CompilationRequest.Type commandType = compileRequest.getCommandType();
+
+ if (commandType == JpsRemoteProto.Message.Request.CompilationRequest.Type.CLEAN ||
+ commandType == JpsRemoteProto.Message.Request.CompilationRequest.Type.MAKE ||
+ commandType == JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD) {
+ if (myBuildsInProgress.putIfAbsent(projectId, "") != null) {
+ return ProtoUtil.createCommandRejectedResponse("Project is being compiled already");
+ }
+ myBuildsExecutorService.submit(new CompilationTask(sessionId, channelContext, commandType, projectId, compileRequest.getModuleNameList()));
+ return null; // the rest will be handled asynchronously
+ }
+
+ if (commandType == JpsRemoteProto.Message.Request.CompilationRequest.Type.CANCEL) {
+ final String projectInProgress = myBuildsInProgress.remove(projectId);
+ if (projectInProgress == null) {
+ return ProtoUtil.createCommandRejectedResponse("Build for requested project is not running");
+ }
+ // todo: perform cancel
+ return ProtoUtil.createBuildCanceledResponse(projectId);
+ }
+
+ return ProtoUtil.createCommandRejectedResponse("Unsupported command: '" + commandType + "'");
+ }
+
+ public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
+ super.exceptionCaught(ctx, e);
+ }
+
+ private class CompilationTask implements Runnable {
+
+ private final UUID mySessionId;
+ private final ChannelHandlerContext myChannelContext;
+ private final JpsRemoteProto.Message.Request.CompilationRequest.Type myCompileType;
+ private final String myProjectPath;
+ private final List myModules;
+
+ public CompilationTask(UUID sessionId, ChannelHandlerContext channelContext, JpsRemoteProto.Message.Request.CompilationRequest.Type compileType, String projectId, List modules) {
+ mySessionId = sessionId;
+ myChannelContext = channelContext;
+ myCompileType = compileType;
+ myProjectPath = projectId;
+ myModules = modules;
+ }
+
+ public void run() {
+ Channels.write(myChannelContext.getChannel(), ProtoUtil.toMessage(mySessionId, ProtoUtil.createCommandAcceptedResponse("build started")));
+ Throwable error = null;
+ try {
+ final int size = myModules.size();
+
+ final Map pathVars = new HashMap(); // todo
+ pathVars.put("MAVEN_REPOSITORY", "C:/Users/jeka/.m2/repository");
+
+ final ProjectWrapper proj = ProjectWrapper.load(new GantBinding(), myProjectPath, getStartupScript(), pathVars, myCompileType == JpsRemoteProto.Message.Request.CompilationRequest.Type.MAKE);
+
+ proj.getProject().getBuilder().setBuildInfoPrinter(new BuildInfoPrinter() {
+ public Object printProgressMessage(Project project, String message) {
+ Channels.write(myChannelContext.getChannel(), ProtoUtil.toMessage(mySessionId, ProtoUtil.createCompileProgressMessageResponse(message)));
+ return null;
+ }
+
+ public Object printCompilationErrors(Project project, String compilerName, String messages) {
+ Channels.write(myChannelContext.getChannel(), ProtoUtil.toMessage(mySessionId, ProtoUtil.createCompileErrorMessageResponse(messages, null, -1, -1)));
+ return null;
+ }
+ });
+
+ switch (myCompileType) {
+ case REBUILD:
+ proj.rebuild();
+ break;
+ case MAKE:
+ proj.makeModules(null, createMakeFlags());
+ break;
+ case CLEAN:
+ proj.clean();
+ break;
+ }
+ proj.save();
+ }
+ catch (Throwable e) {
+ error = e;
+ }
+ finally {
+ final JpsRemoteProto.Message lastMessage = error != null?
+ ProtoUtil.toMessage(mySessionId, ProtoUtil.createFailure("build failed: ", error)) :
+ ProtoUtil.toMessage(mySessionId, ProtoUtil.createBuildCompletedResponse("build completed"));
+
+ Channels.write(myChannelContext.getChannel(), lastMessage).addListener(new ChannelFutureListener() {
+ public void operationComplete(ChannelFuture future) throws Exception {
+ myBuildsInProgress.remove(myProjectPath);
+ }
+ });
+ }
+ }
+
+ private String getStartupScript() {
+ return "import org.jetbrains.jps.*\n" +
+ "\n" +
+ //"project.createJavaSdk (\n" +
+ //" \"IDEA jdk\", \n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22\", \n" +
+ //" { \n" +
+ //" getDelegate ().classpath (\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/plugin.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/charsets.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/jce.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/rt.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/management-agent.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/resources.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/deploy.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/jsse.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/javaws.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/alt-rt.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/ext/sunpkcs11.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/ext/dnsns.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/ext/localedata.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/jre/lib/ext/sunjce_provider.jar\",\n" +
+ //" \"/home/db/develop/jetbrains/jdk1.6.0_22/lib/tools.jar\"\n" +
+ //" )\n" +
+ //" }\n" +
+ //")\n" +
+ //"\n" +
+ //"project.projectSdk = project.sdks [\"IDEA jdk\"]\n" +
+ "project.builder.useInProcessJavac = true";
+ }
+
+ private ProjectWrapper.Flags createMakeFlags() {
+ return new ProjectWrapper.Flags() {
+ public boolean tests() {
+ return true;
+ }
+
+ public boolean incremental() {
+ return true;
+ }
+
+ public boolean force() {
+ return false;
+ }
+
+ public PrintStream logStream() {
+ return null; // todo
+ }
+ };
+ }
+ }
+
+}
diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/ProtoUtil.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/ProtoUtil.java
new file mode 100644
index 000000000000..2abc1ad8a146
--- /dev/null
+++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/ProtoUtil.java
@@ -0,0 +1,141 @@
+package org.jetbrains.jpsservice.impl;
+
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jpsservice.JpsRemoteProto;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.UUID;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 8/15/11
+ */
+public class ProtoUtil {
+
+ public static JpsRemoteProto.Message.Failure createFailure(final String description) {
+ return createFailure(description, null);
+ }
+
+ public static JpsRemoteProto.Message.Failure createFailure(final String description, @Nullable Throwable reason) {
+ final JpsRemoteProto.Message.Failure.Builder builder = JpsRemoteProto.Message.Failure.newBuilder().setDescription(description);
+ if (reason != null) {
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ reason.printStackTrace(new PrintStream(baos));
+ builder.setStacktrace(new String(baos.toByteArray()));
+ }
+ return builder.build();
+ }
+
+ public static JpsRemoteProto.Message.Request createMakeRequest(String project, Collection modules) {
+ return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.MAKE, project, modules);
+ }
+
+ public static JpsRemoteProto.Message.Request createRebuildRequest(String project, Collection modules) {
+ return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD, project, modules);
+ }
+
+ public static JpsRemoteProto.Message.Request createCleanRequest(String project, Collection modules) {
+ return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.CLEAN, project, modules);
+ }
+
+ public static JpsRemoteProto.Message.Request createCancelRequest(String project) {
+ return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.CANCEL, project, Collections.emptyList());
+ }
+
+ public static JpsRemoteProto.Message.Request createCompileRequest(final JpsRemoteProto.Message.Request.CompilationRequest.Type command, String project, Collection modules) {
+ final JpsRemoteProto.Message.Request.CompilationRequest.Builder builder = JpsRemoteProto.Message.Request.CompilationRequest.newBuilder().setCommandType(command);
+ builder.setProjectId(project);
+ if (modules.size() > 0) {
+ builder.addAllModuleName(modules);
+ }
+ return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST).setCompileRequest(builder.build()).build();
+ }
+
+ public static JpsRemoteProto.Message.UUID toProtoUUID(UUID requestId) {
+ return JpsRemoteProto.Message.UUID.newBuilder().setMostSigBits(requestId.getMostSignificantBits()).setLeastSigBits(requestId.getLeastSignificantBits()).build();
+ }
+
+ public static UUID fromProtoUUID(JpsRemoteProto.Message.UUID uuid) {
+ return new UUID(uuid.getMostSigBits(), uuid.getLeastSigBits());
+ }
+
+ public static JpsRemoteProto.Message.Request createShutdownRequest(boolean cancelRunningBuilds) {
+ final JpsRemoteProto.Message.Request.ShutdownCommand.Builder builder = JpsRemoteProto.Message.Request.ShutdownCommand.newBuilder();
+ builder.setShutdownPolicy(
+ cancelRunningBuilds? JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy.CANCEL_RUNNING_BUILDS : JpsRemoteProto.Message.Request.ShutdownCommand.ShutdownPolicy.WAIT_RUNNING_BUILDS
+ );
+ return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.SHUTDOWN_COMMAND).setShutdownCommand(builder.build()).build();
+ }
+
+ public static JpsRemoteProto.Message.Response createCommandAcceptedResponse(@Nullable String description) {
+ return createCommandResponse(JpsRemoteProto.Message.Response.CommandResponse.Type.COMMAND_ACCEPTED, description);
+ }
+
+ public static JpsRemoteProto.Message.Response createCommandRejectedResponse(@Nullable String description) {
+ return createCommandResponse(JpsRemoteProto.Message.Response.CommandResponse.Type.COMMAND_REJECTED, description);
+ }
+
+ public static JpsRemoteProto.Message.Response createBuildCompletedResponse(@Nullable String description) {
+ return createCommandResponse(JpsRemoteProto.Message.Response.CommandResponse.Type.BUILD_COMPLETED, description);
+ }
+
+ public static JpsRemoteProto.Message.Response createBuildCanceledResponse(@Nullable String description) {
+ return createCommandResponse(JpsRemoteProto.Message.Response.CommandResponse.Type.BUILD_CANCELED, description);
+ }
+
+ public static JpsRemoteProto.Message.Response createCommandResponse(final JpsRemoteProto.Message.Response.CommandResponse.Type type, @Nullable String description) {
+ final JpsRemoteProto.Message.Response.CommandResponse.Builder builder = JpsRemoteProto.Message.Response.CommandResponse.newBuilder().setCommandType(type);
+ if (description != null) {
+ builder.setDescription(description);
+ }
+ return JpsRemoteProto.Message.Response.newBuilder().setResponseType(JpsRemoteProto.Message.Response.Type.COMMAND_RESPONSE).setCommandResponse(builder.build()).build();
+ }
+
+ public static JpsRemoteProto.Message.Response createCompileInfoMessageResponse(String text, String path) {
+ return createCompileMessageResponse(JpsRemoteProto.Message.Response.CompileMessage.Kind.INFO, text, path, -1, -1);
+ }
+
+ public static JpsRemoteProto.Message.Response createCompileProgressMessageResponse(String text) {
+ return createCompileMessageResponse(JpsRemoteProto.Message.Response.CompileMessage.Kind.PROGRESS, text, null, -1, -1);
+ }
+
+ public static JpsRemoteProto.Message.Response createCompileWarningMessageResponse(String text, String path, int line, int column) {
+ return createCompileMessageResponse(JpsRemoteProto.Message.Response.CompileMessage.Kind.WARNING, text, path, line, column);
+ }
+
+ public static JpsRemoteProto.Message.Response createCompileErrorMessageResponse(String text, String path, int line, int column) {
+ return createCompileMessageResponse(JpsRemoteProto.Message.Response.CompileMessage.Kind.ERROR, text, path, line, column);
+ }
+
+ public static JpsRemoteProto.Message.Response createCompileMessageResponse(final JpsRemoteProto.Message.Response.CompileMessage.Kind msgKind, String text, String path, int line, int column) {
+ final JpsRemoteProto.Message.Response.CompileMessage.Builder builder = JpsRemoteProto.Message.Response.CompileMessage.newBuilder().setKind(msgKind);
+ if (text != null) {
+ builder.setText(text);
+ }
+ if (path != null) {
+ builder.setSourceFilePath(path);
+ }
+ if (line >=0) {
+ builder.setLine(line);
+ }
+ if (column >=0) {
+ builder.setColumn(column);
+ }
+ return JpsRemoteProto.Message.Response.newBuilder().setResponseType(JpsRemoteProto.Message.Response.Type.COMPILE_MESSAGE).setCompileMessage(builder.build()).build();
+ }
+
+ public static JpsRemoteProto.Message toMessage(final UUID sessionId, JpsRemoteProto.Message.Response response) {
+ return JpsRemoteProto.Message.newBuilder().setSessionId(toProtoUUID(sessionId)).setMessageType(JpsRemoteProto.Message.Type.RESPONSE).setResponse(response).build();
+ }
+
+ public static JpsRemoteProto.Message toMessage(final UUID sessionId, JpsRemoteProto.Message.Request request) {
+ return JpsRemoteProto.Message.newBuilder().setSessionId(toProtoUUID(sessionId)).setMessageType(JpsRemoteProto.Message.Type.REQUEST).setRequest(request).build();
+ }
+
+ public static JpsRemoteProto.Message toMessage(final UUID sessionId, JpsRemoteProto.Message.Failure failure) {
+ return JpsRemoteProto.Message.newBuilder().setSessionId(toProtoUUID(sessionId)).setMessageType(JpsRemoteProto.Message.Type.FAILURE).setFailure(failure).build();
+ }
+}
diff --git a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java
new file mode 100644
index 000000000000..44070e32fd4d
--- /dev/null
+++ b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2000-2011 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.compiler;
+
+import com.intellij.execution.ExecutionException;
+import com.intellij.execution.configurations.GeneralCommandLine;
+import com.intellij.execution.process.OSProcessHandler;
+import com.intellij.execution.process.ProcessHandler;
+import com.intellij.openapi.application.PathManager;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.projectRoots.JavaSdkType;
+import com.intellij.openapi.projectRoots.Sdk;
+import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
+import com.intellij.openapi.util.ShutDownTracker;
+import org.jetbrains.jps.Jps;
+import org.jetbrains.jpsservice.Client;
+import org.jetbrains.jpsservice.Server;
+
+import java.io.File;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Eugene Zhuravlev
+ * Date: 9/6/11
+ */
+public class JpsServerManager {
+ private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.JpsServerManager");
+
+ public static void main(String[] args) {
+ ensureServerStarted();
+ }
+
+ private static boolean ensureServerStarted() {
+ return Holder.ourServerProcess != null;
+ }
+
+ private static class Holder {
+ private static Client ourServerClient;
+ private static ProcessHandler ourServerProcess;
+
+ static {
+ try {
+ final int port = Server.DEFAULT_SERVER_PORT;
+ final Process process = launchServer(port);
+ final OSProcessHandler processHandler = new OSProcessHandler(process, null);
+ processHandler.startNotify();
+ final Client client = new Client();
+ client.connect("localhost", port);
+
+ ourServerProcess = processHandler;
+ ourServerClient = client;
+
+ ShutDownTracker.getInstance().registerShutdownTask(new Runnable() {
+ @Override
+ public void run() {
+ shutdownServer(client, processHandler);
+ }
+ });
+ }
+ catch (Throwable e) {
+ LOG.error(e); // todo
+ }
+ }
+ }
+
+ private static void shutdownServer(Client client, OSProcessHandler processHandler) {
+ try {
+ final Future future = client.sendShutdownRequest();
+ if (future != null) {
+ future.get(500, TimeUnit.MILLISECONDS);
+ }
+ }
+ catch (Throwable ignored) {
+ LOG.info(ignored);
+ }
+ finally {
+ processHandler.destroyProcess();
+ }
+ }
+
+ private static Process launchServer(int port) throws ExecutionException {
+ final Sdk projectJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();
+ final GeneralCommandLine cmdLine = new GeneralCommandLine();
+ cmdLine.setExePath(((JavaSdkType)projectJdk.getSdkType()).getVMExecutablePath(projectJdk));
+
+ final StringBuilder cp = new StringBuilder();
+ cp.append(getResourcePath(Server.class));
+ cp.append(File.pathSeparator).append(getResourcePath(com.google.protobuf.Message.class));
+ cp.append(File.pathSeparator).append(getResourcePath(org.jboss.netty.bootstrap.Bootstrap.class));
+ final String jpsJar = getResourcePath(Jps.class);
+ final File parentFile = new File(jpsJar).getParentFile();
+ final File[] files = parentFile.listFiles();
+ if (files != null) {
+ for (File file : files) {
+ final String name = file.getName();
+ final boolean shouldAdd =
+ name.endsWith("jar") &&
+ (name.startsWith("ant") ||
+ name.startsWith("jps") ||
+ name.startsWith("asm") ||
+ name.startsWith("gant")||
+ name.startsWith("groovy") ||
+ name.startsWith("javac2")
+ );
+ if (shouldAdd) {
+ cp.append(File.pathSeparator).append(file.getPath());
+ }
+ }
+ }
+ cmdLine.addParameter("-classpath");
+ cmdLine.addParameter(cp.toString());
+
+ cmdLine.addParameter("org.jetbrains.jpsservice.Server");
+ cmdLine.addParameter(Integer.toString(port));
+ return cmdLine.createProcess();
+ }
+
+ private static String getResourcePath(Class aClass) {
+ return PathManager.getResourceRoot(aClass, "/" + aClass.getName().replace('.', '/') + ".class");
+ }
+
+}
diff --git a/lib/netty-3.2.5.Final.jar b/lib/netty-3.2.5.Final.jar
new file mode 100644
index 000000000000..f3b79fcbaa75
Binary files /dev/null and b/lib/netty-3.2.5.Final.jar differ
diff --git a/lib/required_for_dist.txt b/lib/required_for_dist.txt
index 106bcb33b8f5..9a38684039ed 100644
--- a/lib/required_for_dist.txt
+++ b/lib/required_for_dist.txt
@@ -42,3 +42,4 @@ xmlrpc-2.0.jar
xpp3-1.1.4-min.jar
xstream.jar
swingx-core-1.6.2.jar
+netty-3.2.5.Final.jar
diff --git a/lib/src/netty-3.2.5.Final-sources.jar b/lib/src/netty-3.2.5.Final-sources.jar
new file mode 100644
index 000000000000..cb6cb9bf537e
Binary files /dev/null and b/lib/src/netty-3.2.5.Final-sources.jar differ