void (UUID sessionId, CmdlineRemoteProto.Message.BuilderMessage.BuildEvent event) { final CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.Type eventType = event.getEventType(); switch (eventType) { case FILES_GENERATED -> { final List<CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.GeneratedFile> generated = event.getGeneratedFilesList(); CompilationStatusListener publisher = myProject.isDisposed() ? null : myProject.getMessageBus().syncPublisher(CompilerTopics.COMPILATION_STATUS); Set<String> writtenArtifactOutputPaths = outputToArtifact != null ? CollectionFactory.createFilePathSet() : null; for (CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.GeneratedFile generatedFile : generated) { final String root = FileUtil.toSystemIndependentName(generatedFile.getOutputRoot()); final String relativePath = FileUtil.toSystemIndependentName(generatedFile.getRelativePath()); if (publisher != null) { publisher.fileGenerated(root, relativePath); } if (outputToArtifact != null) { Collection<Artifact> artifacts = outputToArtifact.get(root); if (artifacts != null && !artifacts.isEmpty()) { writtenArtifactOutputPaths .add(FileUtil.toSystemDependentName(DeploymentUtil.appendToPath(root, relativePath))); } } } if (writtenArtifactOutputPaths != null && !writtenArtifactOutputPaths.isEmpty()) { ArtifactsCompiler.addWrittenPaths(compileContext, writtenArtifactOutputPaths); } } case BUILD_COMPLETED -> { ExitStatus status = !event.hasCompletionStatus() ? ExitStatus.SUCCESS : switch (event.getCompletionStatus()) { case CANCELED -> ExitStatus.CANCELLED; case ERRORS -> ExitStatus.ERRORS; case SUCCESS -> ExitStatus.SUCCESS; case UP_TO_DATE -> ExitStatus.UP_TO_DATE; }; compileContext.putUserDataIfAbsent(COMPILE_SERVER_BUILD_STATUS, status); } case CUSTOM_BUILDER_MESSAGE -> { if (event.hasCustomBuilderMessage()) { final CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.CustomBuilderMessage message = event.getCustomBuilderMessage(); if (GlobalOptions.JPS_SYSTEM_BUILDER_ID.equals(message.getBuilderId()) && GlobalOptions.JPS_UNPROCESSED_FS_CHANGES_MESSAGE_ID.equals(message.getMessageType())) { //noinspection HardCodedStringLiteral final String text = message.getMessageText(); if (!StringUtil.isEmpty(text)) { compileContext.addMessage(CompilerMessageCategory.INFORMATION, text, null, -1, -1); } } } } } }