diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java index 005e351f25b8..cafe12703c30 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java @@ -31,18 +31,18 @@ import com.intellij.openapi.application.PathManager; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileTypeManager; -import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.project.ProjectManagerAdapter; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl; -import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.ModuleRootEvent; +import com.intellij.openapi.roots.ModuleRootListener; +import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.registry.Registry; @@ -69,8 +69,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.api.*; import org.jetbrains.jps.cmdline.BuildMain; -import org.jetbrains.jps.incremental.fs.FSState; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.server.ClasspathBootstrap; import org.jetbrains.jps.server.Server; @@ -100,6 +98,7 @@ public class BuildManager implements ApplicationComponent{ private final ProjectManager myProjectManager; private final Map myAutomakeFutures = new HashMap(); + private final Map myBuildsInProgress = Collections.synchronizedMap(new HashMap()); private final CompileServerClasspathManager myClasspathManager = new CompileServerClasspathManager(); private final Executor myPooledThreadExecutor = new Executor() { @Override @@ -107,6 +106,8 @@ public class BuildManager implements ApplicationComponent{ ApplicationManager.getApplication().executeOnPooledThread(command); } }; + private final SequentialTaskExecutor myEventsProcessor = new SequentialTaskExecutor(myPooledThreadExecutor); + private final Map myProjectDataMap = Collections.synchronizedMap(new HashMap()); private final ChannelGroup myAllOpenChannels = new DefaultChannelGroup("build-manager"); @@ -198,80 +199,39 @@ public class BuildManager implements ApplicationComponent{ } public void notifyFilesChanged(final Collection paths) { - // todo: temporarily commented - //doNotify(paths, false); + doNotify(paths, false); } public void notifyFilesDeleted(Collection paths) { - // todo: temporarily commented - //doNotify(paths, true); + doNotify(paths, true); } private void doNotify(final Collection paths, final boolean notifyDeletion) { - final Project[] openProjects = myProjectManager.getOpenProjects(); - myPooledThreadExecutor.execute(new Runnable() { + // ensure events processed in the order they arrived + myEventsProcessor.submit(new Runnable() { @Override public void run() { - List> activeProjects = new ArrayList>(); - for (Project project : openProjects) { - if (project.isDisposed() || project.isDefault()) { - continue; - } - final String projectPath = getProjectPath(project); - final ProjectData data = myProjectDataMap.get(projectPath); - if (data != null) { - activeProjects.add(Pair.create(ProjectRootManager.getInstance(project).getFileIndex(), data)); - } - } - final LocalFileSystem lfs = LocalFileSystem.getInstance(); - for (final Pair pair : activeProjects) { - final ProjectFileIndex fileIndex = pair.first; - final FSState fsState = pair.second.fsState; - pair.second.requestQueue.submit(new Runnable() { - @Override - public void run() { - ApplicationManager.getApplication().runReadAction(new Runnable() { - @Override - public void run() { - for (String filePath : paths) { - // todo: estimate performance, probably add a way to obtain all data from file index in a single call - final VirtualFile vFile = lfs.findFileByPath(filePath); - if (vFile == null) { - continue; - } - final Module module = fileIndex.getModuleForFile(vFile); - if (module == null) { - continue; - } - final String moduleName = module.getName(); - if (!fsState.isInitialized(moduleName)) { // todo: proper sync! - continue; - } - final VirtualFile srcRoot = fileIndex.getSourceRootForFile(vFile); - if (srcRoot == null) { - return; - } - final boolean inTestSources = fileIndex.isInTestSourceContent(vFile); - if (!inTestSources && !fileIndex.isInSourceContent(vFile)) { - continue; - } - try { - final File file = new File(vFile.getPath()); - if (notifyDeletion) { - fsState.registerDeleted(moduleName, file, inTestSources, null); - } - else { - fsState.markDirty(file, new RootDescriptor(moduleName, new File(srcRoot.getPath()), inTestSources, false), null); - } - } - catch (IOException e) { - LOG.error(e); - } - } - } - }); + synchronized (myProjectDataMap) { + for (Map.Entry entry : myProjectDataMap.entrySet()) { + final ProjectData data = entry.getValue(); + if (notifyDeletion) { + data.addDeleted(paths); } - }); + else { + data.addChanged(paths); + } + final RequestFuture future = myBuildsInProgress.get(entry.getKey()); + if (future != null && !future.isCancelled() && !future.isDone()) { + final UUID sessionId = future.getRequestID(); + final Channel channel = myMessageDispatcher.getConnectedChannel(sessionId); + if (channel != null) { + final CmdlineRemoteProto.Message.ControllerMessage message = + CmdlineRemoteProto.Message.ControllerMessage.newBuilder().setType( + CmdlineRemoteProto.Message.ControllerMessage.Type.FS_EVENT).setFsEvent(data.createNextEvent()).build(); + Channels.write(channel, CmdlineProtoUtil.toMessage(sessionId, message)); + } + } + } } } }); @@ -346,8 +306,6 @@ public class BuildManager implements ApplicationComponent{ } } - // todo: avoid FS scan on every start - @Nullable public RequestFuture scheduleBuild( final Project project, final boolean isRebuild, @@ -366,26 +324,32 @@ public class BuildManager implements ApplicationComponent{ myGlobals = globals; } - final SequentialTaskExecutor sequential; - final FSState fsState; + CmdlineRemoteProto.Message.ControllerMessage.FSEvent currentFSChanges = null; + final SequentialTaskExecutor projectTaskQueue; synchronized (myProjectDataMap) { ProjectData data = myProjectDataMap.get(projectPath); if (data == null) { - data = new ProjectData(new SequentialTaskExecutor(myPooledThreadExecutor), new FSState()); + data = new ProjectData(new SequentialTaskExecutor(myPooledThreadExecutor)); myProjectDataMap.put(projectPath, data); } - sequential = data.requestQueue; - fsState = data.fsState; - handler = new FSStateMessageHandler(data.fsState, handler); + else { + if (!isRebuild) { + currentFSChanges = data.createNextEvent(); + } + else { + data.clearFSChanges(); + } + } + projectTaskQueue = data.taskQueue; } if (isRebuild) { - params = CmdlineProtoUtil.createRebuildRequest(projectPath, userData, globals, fsState); + params = CmdlineProtoUtil.createRebuildRequest(projectPath, userData, globals); } else { params = isMake ? - CmdlineProtoUtil.createMakeRequest(projectPath, modules, artifacts, userData, globals, fsState) : - CmdlineProtoUtil.createForceCompileRequest(projectPath, modules, artifacts, paths, userData, globals, fsState); + CmdlineProtoUtil.createMakeRequest(projectPath, modules, artifacts, userData, globals, currentFSChanges) : + CmdlineProtoUtil.createForceCompileRequest(projectPath, modules, artifacts, paths, userData, globals, currentFSChanges); } myMessageDispatcher.registerBuildMessageHandler(sessionId, handler, params); @@ -410,7 +374,7 @@ public class BuildManager implements ApplicationComponent{ } }); - sequential.submit(new Runnable() { + projectTaskQueue.submit(new Runnable() { @Override public void run() { try { @@ -418,6 +382,7 @@ public class BuildManager implements ApplicationComponent{ future.cancel(false); return; } + myBuildsInProgress.put(projectPath, future); final Process process = launchBuildProcess(myListenPort, sessionId); final OSProcessHandler processHandler = new OSProcessHandler(process, null) { @Override @@ -452,6 +417,7 @@ public class BuildManager implements ApplicationComponent{ future.getMessageHandler().sessionTerminated(); } finally { + myBuildsInProgress.remove(projectPath); future.setDone(); } } @@ -794,12 +760,40 @@ public class BuildManager implements ApplicationComponent{ } private static class ProjectData { - final SequentialTaskExecutor requestQueue; - final FSState fsState; + final SequentialTaskExecutor taskQueue; + private final Set myChanged = new HashSet(); + private final Set myDeleted = new HashSet(); + private long myNextEventOrdinal = 0L; - private ProjectData(SequentialTaskExecutor requestQueue, FSState fsState) { - this.requestQueue = requestQueue; - this.fsState = fsState; + private ProjectData(SequentialTaskExecutor taskQueue) { + this.taskQueue = taskQueue; + } + + public void addChanged(Collection paths) { + myDeleted.removeAll(paths); + myChanged.addAll(paths); + } + + public void addDeleted(Collection paths) { + myChanged.removeAll(paths); + myDeleted.addAll(paths); + } + + public CmdlineRemoteProto.Message.ControllerMessage.FSEvent createNextEvent() { + final CmdlineRemoteProto.Message.ControllerMessage.FSEvent.Builder builder = + CmdlineRemoteProto.Message.ControllerMessage.FSEvent.newBuilder(); + builder.setOrdinal(++myNextEventOrdinal); + builder.addAllChangedPaths(myChanged); + myChanged.clear(); + builder.addAllDeletedPaths(myDeleted); + myDeleted.clear(); + return builder.build(); + } + + public void clearFSChanges() { + myNextEventOrdinal = 0L; + myChanged.clear(); + myDeleted.clear(); } } diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java index 8066aaf1fe88..789948adbf75 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java @@ -52,16 +52,26 @@ class BuildMessageDispatcher extends SimpleChannelHandler { public void cancelSession(UUID sessionId) { if (myCanceledSessions.add(sessionId)) { - final SessionData data = myMessageHandlers.get(sessionId); - if (data != null) { - final Channel channel = data.channel; - if (channel != null) { - Channels.write(channel, CmdlineProtoUtil.toMessage(sessionId, CmdlineProtoUtil.createCancelCommand())); - } + final Channel channel = getConnectedChannel(sessionId); + if (channel != null) { + Channels.write(channel, CmdlineProtoUtil.toMessage(sessionId, CmdlineProtoUtil.createCancelCommand())); } } } + @Nullable + public Channel getConnectedChannel(final UUID sessionId) { + final SessionData data = myMessageHandlers.get(sessionId); + if (data != null) { + final Channel channel = data.channel; + if (channel != null && channel.isConnected()) { + return channel; + } + } + return null; + } + + @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { final CmdlineRemoteProto.Message message = (CmdlineRemoteProto.Message)e.getMessage(); diff --git a/java/compiler/impl/src/com/intellij/compiler/server/DefaultMessageHandler.java b/java/compiler/impl/src/com/intellij/compiler/server/DefaultMessageHandler.java index 580035e55fc2..17b7774acde5 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/DefaultMessageHandler.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/DefaultMessageHandler.java @@ -31,15 +31,9 @@ public abstract class DefaultMessageHandler implements BuilderMessageHandler { case COMPILE_MESSAGE: handleCompileMessage(msg.getCompileMessage()); break; - case FS_STATE: - handleFSStateMessage(msg.getFsstateMessage()); - break; } } - protected void handleFSStateMessage(CmdlineRemoteProto.Message.FSStateMessage message) { - } - protected abstract void handleCompileMessage(CmdlineRemoteProto.Message.BuilderMessage.CompileMessage message); protected abstract void handleBuildEvent(CmdlineRemoteProto.Message.BuilderMessage.BuildEvent event); diff --git a/java/compiler/impl/src/com/intellij/compiler/server/FSStateMessageHandler.java b/java/compiler/impl/src/com/intellij/compiler/server/FSStateMessageHandler.java deleted file mode 100644 index f2a3732aff7c..000000000000 --- a/java/compiler/impl/src/com/intellij/compiler/server/FSStateMessageHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2000-2012 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.server; - -import org.jetbrains.jps.api.CmdlineRemoteProto; -import org.jetbrains.jps.incremental.fs.FSState; - -import java.io.File; -import java.util.*; - -/** - * @author Eugene Zhuravlev - * Date: 4/18/12 - */ -public class FSStateMessageHandler extends DefaultMessageHandler { - private final FSState myFsState; - private final DefaultMessageHandler myDelegate; - - protected FSStateMessageHandler(FSState fsState, DefaultMessageHandler delegate) { - myFsState = fsState; - myDelegate = delegate; - } - - @Override - public void handleFailure(CmdlineRemoteProto.Message.Failure failure) { - myDelegate.handleFailure(failure); - } - - @Override - public void sessionTerminated() { - myDelegate.sessionTerminated(); - } - - protected void handleFSStateMessage(CmdlineRemoteProto.Message.FSStateMessage message) { - try { - myDelegate.handleFSStateMessage(message); - } - finally { - final String moduleName = message.getModuleName(); - final List deleteProduction = message.getDeletedProductionList(); - final List deletedTests = message.getDeletedTestsList(); - - final Map> recompileProduction = new HashMap>(); - final Map> recompileTests = new HashMap>(); - for (CmdlineRemoteProto.Message.FSStateMessage.RootDelta delta : message.getRecompileDeltaList()) { - final File root = new File(delta.getRoot()); - final Map> map = delta.getTestSources()? recompileTests : recompileProduction; - Set files = map.get(root); - if (files == null) { - files = new HashSet(); - map.put(root, files); - } - for (String path : delta.getPathList()) { - files.add(new File(path)); - } - } - - myFsState.init(moduleName, deleteProduction, deletedTests, recompileProduction, recompileTests); - } - } - - protected void handleCompileMessage(CmdlineRemoteProto.Message.BuilderMessage.CompileMessage message) { - myDelegate.handleCompileMessage(message); - } - - protected void handleBuildEvent(CmdlineRemoteProto.Message.BuilderMessage.BuildEvent event) { - myDelegate.handleBuildEvent(event); - } - -} diff --git a/jps/jps-builders/proto/cmdline_remote_proto.proto b/jps/jps-builders/proto/cmdline_remote_proto.proto index f4ef83d0d996..29d3e66a6c8b 100644 --- a/jps/jps-builders/proto/cmdline_remote_proto.proto +++ b/jps/jps-builders/proto/cmdline_remote_proto.proto @@ -15,19 +15,6 @@ message Message { required string value = 2; } - message FSStateMessage { - message RootDelta { - required bool test_sources = 1; - required string root = 2; - repeated string path = 3; - } - - required string module_name = 1; - repeated RootDelta recompile_delta = 2; - repeated string deleted_production = 3; - repeated string deleted_tests = 4; - } - enum Type { CONTROLLER_MESSAGE = 1; BUILDER_MESSAGE = 2; @@ -44,6 +31,13 @@ message Message { enum Type { BUILD_PARAMETERS = 1; CANCEL_BUILD_COMMAND = 2; + FS_EVENT = 3; + } + + message FSEvent { + required uint64 ordinal = 1; + repeated string changed_paths = 2; + repeated string deleted_paths = 3; } message GlobalSettings { @@ -78,11 +72,11 @@ message Message { repeated string file_path = 5; repeated string artifact_name = 6; repeated KeyValuePair builder_parameter = 7; - repeated FSStateMessage fs_state = 8; } required Type type = 1; optional ParametersMessage params_message = 2; + optional FSEvent fs_event = 3; } message BuilderMessage { @@ -90,8 +84,6 @@ message Message { PARAM_REQUEST = 1; BUILD_EVENT = 2; COMPILE_MESSAGE = 3; - FS_STATE = 4; - FS_EVENT = 5; } message BuildEvent { @@ -139,7 +131,6 @@ message Message { required Type type = 1; optional BuildEvent build_event = 2; optional CompileMessage compile_message = 3; - optional FSStateMessage fsstate_message = 4; } required UUID session_id = 1; diff --git a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java index 9384ef95402e..5aaa20d33bb1 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java +++ b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java @@ -1,15 +1,15 @@ package org.jetbrains.jps.api; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.incremental.fs.FSState; import org.jetbrains.jps.incremental.messages.BuildMessage; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.PrintStream; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.UUID; /** * @author Eugene Zhuravlev @@ -17,21 +17,15 @@ import java.util.*; */ public class CmdlineProtoUtil { - public static CmdlineRemoteProto.Message.BuilderMessage createFSStateBuilderMessage(String moduleName, FSState fsState) { - final CmdlineRemoteProto.Message.FSStateMessage fsStateMessage = createFSStateMessage(moduleName, fsState); - return CmdlineRemoteProto.Message.BuilderMessage.newBuilder().setType(CmdlineRemoteProto.Message.BuilderMessage.Type.FS_STATE).setFsstateMessage( - fsStateMessage).build(); - } - public static CmdlineRemoteProto.Message.ControllerMessage createMakeRequest(String project, Collection modules, Collection artifacts, final Map userData, final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals, - final FSState fsState) { + final CmdlineRemoteProto.Message.ControllerMessage.FSEvent event) { return createBuildParametersMessage(CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.MAKE, project, modules, artifacts, userData, Collections.emptyList(), - globals, fsState); + globals, event); } public static CmdlineRemoteProto.Message.ControllerMessage createForceCompileRequest(String project, @@ -40,31 +34,29 @@ public class CmdlineProtoUtil { Collection paths, final Map userData, final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals, - final FSState fsState) { + final CmdlineRemoteProto.Message.ControllerMessage.FSEvent event) { return createBuildParametersMessage(CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.FORCED_COMPILATION, project, modules, artifacts, - userData, paths, globals, fsState); + userData, paths, globals, event); } public static CmdlineRemoteProto.Message.ControllerMessage createRebuildRequest(String project, final Map userData, - final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals, - final FSState fsState) { + final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals) { return createBuildParametersMessage(CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.REBUILD, project, Collections.emptyList(), Collections.emptyList(), userData, Collections.emptyList(), - globals, fsState); + globals, null); } public static CmdlineRemoteProto.Message.ControllerMessage createCleanRequest(String project, Collection modules, Collection artifacts, final Map userData, - final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals, - final FSState fsState) { + final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals) { return createBuildParametersMessage( - CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.CLEAN, project, modules, artifacts, userData, Collections.emptyList(), globals, fsState - ); + CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.CLEAN, project, modules, artifacts, userData, Collections.emptyList(), globals, + null); } public static CmdlineRemoteProto.Message.ControllerMessage createBuildParametersMessage(CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type buildType, @@ -74,7 +66,7 @@ public class CmdlineProtoUtil { Map userData, Collection paths, final CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings globals, - FSState fsState) { + CmdlineRemoteProto.Message.ControllerMessage.FSEvent initialEvent) { final CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Builder builder = CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.newBuilder(); builder.setGlobalSettings(globals); @@ -98,12 +90,12 @@ public class CmdlineProtoUtil { if (!paths.isEmpty()) { builder.addAllFilePath(paths); } - - for (String moduleName : fsState.getInitializedModules()) { - builder.addFsState(createFSStateMessage(moduleName, fsState)); + final CmdlineRemoteProto.Message.ControllerMessage.Builder controlMessageBuilder = + CmdlineRemoteProto.Message.ControllerMessage.newBuilder(); + if (initialEvent != null) { + controlMessageBuilder.setFsEvent(initialEvent); } - - return CmdlineRemoteProto.Message.ControllerMessage.newBuilder().setType(CmdlineRemoteProto.Message.ControllerMessage.Type.BUILD_PARAMETERS).setParamsMessage(builder.build()).build(); + return controlMessageBuilder.setType(CmdlineRemoteProto.Message.ControllerMessage.Type.BUILD_PARAMETERS).setParamsMessage(builder.build()).build(); } public static CmdlineRemoteProto.Message.KeyValuePair createPair(String key, String value) { @@ -226,26 +218,4 @@ public class CmdlineProtoUtil { return uuidBuilder.setMostSigBits(sessionId.getMostSignificantBits()).setLeastSigBits(sessionId.getLeastSignificantBits()).build(); } - private static CmdlineRemoteProto.Message.FSStateMessage createFSStateMessage(String moduleName, FSState fsState) { - final CmdlineRemoteProto.Message.FSStateMessage.Builder stateBuilder = CmdlineRemoteProto.Message.FSStateMessage.newBuilder(); - stateBuilder.setModuleName(moduleName); - stateBuilder.addAllDeletedProduction(fsState.getDeletedPaths(moduleName, false)); - stateBuilder.addAllDeletedTests(fsState.getDeletedPaths(moduleName, true)); - fillRecompilePaths(moduleName, fsState, false, stateBuilder); - fillRecompilePaths(moduleName, fsState, true, stateBuilder); - return stateBuilder.build(); - } - - private static void fillRecompilePaths(String moduleName, FSState fsState, final boolean forTests, CmdlineRemoteProto.Message.FSStateMessage.Builder stateBuilder) { - for (Map.Entry> entry : fsState.getSourcesToRecompile(moduleName, forTests).entrySet()) { - final CmdlineRemoteProto.Message.FSStateMessage.RootDelta.Builder deltaBuilder = CmdlineRemoteProto.Message.FSStateMessage.RootDelta.newBuilder(); - deltaBuilder.setTestSources(forTests); - deltaBuilder.setRoot(FileUtil.toSystemIndependentName(entry.getKey().getPath())); - for (File file : entry.getValue()) { - deltaBuilder.addPath(FileUtil.toSystemIndependentName(file.getPath())); - } - stateBuilder.addRecompileDelta(deltaBuilder.build()); - } - } - } diff --git a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java index 0eb34d48f799..4c727199a518 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java +++ b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java @@ -879,1219 +879,6 @@ public final class CmdlineRemoteProto { // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.KeyValuePair) } - public interface FSStateMessageOrBuilder - extends com.google.protobuf.MessageLiteOrBuilder { - - // required string module_name = 1; - boolean hasModuleName(); - String getModuleName(); - - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage.RootDelta recompile_delta = 2; - java.util.List - getRecompileDeltaList(); - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta getRecompileDelta(int index); - int getRecompileDeltaCount(); - - // repeated string deleted_production = 3; - java.util.List getDeletedProductionList(); - int getDeletedProductionCount(); - String getDeletedProduction(int index); - - // repeated string deleted_tests = 4; - java.util.List getDeletedTestsList(); - int getDeletedTestsCount(); - String getDeletedTests(int index); - } - public static final class FSStateMessage extends - com.google.protobuf.GeneratedMessageLite - implements FSStateMessageOrBuilder { - // Use FSStateMessage.newBuilder() to construct. - private FSStateMessage(Builder builder) { - super(builder); - } - private FSStateMessage(boolean noInit) {} - - private static final FSStateMessage defaultInstance; - public static FSStateMessage getDefaultInstance() { - return defaultInstance; - } - - public FSStateMessage getDefaultInstanceForType() { - return defaultInstance; - } - - public interface RootDeltaOrBuilder - extends com.google.protobuf.MessageLiteOrBuilder { - - // required bool test_sources = 1; - boolean hasTestSources(); - boolean getTestSources(); - - // required string root = 2; - boolean hasRoot(); - String getRoot(); - - // repeated string path = 3; - java.util.List getPathList(); - int getPathCount(); - String getPath(int index); - } - public static final class RootDelta extends - com.google.protobuf.GeneratedMessageLite - implements RootDeltaOrBuilder { - // Use RootDelta.newBuilder() to construct. - private RootDelta(Builder builder) { - super(builder); - } - private RootDelta(boolean noInit) {} - - private static final RootDelta defaultInstance; - public static RootDelta getDefaultInstance() { - return defaultInstance; - } - - public RootDelta getDefaultInstanceForType() { - return defaultInstance; - } - - private int bitField0_; - // required bool test_sources = 1; - public static final int TEST_SOURCES_FIELD_NUMBER = 1; - private boolean testSources_; - public boolean hasTestSources() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - public boolean getTestSources() { - return testSources_; - } - - // required string root = 2; - public static final int ROOT_FIELD_NUMBER = 2; - private java.lang.Object root_; - public boolean hasRoot() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - public String getRoot() { - java.lang.Object ref = root_; - if (ref instanceof String) { - return (String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - if (com.google.protobuf.Internal.isValidUtf8(bs)) { - root_ = s; - } - return s; - } - } - private com.google.protobuf.ByteString getRootBytes() { - java.lang.Object ref = root_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((String) ref); - root_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated string path = 3; - public static final int PATH_FIELD_NUMBER = 3; - private com.google.protobuf.LazyStringList path_; - public java.util.List - getPathList() { - return path_; - } - public int getPathCount() { - return path_.size(); - } - public String getPath(int index) { - return path_.get(index); - } - - private void initFields() { - testSources_ = false; - root_ = ""; - path_ = com.google.protobuf.LazyStringArrayList.EMPTY; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - if (!hasTestSources()) { - memoizedIsInitialized = 0; - return false; - } - if (!hasRoot()) { - memoizedIsInitialized = 0; - return false; - } - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBool(1, testSources_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getRootBytes()); - } - for (int i = 0; i < path_.size(); i++) { - output.writeBytes(3, path_.getByteString(i)); - } - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, testSources_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getRootBytes()); - } - { - int dataSize = 0; - for (int i = 0; i < path_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(path_.getByteString(i)); - } - size += dataSize; - size += 1 * getPathList().size(); - } - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom(java.io.InputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - public static final class Builder extends - com.google.protobuf.GeneratedMessageLite.Builder< - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta, Builder> - implements org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDeltaOrBuilder { - // Construct using org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - testSources_ = false; - bitField0_ = (bitField0_ & ~0x00000001); - root_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - path_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta getDefaultInstanceForType() { - return org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.getDefaultInstance(); - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta build() { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - private org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta buildParsed() - throws com.google.protobuf.InvalidProtocolBufferException { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException( - result).asInvalidProtocolBufferException(); - } - return result; - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta buildPartial() { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta result = new org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.testSources_ = testSources_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.root_ = root_; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - path_ = new com.google.protobuf.UnmodifiableLazyStringList( - path_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.path_ = path_; - result.bitField0_ = to_bitField0_; - return result; - } - - public Builder mergeFrom(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta other) { - if (other == org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.getDefaultInstance()) return this; - if (other.hasTestSources()) { - setTestSources(other.getTestSources()); - } - if (other.hasRoot()) { - setRoot(other.getRoot()); - } - if (!other.path_.isEmpty()) { - if (path_.isEmpty()) { - path_ = other.path_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensurePathIsMutable(); - path_.addAll(other.path_); - } - - } - return this; - } - - public final boolean isInitialized() { - if (!hasTestSources()) { - - return false; - } - if (!hasRoot()) { - - return false; - } - return true; - } - - 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: { - bitField0_ |= 0x00000001; - testSources_ = input.readBool(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - root_ = input.readBytes(); - break; - } - case 26: { - ensurePathIsMutable(); - path_.add(input.readBytes()); - break; - } - } - } - } - - private int bitField0_; - - // required bool test_sources = 1; - private boolean testSources_ ; - public boolean hasTestSources() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - public boolean getTestSources() { - return testSources_; - } - public Builder setTestSources(boolean value) { - bitField0_ |= 0x00000001; - testSources_ = value; - - return this; - } - public Builder clearTestSources() { - bitField0_ = (bitField0_ & ~0x00000001); - testSources_ = false; - - return this; - } - - // required string root = 2; - private java.lang.Object root_ = ""; - public boolean hasRoot() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - public String getRoot() { - java.lang.Object ref = root_; - if (!(ref instanceof String)) { - String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); - root_ = s; - return s; - } else { - return (String) ref; - } - } - public Builder setRoot(String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - root_ = value; - - return this; - } - public Builder clearRoot() { - bitField0_ = (bitField0_ & ~0x00000002); - root_ = getDefaultInstance().getRoot(); - - return this; - } - void setRoot(com.google.protobuf.ByteString value) { - bitField0_ |= 0x00000002; - root_ = value; - - } - - // repeated string path = 3; - private com.google.protobuf.LazyStringList path_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensurePathIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - path_ = new com.google.protobuf.LazyStringArrayList(path_); - bitField0_ |= 0x00000004; - } - } - public java.util.List - getPathList() { - return java.util.Collections.unmodifiableList(path_); - } - public int getPathCount() { - return path_.size(); - } - public String getPath(int index) { - return path_.get(index); - } - public Builder setPath( - int index, String value) { - if (value == null) { - throw new NullPointerException(); - } - ensurePathIsMutable(); - path_.set(index, value); - - return this; - } - public Builder addPath(String value) { - if (value == null) { - throw new NullPointerException(); - } - ensurePathIsMutable(); - path_.add(value); - - return this; - } - public Builder addAllPath( - java.lang.Iterable values) { - ensurePathIsMutable(); - super.addAll(values, path_); - - return this; - } - public Builder clearPath() { - path_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - - return this; - } - void addPath(com.google.protobuf.ByteString value) { - ensurePathIsMutable(); - path_.add(value); - - } - - // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.FSStateMessage.RootDelta) - } - - static { - defaultInstance = new RootDelta(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.FSStateMessage.RootDelta) - } - - private int bitField0_; - // required string module_name = 1; - public static final int MODULE_NAME_FIELD_NUMBER = 1; - private java.lang.Object moduleName_; - public boolean hasModuleName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - public String getModuleName() { - java.lang.Object ref = moduleName_; - if (ref instanceof String) { - return (String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - if (com.google.protobuf.Internal.isValidUtf8(bs)) { - moduleName_ = s; - } - return s; - } - } - private com.google.protobuf.ByteString getModuleNameBytes() { - java.lang.Object ref = moduleName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((String) ref); - moduleName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage.RootDelta recompile_delta = 2; - public static final int RECOMPILE_DELTA_FIELD_NUMBER = 2; - private java.util.List recompileDelta_; - public java.util.List getRecompileDeltaList() { - return recompileDelta_; - } - public java.util.List - getRecompileDeltaOrBuilderList() { - return recompileDelta_; - } - public int getRecompileDeltaCount() { - return recompileDelta_.size(); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta getRecompileDelta(int index) { - return recompileDelta_.get(index); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDeltaOrBuilder getRecompileDeltaOrBuilder( - int index) { - return recompileDelta_.get(index); - } - - // repeated string deleted_production = 3; - public static final int DELETED_PRODUCTION_FIELD_NUMBER = 3; - private com.google.protobuf.LazyStringList deletedProduction_; - public java.util.List - getDeletedProductionList() { - return deletedProduction_; - } - public int getDeletedProductionCount() { - return deletedProduction_.size(); - } - public String getDeletedProduction(int index) { - return deletedProduction_.get(index); - } - - // repeated string deleted_tests = 4; - public static final int DELETED_TESTS_FIELD_NUMBER = 4; - private com.google.protobuf.LazyStringList deletedTests_; - public java.util.List - getDeletedTestsList() { - return deletedTests_; - } - public int getDeletedTestsCount() { - return deletedTests_.size(); - } - public String getDeletedTests(int index) { - return deletedTests_.get(index); - } - - private void initFields() { - moduleName_ = ""; - recompileDelta_ = java.util.Collections.emptyList(); - deletedProduction_ = com.google.protobuf.LazyStringArrayList.EMPTY; - deletedTests_ = com.google.protobuf.LazyStringArrayList.EMPTY; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - if (!hasModuleName()) { - memoizedIsInitialized = 0; - return false; - } - for (int i = 0; i < getRecompileDeltaCount(); i++) { - if (!getRecompileDelta(i).isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getModuleNameBytes()); - } - for (int i = 0; i < recompileDelta_.size(); i++) { - output.writeMessage(2, recompileDelta_.get(i)); - } - for (int i = 0; i < deletedProduction_.size(); i++) { - output.writeBytes(3, deletedProduction_.getByteString(i)); - } - for (int i = 0; i < deletedTests_.size(); i++) { - output.writeBytes(4, deletedTests_.getByteString(i)); - } - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(1, getModuleNameBytes()); - } - for (int i = 0; i < recompileDelta_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, recompileDelta_.get(i)); - } - { - int dataSize = 0; - for (int i = 0; i < deletedProduction_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(deletedProduction_.getByteString(i)); - } - size += dataSize; - size += 1 * getDeletedProductionList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < deletedTests_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(deletedTests_.getByteString(i)); - } - size += dataSize; - size += 1 * getDeletedTestsList().size(); - } - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage 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.jps.api.CmdlineRemoteProto.Message.FSStateMessage prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - public static final class Builder extends - com.google.protobuf.GeneratedMessageLite.Builder< - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage, Builder> - implements org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessageOrBuilder { - // Construct using org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - moduleName_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - recompileDelta_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - deletedProduction_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - deletedTests_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getDefaultInstanceForType() { - return org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance(); - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage build() { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - private org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage buildParsed() - throws com.google.protobuf.InvalidProtocolBufferException { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException( - result).asInvalidProtocolBufferException(); - } - return result; - } - - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage buildPartial() { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage result = new org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.moduleName_ = moduleName_; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - recompileDelta_ = java.util.Collections.unmodifiableList(recompileDelta_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.recompileDelta_ = recompileDelta_; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - deletedProduction_ = new com.google.protobuf.UnmodifiableLazyStringList( - deletedProduction_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.deletedProduction_ = deletedProduction_; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - deletedTests_ = new com.google.protobuf.UnmodifiableLazyStringList( - deletedTests_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.deletedTests_ = deletedTests_; - result.bitField0_ = to_bitField0_; - return result; - } - - public Builder mergeFrom(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage other) { - if (other == org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance()) return this; - if (other.hasModuleName()) { - setModuleName(other.getModuleName()); - } - if (!other.recompileDelta_.isEmpty()) { - if (recompileDelta_.isEmpty()) { - recompileDelta_ = other.recompileDelta_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureRecompileDeltaIsMutable(); - recompileDelta_.addAll(other.recompileDelta_); - } - - } - if (!other.deletedProduction_.isEmpty()) { - if (deletedProduction_.isEmpty()) { - deletedProduction_ = other.deletedProduction_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureDeletedProductionIsMutable(); - deletedProduction_.addAll(other.deletedProduction_); - } - - } - if (!other.deletedTests_.isEmpty()) { - if (deletedTests_.isEmpty()) { - deletedTests_ = other.deletedTests_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureDeletedTestsIsMutable(); - deletedTests_.addAll(other.deletedTests_); - } - - } - return this; - } - - public final boolean isInitialized() { - if (!hasModuleName()) { - - return false; - } - for (int i = 0; i < getRecompileDeltaCount(); i++) { - if (!getRecompileDelta(i).isInitialized()) { - - return false; - } - } - return true; - } - - 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: { - bitField0_ |= 0x00000001; - moduleName_ = input.readBytes(); - break; - } - case 18: { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.Builder subBuilder = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.newBuilder(); - input.readMessage(subBuilder, extensionRegistry); - addRecompileDelta(subBuilder.buildPartial()); - break; - } - case 26: { - ensureDeletedProductionIsMutable(); - deletedProduction_.add(input.readBytes()); - break; - } - case 34: { - ensureDeletedTestsIsMutable(); - deletedTests_.add(input.readBytes()); - break; - } - } - } - } - - private int bitField0_; - - // required string module_name = 1; - private java.lang.Object moduleName_ = ""; - public boolean hasModuleName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - public String getModuleName() { - java.lang.Object ref = moduleName_; - if (!(ref instanceof String)) { - String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); - moduleName_ = s; - return s; - } else { - return (String) ref; - } - } - public Builder setModuleName(String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - moduleName_ = value; - - return this; - } - public Builder clearModuleName() { - bitField0_ = (bitField0_ & ~0x00000001); - moduleName_ = getDefaultInstance().getModuleName(); - - return this; - } - void setModuleName(com.google.protobuf.ByteString value) { - bitField0_ |= 0x00000001; - moduleName_ = value; - - } - - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage.RootDelta recompile_delta = 2; - private java.util.List recompileDelta_ = - java.util.Collections.emptyList(); - private void ensureRecompileDeltaIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - recompileDelta_ = new java.util.ArrayList(recompileDelta_); - bitField0_ |= 0x00000002; - } - } - - public java.util.List getRecompileDeltaList() { - return java.util.Collections.unmodifiableList(recompileDelta_); - } - public int getRecompileDeltaCount() { - return recompileDelta_.size(); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta getRecompileDelta(int index) { - return recompileDelta_.get(index); - } - public Builder setRecompileDelta( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRecompileDeltaIsMutable(); - recompileDelta_.set(index, value); - - return this; - } - public Builder setRecompileDelta( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.Builder builderForValue) { - ensureRecompileDeltaIsMutable(); - recompileDelta_.set(index, builderForValue.build()); - - return this; - } - public Builder addRecompileDelta(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRecompileDeltaIsMutable(); - recompileDelta_.add(value); - - return this; - } - public Builder addRecompileDelta( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRecompileDeltaIsMutable(); - recompileDelta_.add(index, value); - - return this; - } - public Builder addRecompileDelta( - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.Builder builderForValue) { - ensureRecompileDeltaIsMutable(); - recompileDelta_.add(builderForValue.build()); - - return this; - } - public Builder addRecompileDelta( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.RootDelta.Builder builderForValue) { - ensureRecompileDeltaIsMutable(); - recompileDelta_.add(index, builderForValue.build()); - - return this; - } - public Builder addAllRecompileDelta( - java.lang.Iterable values) { - ensureRecompileDeltaIsMutable(); - super.addAll(values, recompileDelta_); - - return this; - } - public Builder clearRecompileDelta() { - recompileDelta_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - - return this; - } - public Builder removeRecompileDelta(int index) { - ensureRecompileDeltaIsMutable(); - recompileDelta_.remove(index); - - return this; - } - - // repeated string deleted_production = 3; - private com.google.protobuf.LazyStringList deletedProduction_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureDeletedProductionIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - deletedProduction_ = new com.google.protobuf.LazyStringArrayList(deletedProduction_); - bitField0_ |= 0x00000004; - } - } - public java.util.List - getDeletedProductionList() { - return java.util.Collections.unmodifiableList(deletedProduction_); - } - public int getDeletedProductionCount() { - return deletedProduction_.size(); - } - public String getDeletedProduction(int index) { - return deletedProduction_.get(index); - } - public Builder setDeletedProduction( - int index, String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeletedProductionIsMutable(); - deletedProduction_.set(index, value); - - return this; - } - public Builder addDeletedProduction(String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeletedProductionIsMutable(); - deletedProduction_.add(value); - - return this; - } - public Builder addAllDeletedProduction( - java.lang.Iterable values) { - ensureDeletedProductionIsMutable(); - super.addAll(values, deletedProduction_); - - return this; - } - public Builder clearDeletedProduction() { - deletedProduction_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - - return this; - } - void addDeletedProduction(com.google.protobuf.ByteString value) { - ensureDeletedProductionIsMutable(); - deletedProduction_.add(value); - - } - - // repeated string deleted_tests = 4; - private com.google.protobuf.LazyStringList deletedTests_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureDeletedTestsIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - deletedTests_ = new com.google.protobuf.LazyStringArrayList(deletedTests_); - bitField0_ |= 0x00000008; - } - } - public java.util.List - getDeletedTestsList() { - return java.util.Collections.unmodifiableList(deletedTests_); - } - public int getDeletedTestsCount() { - return deletedTests_.size(); - } - public String getDeletedTests(int index) { - return deletedTests_.get(index); - } - public Builder setDeletedTests( - int index, String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeletedTestsIsMutable(); - deletedTests_.set(index, value); - - return this; - } - public Builder addDeletedTests(String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeletedTestsIsMutable(); - deletedTests_.add(value); - - return this; - } - public Builder addAllDeletedTests( - java.lang.Iterable values) { - ensureDeletedTestsIsMutable(); - super.addAll(values, deletedTests_); - - return this; - } - public Builder clearDeletedTests() { - deletedTests_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - - return this; - } - void addDeletedTests(com.google.protobuf.ByteString value) { - ensureDeletedTestsIsMutable(); - deletedTests_.add(value); - - } - - // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.FSStateMessage) - } - - static { - defaultInstance = new FSStateMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.FSStateMessage) - } - public interface FailureOrBuilder extends com.google.protobuf.MessageLiteOrBuilder { @@ -2573,6 +1360,10 @@ public final class CmdlineRemoteProto { // optional .org.jetbrains.jpsservice.Message.ControllerMessage.ParametersMessage params_message = 2; boolean hasParamsMessage(); org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage getParamsMessage(); + + // optional .org.jetbrains.jpsservice.Message.ControllerMessage.FSEvent fs_event = 3; + boolean hasFsEvent(); + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent getFsEvent(); } public static final class ControllerMessage extends com.google.protobuf.GeneratedMessageLite @@ -2596,10 +1387,12 @@ public final class CmdlineRemoteProto { implements com.google.protobuf.Internal.EnumLite { BUILD_PARAMETERS(0, 1), CANCEL_BUILD_COMMAND(1, 2), + FS_EVENT(2, 3), ; public static final int BUILD_PARAMETERS_VALUE = 1; public static final int CANCEL_BUILD_COMMAND_VALUE = 2; + public static final int FS_EVENT_VALUE = 3; public final int getNumber() { return value; } @@ -2608,6 +1401,7 @@ public final class CmdlineRemoteProto { switch (value) { case 1: return BUILD_PARAMETERS; case 2: return CANCEL_BUILD_COMMAND; + case 3: return FS_EVENT; default: return null; } } @@ -2633,6 +1427,519 @@ public final class CmdlineRemoteProto { // @@protoc_insertion_point(enum_scope:org.jetbrains.jpsservice.Message.ControllerMessage.Type) } + public interface FSEventOrBuilder + extends com.google.protobuf.MessageLiteOrBuilder { + + // required uint64 ordinal = 1; + boolean hasOrdinal(); + long getOrdinal(); + + // repeated string changed_paths = 2; + java.util.List getChangedPathsList(); + int getChangedPathsCount(); + String getChangedPaths(int index); + + // repeated string deleted_paths = 3; + java.util.List getDeletedPathsList(); + int getDeletedPathsCount(); + String getDeletedPaths(int index); + } + public static final class FSEvent extends + com.google.protobuf.GeneratedMessageLite + implements FSEventOrBuilder { + // Use FSEvent.newBuilder() to construct. + private FSEvent(Builder builder) { + super(builder); + } + private FSEvent(boolean noInit) {} + + private static final FSEvent defaultInstance; + public static FSEvent getDefaultInstance() { + return defaultInstance; + } + + public FSEvent getDefaultInstanceForType() { + return defaultInstance; + } + + private int bitField0_; + // required uint64 ordinal = 1; + public static final int ORDINAL_FIELD_NUMBER = 1; + private long ordinal_; + public boolean hasOrdinal() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public long getOrdinal() { + return ordinal_; + } + + // repeated string changed_paths = 2; + public static final int CHANGED_PATHS_FIELD_NUMBER = 2; + private com.google.protobuf.LazyStringList changedPaths_; + public java.util.List + getChangedPathsList() { + return changedPaths_; + } + public int getChangedPathsCount() { + return changedPaths_.size(); + } + public String getChangedPaths(int index) { + return changedPaths_.get(index); + } + + // repeated string deleted_paths = 3; + public static final int DELETED_PATHS_FIELD_NUMBER = 3; + private com.google.protobuf.LazyStringList deletedPaths_; + public java.util.List + getDeletedPathsList() { + return deletedPaths_; + } + public int getDeletedPathsCount() { + return deletedPaths_.size(); + } + public String getDeletedPaths(int index) { + return deletedPaths_.get(index); + } + + private void initFields() { + ordinal_ = 0L; + changedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + deletedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasOrdinal()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeUInt64(1, ordinal_); + } + for (int i = 0; i < changedPaths_.size(); i++) { + output.writeBytes(2, changedPaths_.getByteString(i)); + } + for (int i = 0; i < deletedPaths_.size(); i++) { + output.writeBytes(3, deletedPaths_.getByteString(i)); + } + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, ordinal_); + } + { + int dataSize = 0; + for (int i = 0; i < changedPaths_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(changedPaths_.getByteString(i)); + } + size += dataSize; + size += 1 * getChangedPathsList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < deletedPaths_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(deletedPaths_.getByteString(i)); + } + size += dataSize; + size += 1 * getDeletedPathsList().size(); + } + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent 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.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent 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.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent 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.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent 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.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent, Builder> + implements org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEventOrBuilder { + // Construct using org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + ordinal_ = 0L; + bitField0_ = (bitField0_ & ~0x00000001); + changedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + deletedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent getDefaultInstanceForType() { + return org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance(); + } + + public org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent build() { + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent buildPartial() { + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent result = new org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.ordinal_ = ordinal_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + changedPaths_ = new com.google.protobuf.UnmodifiableLazyStringList( + changedPaths_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.changedPaths_ = changedPaths_; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + deletedPaths_ = new com.google.protobuf.UnmodifiableLazyStringList( + deletedPaths_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.deletedPaths_ = deletedPaths_; + result.bitField0_ = to_bitField0_; + return result; + } + + public Builder mergeFrom(org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent other) { + if (other == org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance()) return this; + if (other.hasOrdinal()) { + setOrdinal(other.getOrdinal()); + } + if (!other.changedPaths_.isEmpty()) { + if (changedPaths_.isEmpty()) { + changedPaths_ = other.changedPaths_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureChangedPathsIsMutable(); + changedPaths_.addAll(other.changedPaths_); + } + + } + if (!other.deletedPaths_.isEmpty()) { + if (deletedPaths_.isEmpty()) { + deletedPaths_ = other.deletedPaths_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureDeletedPathsIsMutable(); + deletedPaths_.addAll(other.deletedPaths_); + } + + } + return this; + } + + public final boolean isInitialized() { + if (!hasOrdinal()) { + + return false; + } + return true; + } + + 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: { + bitField0_ |= 0x00000001; + ordinal_ = input.readUInt64(); + break; + } + case 18: { + ensureChangedPathsIsMutable(); + changedPaths_.add(input.readBytes()); + break; + } + case 26: { + ensureDeletedPathsIsMutable(); + deletedPaths_.add(input.readBytes()); + break; + } + } + } + } + + private int bitField0_; + + // required uint64 ordinal = 1; + private long ordinal_ ; + public boolean hasOrdinal() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public long getOrdinal() { + return ordinal_; + } + public Builder setOrdinal(long value) { + bitField0_ |= 0x00000001; + ordinal_ = value; + + return this; + } + public Builder clearOrdinal() { + bitField0_ = (bitField0_ & ~0x00000001); + ordinal_ = 0L; + + return this; + } + + // repeated string changed_paths = 2; + private com.google.protobuf.LazyStringList changedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureChangedPathsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + changedPaths_ = new com.google.protobuf.LazyStringArrayList(changedPaths_); + bitField0_ |= 0x00000002; + } + } + public java.util.List + getChangedPathsList() { + return java.util.Collections.unmodifiableList(changedPaths_); + } + public int getChangedPathsCount() { + return changedPaths_.size(); + } + public String getChangedPaths(int index) { + return changedPaths_.get(index); + } + public Builder setChangedPaths( + int index, String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureChangedPathsIsMutable(); + changedPaths_.set(index, value); + + return this; + } + public Builder addChangedPaths(String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureChangedPathsIsMutable(); + changedPaths_.add(value); + + return this; + } + public Builder addAllChangedPaths( + java.lang.Iterable values) { + ensureChangedPathsIsMutable(); + super.addAll(values, changedPaths_); + + return this; + } + public Builder clearChangedPaths() { + changedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + + return this; + } + void addChangedPaths(com.google.protobuf.ByteString value) { + ensureChangedPathsIsMutable(); + changedPaths_.add(value); + + } + + // repeated string deleted_paths = 3; + private com.google.protobuf.LazyStringList deletedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureDeletedPathsIsMutable() { + if (!((bitField0_ & 0x00000004) == 0x00000004)) { + deletedPaths_ = new com.google.protobuf.LazyStringArrayList(deletedPaths_); + bitField0_ |= 0x00000004; + } + } + public java.util.List + getDeletedPathsList() { + return java.util.Collections.unmodifiableList(deletedPaths_); + } + public int getDeletedPathsCount() { + return deletedPaths_.size(); + } + public String getDeletedPaths(int index) { + return deletedPaths_.get(index); + } + public Builder setDeletedPaths( + int index, String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeletedPathsIsMutable(); + deletedPaths_.set(index, value); + + return this; + } + public Builder addDeletedPaths(String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeletedPathsIsMutable(); + deletedPaths_.add(value); + + return this; + } + public Builder addAllDeletedPaths( + java.lang.Iterable values) { + ensureDeletedPathsIsMutable(); + super.addAll(values, deletedPaths_); + + return this; + } + public Builder clearDeletedPaths() { + deletedPaths_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + + return this; + } + void addDeletedPaths(com.google.protobuf.ByteString value) { + ensureDeletedPathsIsMutable(); + deletedPaths_.add(value); + + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.ControllerMessage.FSEvent) + } + + static { + defaultInstance = new FSEvent(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.ControllerMessage.FSEvent) + } + public interface GlobalSettingsOrBuilder extends com.google.protobuf.MessageLiteOrBuilder { @@ -4215,12 +3522,6 @@ public final class CmdlineRemoteProto { getBuilderParameterList(); org.jetbrains.jps.api.CmdlineRemoteProto.Message.KeyValuePair getBuilderParameter(int index); int getBuilderParameterCount(); - - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage fs_state = 8; - java.util.List - getFsStateList(); - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsState(int index); - int getFsStateCount(); } public static final class ParametersMessage extends com.google.protobuf.GeneratedMessageLite @@ -4403,27 +3704,6 @@ public final class CmdlineRemoteProto { return builderParameter_.get(index); } - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage fs_state = 8; - public static final int FS_STATE_FIELD_NUMBER = 8; - private java.util.List fsState_; - public java.util.List getFsStateList() { - return fsState_; - } - public java.util.List - getFsStateOrBuilderList() { - return fsState_; - } - public int getFsStateCount() { - return fsState_.size(); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsState(int index) { - return fsState_.get(index); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessageOrBuilder getFsStateOrBuilder( - int index) { - return fsState_.get(index); - } - private void initFields() { buildType_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.Type.REBUILD; globalSettings_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.GlobalSettings.getDefaultInstance(); @@ -4432,7 +3712,6 @@ public final class CmdlineRemoteProto { filePath_ = com.google.protobuf.LazyStringArrayList.EMPTY; artifactName_ = com.google.protobuf.LazyStringArrayList.EMPTY; builderParameter_ = java.util.Collections.emptyList(); - fsState_ = java.util.Collections.emptyList(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -4455,12 +3734,6 @@ public final class CmdlineRemoteProto { return false; } } - for (int i = 0; i < getFsStateCount(); i++) { - if (!getFsState(i).isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } memoizedIsInitialized = 1; return true; } @@ -4489,9 +3762,6 @@ public final class CmdlineRemoteProto { for (int i = 0; i < builderParameter_.size(); i++) { output.writeMessage(7, builderParameter_.get(i)); } - for (int i = 0; i < fsState_.size(); i++) { - output.writeMessage(8, fsState_.get(i)); - } } private int memoizedSerializedSize = -1; @@ -4543,10 +3813,6 @@ public final class CmdlineRemoteProto { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, builderParameter_.get(i)); } - for (int i = 0; i < fsState_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, fsState_.get(i)); - } memoizedSerializedSize = size; return size; } @@ -4663,8 +3929,6 @@ public final class CmdlineRemoteProto { bitField0_ = (bitField0_ & ~0x00000020); builderParameter_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000040); - fsState_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); return this; } @@ -4733,11 +3997,6 @@ public final class CmdlineRemoteProto { bitField0_ = (bitField0_ & ~0x00000040); } result.builderParameter_ = builderParameter_; - if (((bitField0_ & 0x00000080) == 0x00000080)) { - fsState_ = java.util.Collections.unmodifiableList(fsState_); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.fsState_ = fsState_; result.bitField0_ = to_bitField0_; return result; } @@ -4792,16 +4051,6 @@ public final class CmdlineRemoteProto { builderParameter_.addAll(other.builderParameter_); } - } - if (!other.fsState_.isEmpty()) { - if (fsState_.isEmpty()) { - fsState_ = other.fsState_; - bitField0_ = (bitField0_ & ~0x00000080); - } else { - ensureFsStateIsMutable(); - fsState_.addAll(other.fsState_); - } - } return this; } @@ -4823,12 +4072,6 @@ public final class CmdlineRemoteProto { return false; } } - for (int i = 0; i < getFsStateCount(); i++) { - if (!getFsState(i).isInitialized()) { - - return false; - } - } return true; } @@ -4893,12 +4136,6 @@ public final class CmdlineRemoteProto { addBuilderParameter(subBuilder.buildPartial()); break; } - case 66: { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder subBuilder = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.newBuilder(); - input.readMessage(subBuilder, extensionRegistry); - addFsState(subBuilder.buildPartial()); - break; - } } } } @@ -5265,95 +4502,6 @@ public final class CmdlineRemoteProto { return this; } - // repeated .org.jetbrains.jpsservice.Message.FSStateMessage fs_state = 8; - private java.util.List fsState_ = - java.util.Collections.emptyList(); - private void ensureFsStateIsMutable() { - if (!((bitField0_ & 0x00000080) == 0x00000080)) { - fsState_ = new java.util.ArrayList(fsState_); - bitField0_ |= 0x00000080; - } - } - - public java.util.List getFsStateList() { - return java.util.Collections.unmodifiableList(fsState_); - } - public int getFsStateCount() { - return fsState_.size(); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsState(int index) { - return fsState_.get(index); - } - public Builder setFsState( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage value) { - if (value == null) { - throw new NullPointerException(); - } - ensureFsStateIsMutable(); - fsState_.set(index, value); - - return this; - } - public Builder setFsState( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder builderForValue) { - ensureFsStateIsMutable(); - fsState_.set(index, builderForValue.build()); - - return this; - } - public Builder addFsState(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage value) { - if (value == null) { - throw new NullPointerException(); - } - ensureFsStateIsMutable(); - fsState_.add(value); - - return this; - } - public Builder addFsState( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage value) { - if (value == null) { - throw new NullPointerException(); - } - ensureFsStateIsMutable(); - fsState_.add(index, value); - - return this; - } - public Builder addFsState( - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder builderForValue) { - ensureFsStateIsMutable(); - fsState_.add(builderForValue.build()); - - return this; - } - public Builder addFsState( - int index, org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder builderForValue) { - ensureFsStateIsMutable(); - fsState_.add(index, builderForValue.build()); - - return this; - } - public Builder addAllFsState( - java.lang.Iterable values) { - ensureFsStateIsMutable(); - super.addAll(values, fsState_); - - return this; - } - public Builder clearFsState() { - fsState_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); - - return this; - } - public Builder removeFsState(int index) { - ensureFsStateIsMutable(); - fsState_.remove(index); - - return this; - } - // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.ControllerMessage.ParametersMessage) } @@ -5386,9 +4534,20 @@ public final class CmdlineRemoteProto { return paramsMessage_; } + // optional .org.jetbrains.jpsservice.Message.ControllerMessage.FSEvent fs_event = 3; + public static final int FS_EVENT_FIELD_NUMBER = 3; + private org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent fsEvent_; + public boolean hasFsEvent() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent getFsEvent() { + return fsEvent_; + } + private void initFields() { type_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.Type.BUILD_PARAMETERS; paramsMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.getDefaultInstance(); + fsEvent_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -5405,6 +4564,12 @@ public final class CmdlineRemoteProto { return false; } } + if (hasFsEvent()) { + if (!getFsEvent().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -5418,6 +4583,9 @@ public final class CmdlineRemoteProto { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(2, paramsMessage_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(3, fsEvent_); + } } private int memoizedSerializedSize = -1; @@ -5434,6 +4602,10 @@ public final class CmdlineRemoteProto { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, paramsMessage_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, fsEvent_); + } memoizedSerializedSize = size; return size; } @@ -5540,6 +4712,8 @@ public final class CmdlineRemoteProto { bitField0_ = (bitField0_ & ~0x00000001); paramsMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); + fsEvent_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); return this; } @@ -5581,6 +4755,10 @@ public final class CmdlineRemoteProto { to_bitField0_ |= 0x00000002; } result.paramsMessage_ = paramsMessage_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.fsEvent_ = fsEvent_; result.bitField0_ = to_bitField0_; return result; } @@ -5593,6 +4771,9 @@ public final class CmdlineRemoteProto { if (other.hasParamsMessage()) { mergeParamsMessage(other.getParamsMessage()); } + if (other.hasFsEvent()) { + mergeFsEvent(other.getFsEvent()); + } return this; } @@ -5607,6 +4788,12 @@ public final class CmdlineRemoteProto { return false; } } + if (hasFsEvent()) { + if (!getFsEvent().isInitialized()) { + + return false; + } + } return true; } @@ -5645,6 +4832,15 @@ public final class CmdlineRemoteProto { setParamsMessage(subBuilder.buildPartial()); break; } + case 26: { + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.Builder subBuilder = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.newBuilder(); + if (hasFsEvent()) { + subBuilder.mergeFrom(getFsEvent()); + } + input.readMessage(subBuilder, extensionRegistry); + setFsEvent(subBuilder.buildPartial()); + break; + } } } } @@ -5718,6 +4914,49 @@ public final class CmdlineRemoteProto { return this; } + // optional .org.jetbrains.jpsservice.Message.ControllerMessage.FSEvent fs_event = 3; + private org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent fsEvent_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance(); + public boolean hasFsEvent() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent getFsEvent() { + return fsEvent_; + } + public Builder setFsEvent(org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent value) { + if (value == null) { + throw new NullPointerException(); + } + fsEvent_ = value; + + bitField0_ |= 0x00000004; + return this; + } + public Builder setFsEvent( + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.Builder builderForValue) { + fsEvent_ = builderForValue.build(); + + bitField0_ |= 0x00000004; + return this; + } + public Builder mergeFsEvent(org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + fsEvent_ != org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance()) { + fsEvent_ = + org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.newBuilder(fsEvent_).mergeFrom(value).buildPartial(); + } else { + fsEvent_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + public Builder clearFsEvent() { + fsEvent_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.FSEvent.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.ControllerMessage) } @@ -5743,10 +4982,6 @@ public final class CmdlineRemoteProto { // optional .org.jetbrains.jpsservice.Message.BuilderMessage.CompileMessage compile_message = 3; boolean hasCompileMessage(); org.jetbrains.jps.api.CmdlineRemoteProto.Message.BuilderMessage.CompileMessage getCompileMessage(); - - // optional .org.jetbrains.jpsservice.Message.FSStateMessage fsstate_message = 4; - boolean hasFsstateMessage(); - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsstateMessage(); } public static final class BuilderMessage extends com.google.protobuf.GeneratedMessageLite @@ -5771,13 +5006,11 @@ public final class CmdlineRemoteProto { PARAM_REQUEST(0, 1), BUILD_EVENT(1, 2), COMPILE_MESSAGE(2, 3), - FS_STATE(3, 4), ; public static final int PARAM_REQUEST_VALUE = 1; public static final int BUILD_EVENT_VALUE = 2; public static final int COMPILE_MESSAGE_VALUE = 3; - public static final int FS_STATE_VALUE = 4; public final int getNumber() { return value; } @@ -5787,7 +5020,6 @@ public final class CmdlineRemoteProto { case 1: return PARAM_REQUEST; case 2: return BUILD_EVENT; case 3: return COMPILE_MESSAGE; - case 4: return FS_STATE; default: return null; } } @@ -7852,21 +7084,10 @@ public final class CmdlineRemoteProto { return compileMessage_; } - // optional .org.jetbrains.jpsservice.Message.FSStateMessage fsstate_message = 4; - public static final int FSSTATE_MESSAGE_FIELD_NUMBER = 4; - private org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage fsstateMessage_; - public boolean hasFsstateMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsstateMessage() { - return fsstateMessage_; - } - private void initFields() { type_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.BuilderMessage.Type.PARAM_REQUEST; buildEvent_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.getDefaultInstance(); compileMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.BuilderMessage.CompileMessage.getDefaultInstance(); - fsstateMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -7889,12 +7110,6 @@ public final class CmdlineRemoteProto { return false; } } - if (hasFsstateMessage()) { - if (!getFsstateMessage().isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } memoizedIsInitialized = 1; return true; } @@ -7911,9 +7126,6 @@ public final class CmdlineRemoteProto { if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeMessage(3, compileMessage_); } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(4, fsstateMessage_); - } } private int memoizedSerializedSize = -1; @@ -7934,10 +7146,6 @@ public final class CmdlineRemoteProto { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, compileMessage_); } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, fsstateMessage_); - } memoizedSerializedSize = size; return size; } @@ -8046,8 +7254,6 @@ public final class CmdlineRemoteProto { bitField0_ = (bitField0_ & ~0x00000002); compileMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.BuilderMessage.CompileMessage.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); - fsstateMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance(); - bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -8093,10 +7299,6 @@ public final class CmdlineRemoteProto { to_bitField0_ |= 0x00000004; } result.compileMessage_ = compileMessage_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.fsstateMessage_ = fsstateMessage_; result.bitField0_ = to_bitField0_; return result; } @@ -8112,9 +7314,6 @@ public final class CmdlineRemoteProto { if (other.hasCompileMessage()) { mergeCompileMessage(other.getCompileMessage()); } - if (other.hasFsstateMessage()) { - mergeFsstateMessage(other.getFsstateMessage()); - } return this; } @@ -8135,12 +7334,6 @@ public final class CmdlineRemoteProto { return false; } } - if (hasFsstateMessage()) { - if (!getFsstateMessage().isInitialized()) { - - return false; - } - } return true; } @@ -8188,15 +7381,6 @@ public final class CmdlineRemoteProto { setCompileMessage(subBuilder.buildPartial()); break; } - case 34: { - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder subBuilder = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.newBuilder(); - if (hasFsstateMessage()) { - subBuilder.mergeFrom(getFsstateMessage()); - } - input.readMessage(subBuilder, extensionRegistry); - setFsstateMessage(subBuilder.buildPartial()); - break; - } } } } @@ -8313,49 +7497,6 @@ public final class CmdlineRemoteProto { return this; } - // optional .org.jetbrains.jpsservice.Message.FSStateMessage fsstate_message = 4; - private org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage fsstateMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance(); - public boolean hasFsstateMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - public org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage getFsstateMessage() { - return fsstateMessage_; - } - public Builder setFsstateMessage(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage value) { - if (value == null) { - throw new NullPointerException(); - } - fsstateMessage_ = value; - - bitField0_ |= 0x00000008; - return this; - } - public Builder setFsstateMessage( - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.Builder builderForValue) { - fsstateMessage_ = builderForValue.build(); - - bitField0_ |= 0x00000008; - return this; - } - public Builder mergeFsstateMessage(org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage value) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - fsstateMessage_ != org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance()) { - fsstateMessage_ = - org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.newBuilder(fsstateMessage_).mergeFrom(value).buildPartial(); - } else { - fsstateMessage_ = value; - } - - bitField0_ |= 0x00000008; - return this; - } - public Builder clearFsstateMessage() { - fsstateMessage_ = org.jetbrains.jps.api.CmdlineRemoteProto.Message.FSStateMessage.getDefaultInstance(); - - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - // @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.BuilderMessage) } diff --git a/jps/jps-builders/src/org/jetbrains/jps/api/SequentialTaskExecutor.java b/jps/jps-builders/src/org/jetbrains/jps/api/SequentialTaskExecutor.java index 4bc851c017d9..96c7da6d8fa3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/api/SequentialTaskExecutor.java +++ b/jps/jps-builders/src/org/jetbrains/jps/api/SequentialTaskExecutor.java @@ -47,7 +47,7 @@ public class SequentialTaskExecutor { return futureTask; } - private void processQueue() { + protected void processQueue() { if (!myInProgress.getAndSet(true)) { myExecutor.execute(USER_TASK_RUNNER); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java index 93227418429a..637cf04e41fa 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java @@ -89,9 +89,10 @@ public class BuildMain { final CmdlineRemoteProto.Message.ControllerMessage controllerMessage = message.getControllerMessage(); switch (controllerMessage.getType()) { - case BUILD_PARAMETERS: + case BUILD_PARAMETERS: { if (mySession == null) { - final BuildSession session = new BuildSession(mySessionId, ctx.getChannel(), controllerMessage.getParamsMessage()); + final CmdlineRemoteProto.Message.ControllerMessage.FSEvent delta = controllerMessage.hasFsEvent()? controllerMessage.getFsEvent() : null; + final BuildSession session = new BuildSession(mySessionId, ctx.getChannel(), controllerMessage.getParamsMessage(), delta); mySession = session; SharedThreadPool.INSTANCE.submit(session); } @@ -99,8 +100,17 @@ public class BuildMain { LOG.info("Cannot start another build session because one is already running"); } return; + } - case CANCEL_BUILD_COMMAND: + case FS_EVENT: { + final BuildSession session = mySession; + if (session != null) { + session.processFSEvent(controllerMessage.getFsEvent()); + } + return; + } + + case CANCEL_BUILD_COMMAND: { final BuildSession session = mySession; if (session != null) { session.cancel(); @@ -110,6 +120,7 @@ public class BuildMain { closeChannel(ctx.getChannel()); } return; + } } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildSession.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildSession.java index 5e93f01e3091..705096beb3b3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildSession.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildSession.java @@ -3,8 +3,10 @@ package org.jetbrains.jps.cmdline; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Ref; +import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.io.DataOutputStream; import groovy.util.Node; import groovy.util.XmlParser; import org.codehaus.groovy.runtime.MethodClosure; @@ -12,6 +14,7 @@ import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelFutureListener; import org.jboss.netty.channel.Channels; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.Library; import org.jetbrains.jps.Module; import org.jetbrains.jps.Project; @@ -29,10 +32,9 @@ import org.jetbrains.jps.incremental.storage.ProjectTimestamps; import org.jetbrains.jps.incremental.storage.Timestamps; import org.jetbrains.jps.server.ProjectDescriptor; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.PrintStream; +import java.io.*; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; /** * @author Eugene Zhuravlev @@ -41,6 +43,7 @@ import java.util.*; final class BuildSession implements Runnable, CanceledStatus { private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.cmdline.BuildSession"); public static final String IDEA_PROJECT_DIRNAME = ".idea"; + private static final String FS_STATE_FILE = "fs_state.dat"; private final UUID mySessionId; private final Channel myChannel; private volatile boolean myCanceled = false; @@ -56,11 +59,17 @@ final class BuildSession implements Runnable, CanceledStatus { private final List myFilePaths; private final Map myBuilderParams; private String myProjectPath; - private List myModuleFSStates; + @Nullable + private CmdlineRemoteProto.Message.ControllerMessage.FSEvent myInitialFSDelta; + // state + private EventsProcessor myEventsProcessor = new EventsProcessor(); + private volatile long myLastEventOrdinal; + private volatile ProjectDescriptor myProjectDescriptor; - // todo pass FSState in order not to scan FS from scratch - - BuildSession(UUID sessionId, Channel channel, CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage params) { + BuildSession(UUID sessionId, + Channel channel, + CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage params, + @Nullable CmdlineRemoteProto.Message.ControllerMessage.FSEvent delta) { mySessionId = sessionId; myChannel = channel; @@ -91,7 +100,7 @@ final class BuildSession implements Runnable, CanceledStatus { for (CmdlineRemoteProto.Message.KeyValuePair pair : params.getBuilderParameterList()) { myBuilderParams.put(pair.getKey(), pair.getValue()); } - myModuleFSStates = params.getFsStateList(); + myInitialFSDelta = delta; } public void run() { @@ -150,29 +159,10 @@ final class BuildSession implements Runnable, CanceledStatus { boolean forceCleanCaches = false; ProjectDescriptor pd; final Project project = loadProject(projectPath); - final BuildFSState fsState = new BuildFSState(false); - - for (CmdlineRemoteProto.Message.FSStateMessage state : myModuleFSStates) { - final Map> recompileProduction = new HashMap>(); - final Map> recompileTests = new HashMap>(); - for (CmdlineRemoteProto.Message.FSStateMessage.RootDelta delta : state.getRecompileDeltaList()) { - final Map> map = delta.getTestSources()? recompileTests : recompileProduction; - final File root = new File(delta.getRoot()); - Set files = map.get(root); - if (files == null) { - files = new HashSet(); - map.put(root, files); - } - for (String path : delta.getPathList()) { - files.add(new File(path)); - } - } - fsState.init(state.getModuleName(), state.getDeletedProductionList(), state.getDeletedTestsList(), recompileProduction, recompileTests); - } + final File dataStorageRoot = Utils.getDataStorageRoot(project); ProjectTimestamps projectTimestamps = null; BuildDataManager dataManager = null; - final File dataStorageRoot = Utils.getDataStorageRoot(project); try { projectTimestamps = new ProjectTimestamps(dataStorageRoot); dataManager = new BuildDataManager(dataStorageRoot, true); @@ -192,14 +182,21 @@ final class BuildSession implements Runnable, CanceledStatus { } forceCleanCaches = true; FileUtil.delete(dataStorageRoot); - // todo: create optionally - //projectTimestamps = new ProjectTimestamps(dataStorageRoot); + projectTimestamps = new ProjectTimestamps(dataStorageRoot); dataManager = new BuildDataManager(dataStorageRoot, true); // second attempt succeded msgHandler.processMessage(new CompilerMessage("build", BuildMessage.Kind.INFO, "Project rebuild forced: " + e.getMessage())); } + final BuildFSState fsState = new BuildFSState(false); pd = new ProjectDescriptor(project, fsState, projectTimestamps, dataManager, BuildLoggingManager.DEFAULT); + myProjectDescriptor = pd; + + loadFsState(myProjectDescriptor, dataStorageRoot, myInitialFSDelta); + // free memory + myInitialFSDelta = null; + // ensure events from controller are processed after FSState initialization + myEventsProcessor.startProcessing(); try { for (int attempt = 0; attempt < 2; attempt++) { @@ -244,19 +241,138 @@ final class BuildSession implements Runnable, CanceledStatus { } } } - // save initialized FS state for future use - for (Module module : pd.project.getModules().values()) { - if (fsState.isInitialized(module.getName())) { - Channels.write(myChannel, CmdlineProtoUtil.toMessage(mySessionId, CmdlineProtoUtil.createFSStateBuilderMessage(module.getName(), - fsState))); - } - } } finally { + saveFsState(dataStorageRoot, pd.fsState, myLastEventOrdinal); pd.release(); } } + public void processFSEvent(final CmdlineRemoteProto.Message.ControllerMessage.FSEvent event) { + myEventsProcessor.submit(new Runnable() { + @Override + public void run() { + try { + applyFSEvent(myProjectDescriptor, event); + } + catch (IOException e) { + LOG.error(e); + } + } + }); + } + + private void applyFSEvent(ProjectDescriptor pd, @Nullable CmdlineRemoteProto.Message.ControllerMessage.FSEvent event) throws IOException { + if (event == null) { + return; + } + + final Timestamps timestamps = pd.timestamps.getStorage(); + + for (String deleted : event.getDeletedPathsList()) { + final File file = new File(deleted); + final RootDescriptor rd = pd.rootsIndex.getModuleAndRoot(file); + if (rd != null) { + pd.fsState.registerDeleted(rd.module, file, rd.isTestRoot, timestamps); + } + } + for (String changed : event.getChangedPathsList()) { + final File file = new File(changed); + final RootDescriptor rd = pd.rootsIndex.getModuleAndRoot(file); + if (rd != null) { + pd.fsState.markDirty(file, rd, timestamps); + } + } + + myLastEventOrdinal += 1; + } + + private static void saveFsState(File dataStorageRoot, BuildFSState state, long lastEventOrdinal) { + final File file = new File(dataStorageRoot, FS_STATE_FILE); + if (lastEventOrdinal < 0L) { + FileUtil.delete(file); + return; + } + + BufferExposingByteArrayOutputStream bytes = new BufferExposingByteArrayOutputStream(); + try { + final DataOutputStream out = new DataOutputStream(bytes); + out.writeLong(lastEventOrdinal); + try { + state.save(out); + } + finally { + out.close(); + } + } + catch (IOException e) { + LOG.error(e); + return; + } + + FileOutputStream fos = null; + try { + fos = new FileOutputStream(file); + } + catch (FileNotFoundException e) { + FileUtil.createIfDoesntExist(file); + } + + try { + if (fos == null) { + fos = new FileOutputStream(file); + } + try { + fos.write(bytes.getInternalBuffer(), 0, bytes.size()); + } + finally { + fos.close(); + } + } + catch (IOException e) { + LOG.error(e); + FileUtil.delete(file); + } + } + + private void loadFsState(final ProjectDescriptor pd, File dataStorageRoot, CmdlineRemoteProto.Message.ControllerMessage.FSEvent initialEvent) { + final File file = new File(dataStorageRoot, FS_STATE_FILE); + try { + final InputStream fs = new FileInputStream(file); + byte[] bytes; + try { + bytes = FileUtil.loadBytes(fs, (int)file.length()); + } + finally { + fs.close(); + } + final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes)); + try { + final long savedOrdinal = in.readLong(); + if (initialEvent != null && (savedOrdinal + 1L == initialEvent.getOrdinal())) { + pd.fsState.load(in); + myLastEventOrdinal = savedOrdinal; + applyFSEvent(pd, initialEvent); + } + else { + // either the first start or some events were lost, forcing scan + pd.fsState.clearAll(); + myLastEventOrdinal = initialEvent != null? initialEvent.getOrdinal() : 0L; + } + } + finally { + in.close(); + } + } + catch (FileNotFoundException ignored) { + } + catch (IOException e) { + pd.fsState.clearAll(); + myLastEventOrdinal = initialEvent != null? initialEvent.getOrdinal() : 0L; + LOG.error(e); + } + } + private void finishBuild(Throwable error, boolean hadBuildErrors, boolean markedUptodateFiles) { CmdlineRemoteProto.Message lastMessage = null; try { @@ -464,4 +580,24 @@ final class BuildSession implements Runnable, CanceledStatus { return BuildType.MAKE; // use make by default } + private static class EventsProcessor extends SequentialTaskExecutor { + private final AtomicBoolean myProcessingEnabled = new AtomicBoolean(false); + + EventsProcessor() { + super(SharedThreadPool.INSTANCE); + } + + public void startProcessing() { + if (!myProcessingEnabled.getAndSet(true)) { + super.processQueue(); + } + } + + @Override + protected void processQueue() { + if (myProcessingEnabled.get()) { + super.processQueue(); + } + } + } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java index 419e8472e6d7..e5fb5aefa815 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java @@ -1,9 +1,12 @@ package org.jetbrains.jps.incremental.fs; +import com.intellij.util.io.IOUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.incremental.storage.Timestamps; +import java.io.DataInput; +import java.io.DataOutput; import java.io.File; import java.io.IOException; import java.util.*; @@ -17,6 +20,36 @@ public class FSState { protected final Set myInitialTestsScanPerformed = Collections.synchronizedSet(new HashSet()); protected final Set myInitialProductionScanPerformed = Collections.synchronizedSet(new HashSet()); + public void save(DataOutput out) throws IOException { + out.writeInt(myInitialTestsScanPerformed.size()); + for (String moduleName : myInitialTestsScanPerformed) { + IOUtil.writeString(moduleName, out); + getDelta(moduleName).save(out, true); + } + + out.writeInt(myInitialProductionScanPerformed.size()); + for (String moduleName : myInitialProductionScanPerformed) { + IOUtil.writeString(moduleName, out); + getDelta(moduleName).save(out, false); + } + } + + public void load(DataInput in) throws IOException { + int testsDeltaCount = in.readInt(); + while (testsDeltaCount-- > 0) { + final String moduleName = IOUtil.readString(in); + getDelta(moduleName).load(in, true); + myInitialTestsScanPerformed.add(moduleName); + } + + int productionDeltaCount = in.readInt(); + while (productionDeltaCount-- > 0) { + final String moduleName = IOUtil.readString(in); + getDelta(moduleName).load(in, false); + myInitialProductionScanPerformed.add(moduleName); + } + } + public void clearAll() { myDeltas.clear(); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java index 5527dd8a5837..883272e104b3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java @@ -1,9 +1,13 @@ package org.jetbrains.jps.incremental.fs; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.util.io.IOUtil; import org.jetbrains.annotations.Nullable; +import java.io.DataInput; +import java.io.DataOutput; import java.io.File; +import java.io.IOException; import java.util.*; /** @noinspection SynchronizationOnLocalVariableOrMethodParameter*/ @@ -13,6 +17,49 @@ final class FilesDelta { private final Map> mySourcesToRecompile = Collections.synchronizedMap(new HashMap>()); // srcRoot -> set of sources private final Map> myTestsToRecompile = Collections.synchronizedMap(new HashMap>()); // srcRoot -> set of sources + public void save(DataOutput out, final boolean tests) throws IOException { + final Set deleted = tests? myDeletedTests : myDeletedProduction; + out.writeInt(deleted.size()); + for (String path : deleted) { + IOUtil.writeString(path, out); + } + final Map> recompile = tests? myTestsToRecompile : mySourcesToRecompile; + out.writeInt(recompile.size()); + for (Map.Entry> entry : recompile.entrySet()) { + final File root = entry.getKey(); + IOUtil.writeString(FileUtil.toSystemIndependentName(root.getPath()), out); + final Set files = entry.getValue(); + out.writeInt(files.size()); + for (File file : files) { + IOUtil.writeString(FileUtil.toSystemIndependentName(file.getPath()), out); + } + } + } + + public void load(DataInput in, final boolean tests) throws IOException { + final Set deleted = tests? myDeletedTests : myDeletedProduction; + deleted.clear(); + int deletedCount = in.readInt(); + while (deletedCount-- > 0) { + deleted.add(IOUtil.readString(in)); + } + final Map> recompile = tests? myTestsToRecompile : mySourcesToRecompile; + recompile.clear(); + int recompileCount = in.readInt(); + while (recompileCount-- > 0) { + final File root = new File(IOUtil.readString(in)); + Set files = recompile.get(root); + if (files == null) { + files = new HashSet(); + recompile.put(root, files); + } + int filesCount = in.readInt(); + while (filesCount-- > 0) { + files.add(new File(IOUtil.readString(in))); + } + } + } + public void init(Collection deletedProduction, Collection deletedTests, Map> recompileProduction, Map> recompileTests) { myDeletedProduction.clear(); myDeletedProduction.addAll(deletedProduction);