mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[BuildEvent] new: add BuildEvents service with the BuildEvent builders
### Issues * IJPL-201465 External system: provide API to create instances of build event implementations GitOrigin-RevId: 7a1bf97e64443be9366e6e4f66db70218966996e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c37fbee0d7
commit
670c9b1cd8
+33
-16
@@ -3,8 +3,11 @@ package com.intellij.openapi.externalSystem.service.execution
|
||||
|
||||
import com.intellij.build.BuildProgressListener
|
||||
import com.intellij.build.DefaultBuildDescriptor
|
||||
import com.intellij.build.events.impl.*
|
||||
import com.intellij.build.events.impl.BuildEventsImpl
|
||||
import com.intellij.build.events.impl.SuccessResultImpl
|
||||
import com.intellij.build.output.BuildOutputParser
|
||||
import com.intellij.build.progress.BuildProgressDescriptorImpl
|
||||
import com.intellij.build.progress.BuildRootProgressImpl
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskType
|
||||
@@ -15,10 +18,17 @@ import org.assertj.core.api.Assertions.assertThat
|
||||
|
||||
class ExternalSystemEventDispatcherTest : LightPlatformTestCase() {
|
||||
|
||||
private val buildEvents = BuildEventsImpl()
|
||||
|
||||
fun `test invokeOnCompletion`() {
|
||||
val parsers = listOf(
|
||||
BuildOutputParser { line, reader, messageConsumer ->
|
||||
messageConsumer.accept(OutputBuildEventImpl(reader.parentEventId, line, true))
|
||||
messageConsumer.accept(
|
||||
buildEvents.output()
|
||||
.withParentId(reader.parentEventId)
|
||||
.withMessage(line)
|
||||
.build()
|
||||
)
|
||||
return@BuildOutputParser true
|
||||
}
|
||||
)
|
||||
@@ -30,7 +40,12 @@ class ExternalSystemEventDispatcherTest : LightPlatformTestCase() {
|
||||
val parsers = listOf(
|
||||
BuildOutputParser { _, _, _ -> throw RuntimeException("Bad parser") },
|
||||
BuildOutputParser { line, reader, messageConsumer ->
|
||||
messageConsumer.accept(OutputBuildEventImpl(reader.parentEventId, line, true))
|
||||
messageConsumer.accept(
|
||||
buildEvents.output()
|
||||
.withParentId(reader.parentEventId)
|
||||
.withMessage(line)
|
||||
.build()
|
||||
)
|
||||
return@BuildOutputParser true
|
||||
}
|
||||
)
|
||||
@@ -42,21 +57,23 @@ class ExternalSystemEventDispatcherTest : LightPlatformTestCase() {
|
||||
val eventMessages = mutableListOf<String>()
|
||||
ExtensionTestUtil.maskExtensions(ExternalSystemOutputParserProvider.EP_NAME, listOf(TestParserProvider(parsers)), testRootDisposable)
|
||||
val semaphore = Semaphore(1)
|
||||
val buildDescriptor = DefaultBuildDescriptor(taskId, "test task", "/path", System.currentTimeMillis())
|
||||
val dispatcher = ExternalSystemEventDispatcher(taskId, BuildProgressListener { _, event -> eventMessages += event.message })
|
||||
dispatcher.use {
|
||||
it.onEvent(1, StartBuildEventImpl(DefaultBuildDescriptor(taskId, "test task", "/path", System.currentTimeMillis()), "Build started"))
|
||||
it.invokeOnCompletion { eventMessages += "completion message 1" }
|
||||
it.onEvent(1, StartEventImpl(2, 1, System.currentTimeMillis(), "sub task1 started"))
|
||||
it.appendLine("Task output line 1")
|
||||
it.onEvent(1, StartEventImpl(3, 1, System.currentTimeMillis(), "sub task2 started"))
|
||||
it.appendLine("Task output line 2")
|
||||
it.onEvent(1, FinishEventImpl(3, 1, System.currentTimeMillis(), "sub task2 finished", SuccessResultImpl()))
|
||||
it.onEvent(1, FinishEventImpl(2, 1, System.currentTimeMillis(), "sub task1 finished", SuccessResultImpl()))
|
||||
it.onEvent(1, FinishBuildEventImpl(taskId, null, System.currentTimeMillis(), "Build finished", SuccessResultImpl()))
|
||||
it.invokeOnCompletion { throw RuntimeException("Bad happens") }
|
||||
it.invokeOnCompletion { eventMessages += "completion message 2" }
|
||||
it.invokeOnCompletion { semaphore.up() }
|
||||
it.appendLine("Task output line 3")
|
||||
val buildRootProgress = BuildRootProgressImpl(buildEvents, dispatcher)
|
||||
buildRootProgress.start("Build started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
dispatcher.invokeOnCompletion { eventMessages += "completion message 1" }
|
||||
val task1Progress = buildRootProgress.startChildProgress("sub task1 started")
|
||||
dispatcher.appendLine("Task output line 1")
|
||||
val task2Progress = buildRootProgress.startChildProgress("sub task2 started")
|
||||
dispatcher.appendLine("Task output line 2")
|
||||
task2Progress.finish("sub task2 finished", SuccessResultImpl())
|
||||
task1Progress.finish("sub task1 finished", SuccessResultImpl())
|
||||
buildRootProgress.finish("Build finished", SuccessResultImpl())
|
||||
dispatcher.invokeOnCompletion { throw RuntimeException("Bad happens") }
|
||||
dispatcher.invokeOnCompletion { eventMessages += "completion message 2" }
|
||||
dispatcher.invokeOnCompletion { semaphore.up() }
|
||||
dispatcher.appendLine("Task output line 3")
|
||||
}
|
||||
dispatcher.invokeOnCompletion { eventMessages += "Late completion message" }
|
||||
|
||||
|
||||
@@ -14,17 +14,163 @@
|
||||
- getLanguage():com.intellij.lang.Language
|
||||
- getLanguageDomainId():java.lang.String
|
||||
- getPropertyDescription(java.lang.String):java.lang.String
|
||||
*:com.intellij.build.BuildViewSettingsProvider
|
||||
- a:isExecutionViewHidden():Z
|
||||
*:com.intellij.build.BuildWorkspaceConfiguration
|
||||
- s:getInstance(com.intellij.openapi.project.Project):com.intellij.build.BuildWorkspaceConfiguration
|
||||
- a:isShowFirstErrorInEditor():Z
|
||||
*:com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:build():com.intellij.build.events.BuildIssueEvent
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:withIssue(com.intellij.build.issue.BuildIssue):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:withKind(com.intellij.build.events.MessageEvent$Kind):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
*:com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:build():com.intellij.build.events.FileDownloadEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withDownloadPath(java.lang.String):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withFirstInGroup(Z):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withProgress(java.lang.Long):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withStartId(java.lang.Object):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withTotal(java.lang.Long):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:withUnit(java.lang.String):com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
*:com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:build():com.intellij.build.events.FileDownloadedEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withDownloadPath(java.lang.String):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withDuration(J):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withStartId(java.lang.Object):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
*:com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:build():com.intellij.build.events.FileMessageEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withFilePosition(com.intellij.build.FilePosition):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withGroup(java.lang.String):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withKind(com.intellij.build.events.MessageEvent$Kind):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
*:com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:build():com.intellij.build.events.FinishBuildEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withResult(com.intellij.build.events.EventResult):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withStartBuildId(java.lang.Object):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
*:com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:build():com.intellij.build.events.FinishEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withResult(com.intellij.build.events.EventResult):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withStartId(java.lang.Object):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
*:com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:build():com.intellij.build.events.MessageEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withGroup(java.lang.String):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withKind(com.intellij.build.events.MessageEvent$Kind):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withNavigatable(com.intellij.pom.Navigatable):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
*:com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:build():com.intellij.build.events.OutputBuildEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withOutputType(com.intellij.execution.process.ProcessOutputType):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
*:com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:build():com.intellij.build.events.PresentableBuildEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withPresentationData(com.intellij.build.events.BuildEventPresentationData):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
*:com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:build():com.intellij.build.events.ProgressBuildEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withProgress(java.lang.Long):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withStartId(java.lang.Object):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withTotal(java.lang.Long):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:withUnit(java.lang.String):com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
*:com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- a:build():com.intellij.build.events.StartBuildEvent
|
||||
- a:withBuildDescriptor(com.intellij.build.BuildDescriptor):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- *a:withBuildViewSettings(com.intellij.build.BuildViewSettingsProvider):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
*:com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:build():com.intellij.build.events.StartEvent
|
||||
- a:withDescription(java.lang.String):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:withHint(java.lang.String):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:withId(java.lang.Object):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:withMessage(java.lang.String):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:withParentId(java.lang.Object):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:withTime(java.lang.Long):com.intellij.build.eventBuilders.StartEventBuilder
|
||||
*:com.intellij.build.events.BuildEventPresentationData
|
||||
- a:consoleToolbarActions():com.intellij.openapi.actionSystem.ActionGroup
|
||||
- a:getExecutionConsole():com.intellij.execution.ui.ExecutionConsole
|
||||
- a:getNodeIcon():javax.swing.Icon
|
||||
*:com.intellij.build.events.BuildEvents
|
||||
- *sf:Companion:com.intellij.build.events.BuildEvents$Companion
|
||||
- a:buildIssue():com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
- a:fileDownload():com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
- a:fileDownloaded():com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
- a:fileMessage():com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
- a:finish():com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
- a:finishBuild():com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
- s:getInstance():com.intellij.build.events.BuildEvents
|
||||
- a:message():com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
- a:output():com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
- a:presentable():com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
- a:progress():com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
- a:start():com.intellij.build.eventBuilders.StartEventBuilder
|
||||
- a:startBuild():com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
*f:com.intellij.build.events.BuildEvents$Companion
|
||||
- f:getInstance():com.intellij.build.events.BuildEvents
|
||||
*:com.intellij.build.events.BuildIssueEvent
|
||||
- com.intellij.build.events.MessageEvent
|
||||
- a:getDescription():java.lang.String
|
||||
- a:getIssue():com.intellij.build.issue.BuildIssue
|
||||
*:com.intellij.build.events.DerivedResult
|
||||
- com.intellij.build.events.EventResult
|
||||
- a:createDefaultResult():com.intellij.build.events.EventResult
|
||||
- a:createFailureResult():com.intellij.build.events.FailureResult
|
||||
*:com.intellij.build.events.DuplicateMessageAware
|
||||
*:com.intellij.build.events.PresentableBuildEvent
|
||||
- com.intellij.build.events.BuildEvent
|
||||
- a:getPresentationData():com.intellij.build.events.BuildEventPresentationData
|
||||
com.intellij.build.events.StartBuildEvent
|
||||
- com.intellij.build.events.StartEvent
|
||||
- *:getBuildViewSettings():com.intellij.build.BuildViewSettingsProvider
|
||||
*:com.intellij.build.issue.BuildIssueChecker
|
||||
- a:check(com.intellij.build.issue.BuildIssueData):com.intellij.build.issue.BuildIssue
|
||||
*:com.intellij.build.issue.BuildIssueData
|
||||
|
||||
@@ -32,6 +32,14 @@ com.intellij.build.events.Failure
|
||||
com.intellij.build.events.FailureResult
|
||||
- com.intellij.build.events.EventResult
|
||||
- a:getFailures():java.util.List
|
||||
com.intellij.build.events.FileDownloadEvent
|
||||
- com.intellij.build.events.ProgressBuildEvent
|
||||
- a:getDownloadPath():java.lang.String
|
||||
- a:isFirstInGroup():Z
|
||||
com.intellij.build.events.FileDownloadedEvent
|
||||
- com.intellij.build.events.BuildEvent
|
||||
- a:getDownloadPath():java.lang.String
|
||||
- a:getDuration():J
|
||||
com.intellij.build.events.FileMessageEvent
|
||||
- com.intellij.build.events.MessageEvent
|
||||
- a:getFilePosition():com.intellij.build.FilePosition
|
||||
@@ -52,6 +60,7 @@ com.intellij.build.events.MessageEventResult
|
||||
- getDetails():java.lang.String
|
||||
- a:getKind():com.intellij.build.events.MessageEvent$Kind
|
||||
com.intellij.build.events.OutputBuildEvent
|
||||
- com.intellij.build.events.BuildEvent
|
||||
- a:getMessage():java.lang.String
|
||||
- a:getOutputType():com.intellij.execution.process.ProcessOutputType
|
||||
- isStdOut():Z
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
|
||||
@Experimental
|
||||
public interface BuildViewSettingsProvider {
|
||||
|
||||
boolean isExecutionViewHidden();
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.*
|
||||
import com.intellij.build.events.BuildIssueEvent
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.issue.BuildIssue
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface BuildIssueEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any?): BuildIssueEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): BuildIssueEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): BuildIssueEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): BuildIssueEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withKind(kind: MessageEvent.Kind): BuildIssueEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withIssue(issue: BuildIssue): BuildIssueEventBuilder
|
||||
|
||||
fun build(): BuildIssueEvent
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.*
|
||||
import com.intellij.build.events.FileDownloadEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface FileDownloadEventBuilder {
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withStartId(startId: Any): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTotal(total: Long?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withProgress(progress: Long?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withUnit(unit: String?): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withFirstInGroup(isFirstInGroup: Boolean): FileDownloadEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withDownloadPath(downloadPath: String): FileDownloadEventBuilder
|
||||
|
||||
fun build(): FileDownloadEvent
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.FileDownloadedEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface FileDownloadedEventBuilder {
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withStartId(startId: Any): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withDuration(duration: Long): FileDownloadedEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withDownloadPath(downloadPath: String): FileDownloadedEventBuilder
|
||||
|
||||
fun build(): FileDownloadedEvent
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.FilePosition
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.BuildEventsNls.Title
|
||||
import com.intellij.build.events.FileMessageEvent
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface FileMessageEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withKind(kind: MessageEvent.Kind): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withGroup(group: @Title String?): FileMessageEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withFilePosition(filePosition: FilePosition): FileMessageEventBuilder
|
||||
|
||||
fun build(): FileMessageEvent
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.EventResult
|
||||
import com.intellij.build.events.FinishBuildEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface FinishBuildEventBuilder {
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withStartBuildId(startBuildId: Any): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): FinishBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withResult(result: EventResult): FinishBuildEventBuilder
|
||||
|
||||
fun build(): FinishBuildEvent
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.EventResult
|
||||
import com.intellij.build.events.FinishEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface FinishEventBuilder {
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withStartId(startId: Any): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): FinishEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withResult(result: EventResult): FinishEventBuilder
|
||||
|
||||
fun build(): FinishEvent
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.BuildEventsNls.Title
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.pom.Navigatable
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface MessageEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withKind(kind: MessageEvent.Kind): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withGroup(group: @Title String?): MessageEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withNavigatable(navigatable: Navigatable?): MessageEventBuilder
|
||||
|
||||
fun build(): MessageEvent
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.*
|
||||
import com.intellij.build.events.OutputBuildEvent
|
||||
import com.intellij.execution.process.ProcessOutputType
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface OutputBuildEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any?): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): OutputBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withOutputType(outputType: ProcessOutputType?): OutputBuildEventBuilder
|
||||
|
||||
fun build(): OutputBuildEvent
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventPresentationData
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.PresentableBuildEvent
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@ApiStatus.Experimental
|
||||
interface PresentableBuildEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any?): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): PresentableBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withPresentationData(presentationData: BuildEventPresentationData): PresentableBuildEventBuilder
|
||||
|
||||
fun build(): PresentableBuildEvent
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.ProgressBuildEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface ProgressBuildEventBuilder {
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withStartId(startId: Any): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTotal(total: Long?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withProgress(progress: Long?): ProgressBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withUnit(unit: String?): ProgressBuildEventBuilder
|
||||
|
||||
fun build(): ProgressBuildEvent
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.BuildDescriptor
|
||||
import com.intellij.build.BuildViewSettingsProvider
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.StartBuildEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface StartBuildEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): StartBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): StartBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): StartBuildEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): StartBuildEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withBuildDescriptor(buildDescriptor: BuildDescriptor): StartBuildEventBuilder
|
||||
|
||||
@Experimental
|
||||
@CheckReturnValue
|
||||
fun withBuildViewSettings(buildViewSettings: BuildViewSettingsProvider?): StartBuildEventBuilder
|
||||
|
||||
fun build(): StartBuildEvent
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.StartEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable
|
||||
import org.jetbrains.annotations.CheckReturnValue
|
||||
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
interface StartEventBuilder {
|
||||
|
||||
@CheckReturnValue
|
||||
fun withId(id: Any): StartEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withParentId(parentId: Any?): StartEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withTime(time: Long?): StartEventBuilder
|
||||
|
||||
@CheckReturnValue // mandatory field
|
||||
fun withMessage(message: @Message String): StartEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withHint(hint: @Hint String?): StartEventBuilder
|
||||
|
||||
@CheckReturnValue
|
||||
fun withDescription(description: @Description String?): StartEventBuilder
|
||||
|
||||
fun build(): StartEvent
|
||||
}
|
||||
@@ -15,6 +15,9 @@
|
||||
*/
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -23,42 +26,30 @@ import org.jetbrains.annotations.Nullable;
|
||||
*/
|
||||
public interface BuildEvent {
|
||||
/**
|
||||
* Returns an id that uniquely identifies the event.
|
||||
*
|
||||
* @return The event id.
|
||||
* Returns an ID that uniquely identifies the event.
|
||||
* The events with equal IDs replaces each other.
|
||||
*/
|
||||
@NotNull
|
||||
Object getId();
|
||||
@NotNull Object getId();
|
||||
|
||||
/**
|
||||
* Returns the parent event id, if any.
|
||||
*
|
||||
* @return The parent event id.
|
||||
*/
|
||||
@Nullable
|
||||
Object getParentId();
|
||||
@Nullable Object getParentId();
|
||||
|
||||
/**
|
||||
* Returns the time this event was triggered.
|
||||
*
|
||||
* @return The event time, in milliseconds since the epoch.
|
||||
* Returns the time, in milliseconds since the epoch, this event was triggered.
|
||||
*/
|
||||
long getEventTime();
|
||||
|
||||
/**
|
||||
* Returns textual representation of the event.
|
||||
*
|
||||
* @return The event text message.
|
||||
*/
|
||||
@NotNull
|
||||
@BuildEventsNls.Message
|
||||
String getMessage();
|
||||
@Message
|
||||
@NotNull String getMessage();
|
||||
|
||||
@Nullable
|
||||
@BuildEventsNls.Hint
|
||||
String getHint();
|
||||
@Hint
|
||||
@Nullable String getHint();
|
||||
|
||||
@Nullable
|
||||
@BuildEventsNls.Description
|
||||
String getDescription();
|
||||
@Description
|
||||
@Nullable String getDescription();
|
||||
}
|
||||
|
||||
+4
-3
@@ -1,16 +1,17 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.openapi.actionSystem.ActionGroup;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
@Experimental
|
||||
public interface BuildEventPresentationData {
|
||||
|
||||
@NotNull Icon getNodeIcon();
|
||||
|
||||
@Nullable ExecutionConsole getExecutionConsole();
|
||||
@@ -0,0 +1,43 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events
|
||||
|
||||
import com.intellij.build.eventBuilders.*
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.util.application
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
|
||||
@Experimental
|
||||
interface BuildEvents {
|
||||
|
||||
fun startBuild(): StartBuildEventBuilder
|
||||
|
||||
fun finishBuild(): FinishBuildEventBuilder
|
||||
|
||||
fun start(): StartEventBuilder
|
||||
|
||||
fun finish(): FinishEventBuilder
|
||||
|
||||
fun output(): OutputBuildEventBuilder
|
||||
|
||||
fun progress(): ProgressBuildEventBuilder
|
||||
|
||||
fun message(): MessageEventBuilder
|
||||
|
||||
fun fileMessage(): FileMessageEventBuilder
|
||||
|
||||
fun buildIssue(): BuildIssueEventBuilder
|
||||
|
||||
fun fileDownload(): FileDownloadEventBuilder
|
||||
|
||||
fun fileDownloaded(): FileDownloadedEventBuilder
|
||||
|
||||
fun presentable(): PresentableBuildEventBuilder
|
||||
|
||||
companion object {
|
||||
|
||||
@JvmStatic
|
||||
fun getInstance(): BuildEvents {
|
||||
return application.service()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,14 +2,18 @@
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.issue.BuildIssue;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@Experimental
|
||||
public interface BuildIssueEvent extends MessageEvent {
|
||||
@NotNull
|
||||
BuildIssue getIssue();
|
||||
|
||||
@Override
|
||||
@Nullable String getDescription();
|
||||
|
||||
@NotNull BuildIssue getIssue();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ApiStatus.NonExtendable
|
||||
public interface FileDownloadEvent extends ProgressBuildEvent {
|
||||
|
||||
boolean isFirstInGroup();
|
||||
|
||||
@NotNull String getDownloadPath();
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface FileDownloadedEvent extends BuildEvent {
|
||||
|
||||
long getDuration();
|
||||
|
||||
@NotNull String getDownloadPath();
|
||||
}
|
||||
@@ -2,13 +2,15 @@
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.FilePosition;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
public interface FileMessageEvent extends MessageEvent {
|
||||
FilePosition getFilePosition();
|
||||
|
||||
@NotNull FilePosition getFilePosition();
|
||||
|
||||
@Override
|
||||
FileMessageEventResult getResult();
|
||||
@NotNull FileMessageEventResult getResult();
|
||||
}
|
||||
|
||||
@@ -15,9 +15,12 @@
|
||||
*/
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
public interface FinishEvent extends BuildEvent {
|
||||
EventResult getResult();
|
||||
|
||||
@NotNull EventResult getResult();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Title;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -14,15 +15,12 @@ public interface MessageEvent extends BuildEvent {
|
||||
ERROR, WARNING, INFO, STATISTICS, SIMPLE
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Kind getKind();
|
||||
@NotNull Kind getKind();
|
||||
|
||||
@NotNull
|
||||
@BuildEventsNls.Title
|
||||
String getGroup();
|
||||
@Title
|
||||
@NotNull String getGroup();
|
||||
|
||||
@Nullable
|
||||
Navigatable getNavigatable(@NotNull Project project);
|
||||
@Nullable Navigatable getNavigatable(@NotNull Project project);
|
||||
|
||||
MessageEventResult getResult();
|
||||
@NotNull MessageEventResult getResult();
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.execution.process.ProcessOutputType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ApiStatus.NonExtendable
|
||||
public interface OutputBuildEvent {
|
||||
@NotNull
|
||||
@BuildEventsNls.Message
|
||||
String getMessage();
|
||||
public interface OutputBuildEvent extends BuildEvent {
|
||||
|
||||
@Override
|
||||
@Message
|
||||
@NotNull String getMessage();
|
||||
|
||||
/**
|
||||
* @return type of the output (stdout, stderr, or system)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Implement this interface in the {@link BuildEvent} to customize its appearance on Build tool window.
|
||||
*/
|
||||
@Experimental
|
||||
public interface PresentableBuildEvent extends BuildEvent {
|
||||
|
||||
@NotNull BuildEventPresentationData getPresentationData();
|
||||
}
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@@ -38,5 +40,5 @@ public interface ProgressBuildEvent extends BuildEvent {
|
||||
*
|
||||
* @return The measure used to express the amount of work.
|
||||
*/
|
||||
String getUnit();
|
||||
@NotNull String getUnit();
|
||||
}
|
||||
|
||||
@@ -16,11 +16,21 @@
|
||||
package com.intellij.build.events;
|
||||
|
||||
import com.intellij.build.BuildDescriptor;
|
||||
import com.intellij.build.BuildViewSettingsProvider;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@ApiStatus.NonExtendable
|
||||
public interface StartBuildEvent extends StartEvent {
|
||||
|
||||
@NotNull BuildDescriptor getBuildDescriptor();
|
||||
|
||||
@ApiStatus.Experimental
|
||||
default @Nullable BuildViewSettingsProvider getBuildViewSettings() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,4 +19,5 @@ package com.intellij.build.events;
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
public interface StartEvent extends BuildEvent {
|
||||
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ jvm_library(
|
||||
"//jps/model-impl",
|
||||
"//platform/analysis-impl",
|
||||
"//platform/structure-view-impl:structureView-impl",
|
||||
"@lib//:commons-lang3",
|
||||
"@lib//:commons-logging",
|
||||
"//platform/diff-impl",
|
||||
"//platform/built-in-server-api:builtInServer",
|
||||
|
||||
@@ -66,8 +66,6 @@ c:com.intellij.build.BuildView
|
||||
c:com.intellij.build.BuildViewManager
|
||||
- com.intellij.build.AbstractViewManager
|
||||
- *s:createBuildProgress(com.intellij.openapi.project.Project):com.intellij.build.progress.BuildProgress
|
||||
*:com.intellij.build.BuildViewSettingsProvider
|
||||
- a:isExecutionViewHidden():Z
|
||||
c:com.intellij.build.DefaultBuildDescriptor
|
||||
- com.intellij.build.BuildDescriptor
|
||||
- *:getActions():java.util.List
|
||||
@@ -89,29 +87,6 @@ c:com.intellij.build.ExecutionNode
|
||||
c:com.intellij.build.SyncViewManager
|
||||
- com.intellij.build.AbstractViewManager
|
||||
- *s:createBuildProgress(com.intellij.openapi.project.Project):com.intellij.build.progress.BuildProgress
|
||||
*:com.intellij.build.events.BuildEventPresentationData
|
||||
- a:consoleToolbarActions():com.intellij.openapi.actionSystem.ActionGroup
|
||||
- a:getExecutionConsole():com.intellij.execution.ui.ExecutionConsole
|
||||
- a:getNodeIcon():javax.swing.Icon
|
||||
*:com.intellij.build.events.PresentableBuildEvent
|
||||
- com.intellij.build.events.BuildEvent
|
||||
- a:getPresentationData():com.intellij.build.events.BuildEventPresentationData
|
||||
*f:com.intellij.build.events.impl.BuildIssueEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.BuildIssueEvent
|
||||
- <init>(java.lang.Object,com.intellij.build.issue.BuildIssue,com.intellij.build.events.MessageEvent$Kind):V
|
||||
- getDescription():java.lang.String
|
||||
- getGroup():java.lang.String
|
||||
- getIssue():com.intellij.build.issue.BuildIssue
|
||||
- getKind():com.intellij.build.events.MessageEvent$Kind
|
||||
- getNavigatable(com.intellij.openapi.project.Project):com.intellij.pom.Navigatable
|
||||
- getResult():com.intellij.build.events.MessageEventResult
|
||||
f:com.intellij.build.events.impl.StartBuildEventImpl
|
||||
- com.intellij.build.events.impl.StartEventImpl
|
||||
- com.intellij.build.events.StartBuildEvent
|
||||
- *:getBuildDescriptor():com.intellij.build.DefaultBuildDescriptor
|
||||
- *:getBuildViewSettingsProvider():com.intellij.build.BuildViewSettingsProvider
|
||||
- *:withBuildViewSettingsProvider(com.intellij.build.BuildViewSettingsProvider):com.intellij.build.events.impl.StartBuildEventImpl
|
||||
*f:com.intellij.build.issue.quickfix.OpenFileQuickFix
|
||||
- com.intellij.build.issue.BuildIssueQuickFix
|
||||
- *sf:Companion:com.intellij.build.issue.quickfix.OpenFileQuickFix$Companion
|
||||
@@ -137,14 +112,20 @@ c:com.intellij.build.output.BuildOutputInstantReaderImpl
|
||||
- a:fileMessage(java.lang.String,java.lang.String,com.intellij.build.events.MessageEvent$Kind,com.intellij.build.FilePosition):com.intellij.build.progress.BuildProgress
|
||||
- a:finish():com.intellij.build.progress.BuildProgress
|
||||
- a:finish(J):com.intellij.build.progress.BuildProgress
|
||||
- a:finish(J,java.lang.String,com.intellij.build.events.EventResult):com.intellij.build.progress.BuildProgress
|
||||
- a:finish(J,Z,java.lang.String):com.intellij.build.progress.BuildProgress
|
||||
- a:finish(com.intellij.build.events.EventResult):com.intellij.build.progress.BuildProgress
|
||||
- a:finish(java.lang.String,com.intellij.build.events.EventResult):com.intellij.build.progress.BuildProgress
|
||||
- a:finish(Z):com.intellij.build.progress.BuildProgress
|
||||
- a:getId():java.lang.Object
|
||||
- a:message(java.lang.String,java.lang.String,com.intellij.build.events.MessageEvent$Kind,com.intellij.pom.Navigatable):com.intellij.build.progress.BuildProgress
|
||||
- a:output(java.lang.String,Z):com.intellij.build.progress.BuildProgress
|
||||
- a:output(java.lang.String,com.intellij.execution.process.ProcessOutputType):com.intellij.build.progress.BuildProgress
|
||||
- output(java.lang.String,Z):com.intellij.build.progress.BuildProgress
|
||||
- a:presentable(java.lang.String,com.intellij.build.events.BuildEventPresentationData):com.intellij.build.progress.BuildProgress
|
||||
- a:progress(java.lang.String):com.intellij.build.progress.BuildProgress
|
||||
- a:progress(java.lang.String,J,J,java.lang.String):com.intellij.build.progress.BuildProgress
|
||||
- a:start(com.intellij.build.progress.BuildProgressDescriptor):com.intellij.build.progress.BuildProgress
|
||||
- a:start(java.lang.String,com.intellij.build.progress.BuildProgressDescriptor):com.intellij.build.progress.BuildProgress
|
||||
- a:startChildProgress(java.lang.String):com.intellij.build.progress.BuildProgress
|
||||
*:com.intellij.build.progress.BuildProgressDescriptor
|
||||
- a:getBuildDescriptor():com.intellij.build.BuildDescriptor
|
||||
|
||||
@@ -1074,18 +1074,6 @@ c:com.intellij.build.SyncViewManager
|
||||
- com.intellij.build.AbstractViewManager
|
||||
- <init>(com.intellij.openapi.project.Project):V
|
||||
- getViewName():java.lang.String
|
||||
a:com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.BuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String):V
|
||||
- getDescription():java.lang.String
|
||||
- getEventTime():J
|
||||
- getHint():java.lang.String
|
||||
- getId():java.lang.Object
|
||||
- getMessage():java.lang.String
|
||||
- getParentId():java.lang.Object
|
||||
- setDescription(java.lang.String):V
|
||||
- setHint(java.lang.String):V
|
||||
- setParentId(java.lang.Object):V
|
||||
f:com.intellij.build.events.impl.DerivedResultImpl
|
||||
- com.intellij.build.events.DerivedResult
|
||||
- <init>():V
|
||||
@@ -1113,75 +1101,9 @@ c:com.intellij.build.events.impl.FailureResultImpl
|
||||
- <init>(java.lang.Throwable):V
|
||||
- <init>(java.util.List):V
|
||||
- getFailures():java.util.List
|
||||
c:com.intellij.build.events.impl.FileDownloadEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.ProgressBuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String,J,J,java.lang.String,Z,java.lang.String):V
|
||||
- getDownloadPath():java.lang.String
|
||||
- getProgress():J
|
||||
- getTotal():J
|
||||
- getUnit():java.lang.String
|
||||
- isFirstInGroup():Z
|
||||
c:com.intellij.build.events.impl.FileDownloadedEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String,J,java.lang.String):V
|
||||
- getDownloadPath():java.lang.String
|
||||
- getDuration():J
|
||||
c:com.intellij.build.events.impl.FileMessageEventImpl
|
||||
- com.intellij.build.events.impl.MessageEventImpl
|
||||
- com.intellij.build.events.FileMessageEvent
|
||||
- <init>(java.lang.Object,com.intellij.build.events.MessageEvent$Kind,java.lang.String,java.lang.String,java.lang.String,com.intellij.build.FilePosition):V
|
||||
- equals(java.lang.Object):Z
|
||||
- getFilePosition():com.intellij.build.FilePosition
|
||||
- getHint():java.lang.String
|
||||
- getNavigatable(com.intellij.openapi.project.Project):com.intellij.pom.Navigatable
|
||||
- getResult():com.intellij.build.events.FileMessageEventResult
|
||||
- hashCode():I
|
||||
f:com.intellij.build.events.impl.FinishBuildEventImpl
|
||||
- com.intellij.build.events.impl.FinishEventImpl
|
||||
- com.intellij.build.events.FinishBuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String,com.intellij.build.events.EventResult):V
|
||||
c:com.intellij.build.events.impl.FinishEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.FinishEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String,com.intellij.build.events.EventResult):V
|
||||
- getResult():com.intellij.build.events.EventResult
|
||||
c:com.intellij.build.events.impl.MessageEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.MessageEvent
|
||||
- <init>(java.lang.Object,com.intellij.build.events.MessageEvent$Kind,java.lang.String,java.lang.String,java.lang.String):V
|
||||
- equals(java.lang.Object):Z
|
||||
- getGroup():java.lang.String
|
||||
- getKind():com.intellij.build.events.MessageEvent$Kind
|
||||
- getNavigatable(com.intellij.openapi.project.Project):com.intellij.pom.Navigatable
|
||||
- getResult():com.intellij.build.events.MessageEventResult
|
||||
- hashCode():I
|
||||
- f:setDescription(java.lang.String):V
|
||||
f:com.intellij.build.events.impl.OutputBuildEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.OutputBuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,java.lang.String,Z):V
|
||||
- <init>(java.lang.Object,java.lang.String,Z):V
|
||||
f:com.intellij.build.events.impl.ProgressBuildEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.ProgressBuildEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String,J,J,java.lang.String):V
|
||||
- getProgress():J
|
||||
- getTotal():J
|
||||
- getUnit():java.lang.String
|
||||
f:com.intellij.build.events.impl.SkippedResultImpl
|
||||
- com.intellij.build.events.SkippedResult
|
||||
- <init>():V
|
||||
f:com.intellij.build.events.impl.StartBuildEventImpl
|
||||
- com.intellij.build.events.impl.StartEventImpl
|
||||
- com.intellij.build.events.StartBuildEvent
|
||||
- <init>(com.intellij.build.BuildDescriptor,java.lang.String):V
|
||||
- withExecutionFilter(com.intellij.execution.filters.Filter):com.intellij.build.events.impl.StartBuildEventImpl
|
||||
- withRestartActions(com.intellij.openapi.actionSystem.AnAction[]):com.intellij.build.events.impl.StartBuildEventImpl
|
||||
c:com.intellij.build.events.impl.StartEventImpl
|
||||
- com.intellij.build.events.impl.AbstractBuildEvent
|
||||
- com.intellij.build.events.StartEvent
|
||||
- <init>(java.lang.Object,java.lang.Object,J,java.lang.String):V
|
||||
f:com.intellij.build.events.impl.SuccessResultImpl
|
||||
- com.intellij.build.events.SuccessResult
|
||||
- <init>():V
|
||||
|
||||
@@ -61,10 +61,6 @@ com.intellij.application.options.editor.AutoImportOptionsProvider
|
||||
- com.intellij.openapi.options.UnnamedConfigurable
|
||||
com.intellij.application.options.editor.CodeFoldingOptionsProvider
|
||||
- com.intellij.openapi.options.UnnamedConfigurable
|
||||
f:com.intellij.build.events.impl.OutputBuildEventImpl
|
||||
- <init>(java.lang.Object,java.lang.Object,java.lang.String,com.intellij.execution.process.ProcessOutputType):V
|
||||
- <init>(java.lang.Object,java.lang.String,com.intellij.execution.process.ProcessOutputType):V
|
||||
- getOutputType():com.intellij.execution.process.ProcessOutputType
|
||||
com.intellij.codeInsight.actions.DirectoryFormattingOptions
|
||||
- com.intellij.codeInsight.actions.ReformatFilesOptions
|
||||
- a:isIncludeSubdirectories():Z
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.jps.model.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.analysis.impl" exported="" />
|
||||
<orderEntry type="module" module-name="intellij.platform.structureView.impl" />
|
||||
<orderEntry type="library" name="commons-lang3" level="project" />
|
||||
<orderEntry type="library" name="commons-logging" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.diff.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.builtInServer" />
|
||||
|
||||
@@ -4,7 +4,6 @@ package com.intellij.build;
|
||||
import com.intellij.build.events.BuildEvent;
|
||||
import com.intellij.build.events.OutputBuildEvent;
|
||||
import com.intellij.build.events.StartBuildEvent;
|
||||
import com.intellij.build.events.impl.StartBuildEventImpl;
|
||||
import com.intellij.build.process.BuildProcessHandler;
|
||||
import com.intellij.execution.actions.StopAction;
|
||||
import com.intellij.execution.actions.StopProcessAction;
|
||||
@@ -160,9 +159,7 @@ public class BuildView extends CompositeView<ExecutionConsole>
|
||||
return;
|
||||
}
|
||||
|
||||
if (startBuildEvent instanceof StartBuildEventImpl) {
|
||||
myViewSettingsProvider = ((StartBuildEventImpl)startBuildEvent).getBuildViewSettingsProvider();
|
||||
}
|
||||
myViewSettingsProvider = startBuildEvent.getBuildViewSettings();
|
||||
if (myViewSettingsProvider == null) {
|
||||
myViewSettingsProvider = () -> false;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build;
|
||||
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.progress.BuildProgress;
|
||||
import com.intellij.build.progress.BuildProgressDescriptor;
|
||||
import com.intellij.build.progress.BuildRootProgressImpl;
|
||||
@@ -26,6 +27,9 @@ public class BuildViewManager extends AbstractViewManager {
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public static BuildProgress<BuildProgressDescriptor> createBuildProgress(@NotNull Project project) {
|
||||
return new BuildRootProgressImpl(project.getService(BuildViewManager.class));
|
||||
return new BuildRootProgressImpl(
|
||||
BuildEvents.getInstance(),
|
||||
project.getService(BuildViewManager.class)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.build;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public interface BuildViewSettingsProvider {
|
||||
boolean isExecutionViewHidden();
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build;
|
||||
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.progress.BuildProgress;
|
||||
import com.intellij.build.progress.BuildProgressDescriptor;
|
||||
import com.intellij.build.progress.BuildRootProgressImpl;
|
||||
@@ -24,6 +25,9 @@ public class SyncViewManager extends AbstractViewManager {
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public static BuildProgress<BuildProgressDescriptor> createBuildProgress(@NotNull Project project) {
|
||||
return new BuildRootProgressImpl(project.getService(SyncViewManager.class));
|
||||
return new BuildRootProgressImpl(
|
||||
BuildEvents.getInstance(),
|
||||
project.getService(SyncViewManager.class)
|
||||
);
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.BuildIssueEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.events.impl.BuildIssueEventImpl
|
||||
import com.intellij.build.issue.BuildIssue
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class BuildIssueEventBuilderImpl : BuildIssueEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var hint: @Hint String? = null
|
||||
|
||||
private var kind: MessageEvent.Kind? = null
|
||||
|
||||
private var issue: BuildIssue? = null
|
||||
|
||||
override fun withId(id: Any?): BuildIssueEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): BuildIssueEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): BuildIssueEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withHint(hint: @Hint String?): BuildIssueEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withKind(kind: MessageEvent.Kind): BuildIssueEventBuilderImpl =
|
||||
apply { this.kind = kind }
|
||||
|
||||
override fun withIssue(issue: BuildIssue): BuildIssueEventBuilderImpl =
|
||||
apply { this.issue = issue }
|
||||
|
||||
override fun build(): BuildIssueEventImpl {
|
||||
return BuildIssueEventImpl(
|
||||
id,
|
||||
parentId,
|
||||
time,
|
||||
hint,
|
||||
kind ?: throw IllegalStateException("The BuildIssueEvent's 'kind' property should be defined"),
|
||||
issue ?: throw IllegalStateException("The BuildIssueEvent's 'issue' property should be defined")
|
||||
)
|
||||
}
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.FileDownloadEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.FileDownloadEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class FileDownloadEventBuilderImpl : FileDownloadEventBuilder {
|
||||
|
||||
private var startId: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var total: Long? = null
|
||||
private var progress: Long? = null
|
||||
private var unit: String? = null
|
||||
|
||||
private var isFirstInGroup: Boolean? = null
|
||||
private var downloadPath: String? = null
|
||||
|
||||
override fun withStartId(startId: Any): FileDownloadEventBuilderImpl =
|
||||
apply { this.startId = startId }
|
||||
|
||||
override fun withParentId(parentId: Any?): FileDownloadEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): FileDownloadEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): FileDownloadEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): FileDownloadEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): FileDownloadEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withTotal(total: Long?): FileDownloadEventBuilderImpl =
|
||||
apply { this.total = total }
|
||||
|
||||
override fun withProgress(progress: Long?): FileDownloadEventBuilderImpl =
|
||||
apply { this.progress = progress }
|
||||
|
||||
override fun withUnit(unit: String?): FileDownloadEventBuilderImpl =
|
||||
apply { this.unit = unit }
|
||||
|
||||
override fun withFirstInGroup(isFirstInGroup: Boolean): FileDownloadEventBuilderImpl =
|
||||
apply { this.isFirstInGroup = isFirstInGroup }
|
||||
|
||||
override fun withDownloadPath(downloadPath: String): FileDownloadEventBuilderImpl =
|
||||
apply { this.downloadPath = downloadPath }
|
||||
|
||||
override fun build(): FileDownloadEventImpl =
|
||||
FileDownloadEventImpl(
|
||||
startId ?: throw IllegalStateException("The FileDownloadEvent's 'startId' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The FileDownloadEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
total,
|
||||
progress,
|
||||
unit,
|
||||
isFirstInGroup ?: throw IllegalStateException("The FileDownloadEvent's 'isFirstInGroup' property should be defined"),
|
||||
downloadPath ?: throw IllegalStateException("The FileDownloadEvent's 'downloadPath' property should be defined")
|
||||
)
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.FileDownloadedEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.FileDownloadedEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class FileDownloadedEventBuilderImpl : FileDownloadedEventBuilder {
|
||||
|
||||
private var startId: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var duration: Long? = null
|
||||
private var downloadPath: String? = null
|
||||
|
||||
override fun withStartId(startId: Any): FileDownloadedEventBuilderImpl =
|
||||
apply { this.startId = startId }
|
||||
|
||||
override fun withParentId(parentId: Any?): FileDownloadedEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): FileDownloadedEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): FileDownloadedEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): FileDownloadedEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): FileDownloadedEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withDuration(duration: Long): FileDownloadedEventBuilderImpl =
|
||||
apply { this.duration = duration }
|
||||
|
||||
override fun withDownloadPath(downloadPath: String): FileDownloadedEventBuilderImpl =
|
||||
apply { this.downloadPath = downloadPath }
|
||||
|
||||
override fun build(): FileDownloadedEventImpl =
|
||||
FileDownloadedEventImpl(
|
||||
startId ?: throw IllegalStateException("The FileDownloadedEvent's 'startId' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The FileDownloadedEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
duration ?: throw IllegalStateException("The FileDownloadedEvent's 'duration' property should be defined"),
|
||||
downloadPath ?: throw IllegalStateException("The FileDownloadedEvent's 'downloadPath' property should be defined")
|
||||
)
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.FilePosition
|
||||
import com.intellij.build.eventBuilders.FileMessageEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.*
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.events.impl.FileMessageEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class FileMessageEventBuilderImpl : FileMessageEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var kind: MessageEvent.Kind? = null
|
||||
private var group: @Title String? = null
|
||||
|
||||
private var filePosition: FilePosition? = null
|
||||
|
||||
override fun withId(id: Any?): FileMessageEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): FileMessageEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): FileMessageEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): FileMessageEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): FileMessageEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): FileMessageEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withKind(kind: MessageEvent.Kind): FileMessageEventBuilderImpl =
|
||||
apply { this.kind = kind }
|
||||
|
||||
override fun withGroup(group: @Title String?): FileMessageEventBuilderImpl =
|
||||
apply { this.group = group }
|
||||
|
||||
override fun withFilePosition(filePosition: FilePosition): FileMessageEventBuilderImpl =
|
||||
apply { this.filePosition = filePosition }
|
||||
|
||||
override fun build(): FileMessageEventImpl =
|
||||
FileMessageEventImpl(
|
||||
id,
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The FileMessageEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
kind ?: throw IllegalStateException("The FileMessageEvent's 'kind' property should be defined"),
|
||||
group,
|
||||
filePosition ?: throw IllegalStateException("The FileMessageEvent's 'filePosition' property should be defined")
|
||||
)
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.FinishBuildEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.EventResult
|
||||
import com.intellij.build.events.impl.FinishBuildEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class FinishBuildEventBuilderImpl : FinishBuildEventBuilder {
|
||||
|
||||
private var startBuildId: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var result: EventResult? = null
|
||||
|
||||
override fun withStartBuildId(startBuildId: Any): FinishBuildEventBuilderImpl =
|
||||
apply { this.startBuildId = startBuildId }
|
||||
|
||||
override fun withParentId(parentId: Any?): FinishBuildEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): FinishBuildEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): FinishBuildEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): FinishBuildEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): FinishBuildEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withResult(result: EventResult): FinishBuildEventBuilderImpl =
|
||||
apply { this.result = result }
|
||||
|
||||
override fun build(): FinishBuildEventImpl =
|
||||
FinishBuildEventImpl(
|
||||
startBuildId ?: throw IllegalStateException("The FinishBuildEvent's 'startBuildId' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The FinishBuildEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
result ?: throw IllegalStateException("The FinishBuildEvent's 'result' property should be defined")
|
||||
)
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.FinishEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.EventResult
|
||||
import com.intellij.build.events.impl.FinishEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class FinishEventBuilderImpl : FinishEventBuilder {
|
||||
|
||||
private var startId: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var result: EventResult? = null
|
||||
|
||||
override fun withStartId(startId: Any): FinishEventBuilderImpl =
|
||||
apply { this.startId = startId }
|
||||
|
||||
override fun withParentId(parentId: Any?): FinishEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): FinishEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): FinishEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): FinishEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): FinishEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withResult(result: EventResult): FinishEventBuilderImpl =
|
||||
apply { this.result = result }
|
||||
|
||||
override fun build(): FinishEventImpl =
|
||||
FinishEventImpl(
|
||||
startId ?: throw IllegalStateException("The FinishEvent's 'startId' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The FinishEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
result ?: throw IllegalStateException("The FinishEvent's 'result' property should be defined")
|
||||
)
|
||||
}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.MessageEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.BuildEventsNls.Title
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.events.impl.MessageEventImpl
|
||||
import com.intellij.pom.Navigatable
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class MessageEventBuilderImpl : MessageEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var kind: MessageEvent.Kind? = null
|
||||
private var group: @Title String? = null
|
||||
private var navigatable: Navigatable? = null
|
||||
|
||||
override fun withId(id: Any?): MessageEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): MessageEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): MessageEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): MessageEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): MessageEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): MessageEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withKind(kind: MessageEvent.Kind): MessageEventBuilderImpl =
|
||||
apply { this.kind = kind }
|
||||
|
||||
override fun withGroup(group: @Title String?): MessageEventBuilderImpl =
|
||||
apply { this.group = group }
|
||||
|
||||
override fun withNavigatable(navigatable: Navigatable?): MessageEventBuilderImpl =
|
||||
apply { this.navigatable = navigatable }
|
||||
|
||||
override fun build(): MessageEventImpl =
|
||||
MessageEventImpl(
|
||||
id,
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The MessageEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
kind ?: throw IllegalStateException("The MessageEvent's 'kind' property should be defined"),
|
||||
group,
|
||||
navigatable
|
||||
)
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.OutputBuildEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.OutputBuildEventImpl
|
||||
import com.intellij.execution.process.ProcessOutputType
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class OutputBuildEventBuilderImpl : OutputBuildEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var outputType: ProcessOutputType? = null
|
||||
|
||||
override fun withId(id: Any?): OutputBuildEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): OutputBuildEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): OutputBuildEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): OutputBuildEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): OutputBuildEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): OutputBuildEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withOutputType(outputType: ProcessOutputType?): OutputBuildEventBuilderImpl =
|
||||
apply { this.outputType = outputType }
|
||||
|
||||
override fun build(): OutputBuildEventImpl =
|
||||
OutputBuildEventImpl(
|
||||
id,
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The OutputBuildEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
outputType
|
||||
)
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.PresentableBuildEventBuilder
|
||||
import com.intellij.build.events.BuildEventPresentationData
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.PresentableBuildEvent
|
||||
import com.intellij.build.events.impl.PresentableBuildEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class PresentableBuildEventBuilderImpl : PresentableBuildEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var presentationData: BuildEventPresentationData? = null
|
||||
|
||||
override fun withId(id: Any?): PresentableBuildEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): PresentableBuildEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): PresentableBuildEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): PresentableBuildEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): PresentableBuildEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): PresentableBuildEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withPresentationData(presentationData: BuildEventPresentationData): PresentableBuildEventBuilderImpl =
|
||||
apply { this.presentationData = presentationData }
|
||||
|
||||
override fun build(): PresentableBuildEvent {
|
||||
return PresentableBuildEventImpl(
|
||||
id,
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The PresentableBuildEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
presentationData ?: throw IllegalStateException("The PresentableBuildEvent's 'presentationData' property should be defined")
|
||||
)
|
||||
}
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.ProgressBuildEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.ProgressBuildEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class ProgressBuildEventBuilderImpl : ProgressBuildEventBuilder {
|
||||
|
||||
private var startId: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var total: Long? = null
|
||||
private var progress: Long? = null
|
||||
private var unit: String? = null
|
||||
|
||||
override fun withStartId(startId: Any): ProgressBuildEventBuilderImpl =
|
||||
apply { this.startId = startId }
|
||||
|
||||
override fun withParentId(parentId: Any?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): ProgressBuildEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withTotal(total: Long?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.total = total }
|
||||
|
||||
override fun withProgress(progress: Long?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.progress = progress }
|
||||
|
||||
override fun withUnit(unit: String?): ProgressBuildEventBuilderImpl =
|
||||
apply { this.unit = unit }
|
||||
|
||||
override fun build(): ProgressBuildEventImpl =
|
||||
ProgressBuildEventImpl(
|
||||
startId ?: throw IllegalStateException("The ProgressBuildEvent's 'startId' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The ProgressBuildEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
total,
|
||||
progress,
|
||||
unit
|
||||
)
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.BuildDescriptor
|
||||
import com.intellij.build.BuildViewSettingsProvider
|
||||
import com.intellij.build.eventBuilders.StartBuildEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.StartBuildEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class StartBuildEventBuilderImpl : StartBuildEventBuilder {
|
||||
|
||||
private var parentId: Any? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
private var buildDescriptor: BuildDescriptor? = null
|
||||
private var buildViewSettings: BuildViewSettingsProvider? = null
|
||||
|
||||
override fun withParentId(parentId: Any?): StartBuildEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withMessage(message: @Message String): StartBuildEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): StartBuildEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): StartBuildEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun withBuildDescriptor(buildDescriptor: BuildDescriptor): StartBuildEventBuilderImpl =
|
||||
apply { this.buildDescriptor = buildDescriptor }
|
||||
|
||||
override fun withBuildViewSettings(buildViewSettings: BuildViewSettingsProvider?): StartBuildEventBuilderImpl =
|
||||
apply { this.buildViewSettings = buildViewSettings }
|
||||
|
||||
override fun build(): StartBuildEventImpl =
|
||||
StartBuildEventImpl(
|
||||
parentId,
|
||||
message ?: throw IllegalStateException("The StartBuildEvent's 'message' property should be defined"),
|
||||
hint,
|
||||
description,
|
||||
buildDescriptor ?: throw IllegalStateException("The StartBuildEvent's 'buildDescriptor' property should be defined"),
|
||||
buildViewSettings
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.eventBuilders.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.StartEventBuilder
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.impl.StartEventImpl
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class StartEventBuilderImpl : StartEventBuilder {
|
||||
|
||||
private var id: Any? = null
|
||||
private var parentId: Any? = null
|
||||
private var time: Long? = null
|
||||
private var message: @Message String? = null
|
||||
private var hint: @Hint String? = null
|
||||
private var description: @Description String? = null
|
||||
|
||||
override fun withId(id: Any): StartEventBuilderImpl =
|
||||
apply { this.id = id }
|
||||
|
||||
override fun withParentId(parentId: Any?): StartEventBuilderImpl =
|
||||
apply { this.parentId = parentId }
|
||||
|
||||
override fun withTime(time: Long?): StartEventBuilderImpl =
|
||||
apply { this.time = time }
|
||||
|
||||
override fun withMessage(message: @Message String): StartEventBuilderImpl =
|
||||
apply { this.message = message }
|
||||
|
||||
override fun withHint(hint: @Hint String?): StartEventBuilderImpl =
|
||||
apply { this.hint = hint }
|
||||
|
||||
override fun withDescription(description: @Description String?): StartEventBuilderImpl =
|
||||
apply { this.description = description }
|
||||
|
||||
override fun build(): StartEventImpl =
|
||||
StartEventImpl(
|
||||
id ?: throw IllegalStateException("The StartEvent's 'id' property should be defined"),
|
||||
parentId,
|
||||
time,
|
||||
message ?: throw IllegalStateException("The StartEvent's 'buildDescriptor' property should be defined"),
|
||||
hint,
|
||||
description
|
||||
)
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.build.events;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
/**
|
||||
* Implement this interface in the {@link BuildEvent} to customize its appearance on Build tool window.
|
||||
*
|
||||
* @see BuildEventPresentationData
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public interface PresentableBuildEvent extends BuildEvent {
|
||||
BuildEventPresentationData getPresentationData();
|
||||
}
|
||||
@@ -2,33 +2,62 @@
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEvent;
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public abstract class AbstractBuildEvent implements BuildEvent {
|
||||
|
||||
private final @NotNull Object myEventId;
|
||||
private final @NotNull Object myId;
|
||||
private @Nullable Object myParentId;
|
||||
private final long myEventTime;
|
||||
private final @NotNull @BuildEventsNls.Message String myMessage;
|
||||
private @Nullable @BuildEventsNls.Hint String myHint;
|
||||
private @Nullable @BuildEventsNls.Description String myDescription;
|
||||
private final @NotNull Long myTime;
|
||||
private final @NotNull @Message String myMessage;
|
||||
private @Nullable @Hint String myHint;
|
||||
private @Nullable @Description String myDescription;
|
||||
|
||||
public AbstractBuildEvent(@NotNull Object eventId, @Nullable Object parentId, long eventTime, @NotNull @BuildEventsNls.Message String message) {
|
||||
myEventId = eventId;
|
||||
@Internal
|
||||
protected AbstractBuildEvent(
|
||||
@Nullable Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description
|
||||
) {
|
||||
myId = notNull(id, () -> new Object());
|
||||
myParentId = parentId;
|
||||
myEventTime = eventTime;
|
||||
myTime = notNull(time, () -> System.currentTimeMillis());
|
||||
myMessage = message;
|
||||
myHint = hint;
|
||||
myDescription = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use instead {@link AbstractBuildEvent} constructor with hint and description parameters.
|
||||
*/
|
||||
@Deprecated
|
||||
public AbstractBuildEvent(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long time,
|
||||
@NotNull @Message String message
|
||||
) {
|
||||
this(eventId, parentId, time, message, null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Object getId() {
|
||||
return myEventId;
|
||||
return myId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -42,11 +71,11 @@ public abstract class AbstractBuildEvent implements BuildEvent {
|
||||
|
||||
@Override
|
||||
public long getEventTime() {
|
||||
return myEventTime;
|
||||
return myTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull @BuildEventsNls.Message String getMessage() {
|
||||
public @NotNull @Message String getMessage() {
|
||||
return myMessage;
|
||||
}
|
||||
|
||||
@@ -55,25 +84,25 @@ public abstract class AbstractBuildEvent implements BuildEvent {
|
||||
return myHint;
|
||||
}
|
||||
|
||||
public void setHint(@Nullable @BuildEventsNls.Hint String hint) {
|
||||
public void setHint(@Nullable @Hint String hint) {
|
||||
myHint = hint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable @BuildEventsNls.Description String getDescription() {
|
||||
public @Nullable @Description String getDescription() {
|
||||
return myDescription;
|
||||
}
|
||||
|
||||
public void setDescription(@Nullable @BuildEventsNls.Description String description) {
|
||||
public void setDescription(@Nullable @Description String description) {
|
||||
myDescription = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNls String toString() {
|
||||
return getClass().getSimpleName() + "{" +
|
||||
"myEventId=" + myEventId +
|
||||
"myEventId=" + myId +
|
||||
", myParentId=" + myParentId +
|
||||
", myEventTime=" + myEventTime +
|
||||
", myTime=" + myTime +
|
||||
", myMessage='" + myMessage + '\'' +
|
||||
", myHint='" + myHint + '\'' +
|
||||
", myDescription='" + myDescription + '\'' +
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl
|
||||
|
||||
import com.intellij.build.eventBuilders.impl.*
|
||||
import com.intellij.build.events.BuildEvents
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class BuildEventsImpl : BuildEvents {
|
||||
|
||||
override fun startBuild(): StartBuildEventBuilderImpl = StartBuildEventBuilderImpl()
|
||||
|
||||
override fun finishBuild(): FinishBuildEventBuilderImpl = FinishBuildEventBuilderImpl()
|
||||
|
||||
override fun start(): StartEventBuilderImpl = StartEventBuilderImpl()
|
||||
|
||||
override fun finish(): FinishEventBuilderImpl = FinishEventBuilderImpl()
|
||||
|
||||
override fun output(): OutputBuildEventBuilderImpl = OutputBuildEventBuilderImpl()
|
||||
|
||||
override fun progress(): ProgressBuildEventBuilderImpl = ProgressBuildEventBuilderImpl()
|
||||
|
||||
override fun message(): MessageEventBuilderImpl = MessageEventBuilderImpl()
|
||||
|
||||
override fun fileMessage(): FileMessageEventBuilderImpl = FileMessageEventBuilderImpl()
|
||||
|
||||
override fun buildIssue(): BuildIssueEventBuilderImpl = BuildIssueEventBuilderImpl()
|
||||
|
||||
override fun fileDownload(): FileDownloadEventBuilderImpl = FileDownloadEventBuilderImpl()
|
||||
|
||||
override fun fileDownloaded(): FileDownloadedEventBuilderImpl = FileDownloadedEventBuilderImpl()
|
||||
|
||||
override fun presentable(): PresentableBuildEventBuilderImpl = PresentableBuildEventBuilderImpl()
|
||||
}
|
||||
@@ -1,35 +1,52 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildIssueEvent;
|
||||
import com.intellij.build.events.MessageEventResult;
|
||||
import com.intellij.build.issue.BuildIssue;
|
||||
import com.intellij.lang.LangBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@Internal
|
||||
public final class BuildIssueEventImpl extends AbstractBuildEvent implements BuildIssueEvent {
|
||||
private final BuildIssue myIssue;
|
||||
private final Kind myKind;
|
||||
|
||||
public BuildIssueEventImpl(@NotNull Object parentId,
|
||||
@NotNull BuildIssue buildIssue,
|
||||
@NotNull Kind kind) {
|
||||
super(new Object(), parentId, System.currentTimeMillis(), buildIssue.getTitle());
|
||||
private final @NotNull Kind myKind;
|
||||
private final @NotNull BuildIssue myIssue;
|
||||
|
||||
@Internal
|
||||
public BuildIssueEventImpl(
|
||||
@Nullable Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@Nullable @BuildEventsNls.Hint String hint,
|
||||
@NotNull Kind kind,
|
||||
@NotNull BuildIssue buildIssue
|
||||
) {
|
||||
super(id, parentId, time, buildIssue.getTitle(), hint, buildIssue.getDescription());
|
||||
myIssue = buildIssue;
|
||||
myKind = kind;
|
||||
}
|
||||
|
||||
public BuildIssueEventImpl(
|
||||
@NotNull Object parentId,
|
||||
@NotNull BuildIssue buildIssue,
|
||||
@NotNull Kind kind
|
||||
) {
|
||||
this(null, parentId, null, null, kind, buildIssue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDescription() {
|
||||
return myIssue.getDescription();
|
||||
assert super.getDescription() != null;
|
||||
return super.getDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,7 +70,7 @@ public final class BuildIssueEventImpl extends AbstractBuildEvent implements Bui
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageEventResult getResult() {
|
||||
public @NotNull MessageEventResult getResult() {
|
||||
return new MessageEventResult() {
|
||||
@Override
|
||||
public Kind getKind() {
|
||||
|
||||
@@ -1,36 +1,69 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.ProgressBuildEvent;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.FileDownloadEvent;
|
||||
import com.intellij.openapi.util.NlsContexts.ProgressText;
|
||||
import com.intellij.openapi.util.NlsContexts.ProgressTitle;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class FileDownloadEventImpl extends AbstractBuildEvent implements ProgressBuildEvent {
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
@Internal
|
||||
public class FileDownloadEventImpl extends AbstractBuildEvent implements FileDownloadEvent {
|
||||
|
||||
private final @NotNull Long myTotal;
|
||||
private final @NotNull Long myProgress;
|
||||
private final @NotNull String myUnit;
|
||||
|
||||
private final long myTotal;
|
||||
private final long myProgress;
|
||||
private final @NotNull @NlsSafe String myUnit;
|
||||
private final boolean myFirstInGroup;
|
||||
private final @NotNull String myDownloadPath;
|
||||
|
||||
public FileDownloadEventImpl(@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull String message,
|
||||
long total,
|
||||
long progress,
|
||||
@NotNull String unit,
|
||||
boolean firstInGroup,
|
||||
@NotNull String downloadPath) {
|
||||
super(eventId, parentId, eventTime, message);
|
||||
myTotal = total;
|
||||
myProgress = progress;
|
||||
myUnit = unit;
|
||||
@Internal
|
||||
public FileDownloadEventImpl(
|
||||
@NotNull Object startId,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @ProgressTitle @ProgressText @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@Nullable Long total,
|
||||
@Nullable Long progress,
|
||||
@Nullable String unit,
|
||||
boolean firstInGroup,
|
||||
@NotNull String downloadPath
|
||||
) {
|
||||
super(startId, parentId, time, message, hint, description);
|
||||
myTotal = notNull(total, -1L);
|
||||
myProgress = notNull(progress, -1L);
|
||||
myUnit = notNull(unit, "");
|
||||
myFirstInGroup = firstInGroup;
|
||||
myDownloadPath = downloadPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#fileDownload()} instead
|
||||
*/
|
||||
@Deprecated
|
||||
public FileDownloadEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @ProgressTitle @ProgressText @Message String message,
|
||||
long total,
|
||||
long progress,
|
||||
@NotNull String unit,
|
||||
boolean firstInGroup,
|
||||
@NotNull String downloadPath
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null, total, progress, unit, firstInGroup, downloadPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTotal() {
|
||||
return myTotal;
|
||||
@@ -42,14 +75,16 @@ public class FileDownloadEventImpl extends AbstractBuildEvent implements Progres
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnit() {
|
||||
public @NotNull String getUnit() {
|
||||
return myUnit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFirstInGroup() {
|
||||
return myFirstInGroup;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDownloadPath() {
|
||||
return myDownloadPath;
|
||||
}
|
||||
|
||||
@@ -1,29 +1,58 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.FileDownloadedEvent;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class FileDownloadedEventImpl extends AbstractBuildEvent {
|
||||
@Internal
|
||||
public class FileDownloadedEventImpl extends AbstractBuildEvent implements FileDownloadedEvent {
|
||||
|
||||
private final long myDuration;
|
||||
private final @NotNull Long myDuration;
|
||||
private final @NotNull String myDownloadPath;
|
||||
|
||||
public FileDownloadedEventImpl(@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull String message,
|
||||
long duration,
|
||||
@NotNull String downloadPath) {
|
||||
super(eventId, parentId, eventTime, message);
|
||||
@Internal
|
||||
public FileDownloadedEventImpl(
|
||||
@NotNull Object startId,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull Long duration,
|
||||
@NotNull String downloadPath
|
||||
) {
|
||||
super(startId, parentId, time, message, hint, description);
|
||||
myDuration = duration;
|
||||
myDownloadPath = downloadPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#fileDownloaded()} instead
|
||||
*/
|
||||
@Deprecated
|
||||
public FileDownloadedEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @Message String message,
|
||||
long duration,
|
||||
@NotNull String downloadPath
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null, duration, downloadPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getDuration() {
|
||||
return myDuration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDownloadPath() {
|
||||
return myDownloadPath;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,15 @@ package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.FileNavigatable;
|
||||
import com.intellij.build.FilePosition;
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.BuildEventsNls.Title;
|
||||
import com.intellij.build.events.FileMessageEvent;
|
||||
import com.intellij.build.events.FileMessageEventResult;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -16,22 +20,44 @@ import java.util.Objects;
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public class FileMessageEventImpl extends MessageEventImpl implements FileMessageEvent {
|
||||
|
||||
private final FilePosition myFilePosition;
|
||||
private final @NotNull FilePosition myFilePosition;
|
||||
|
||||
public FileMessageEventImpl(@NotNull Object parentId,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @BuildEventsNls.Title String group,
|
||||
@NotNull @BuildEventsNls.Message String message,
|
||||
@Nullable @BuildEventsNls.Description String detailedMessage,
|
||||
@NotNull FilePosition filePosition) {
|
||||
super(parentId, kind, group, message, detailedMessage);
|
||||
@Internal
|
||||
public FileMessageEventImpl(
|
||||
@Nullable Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @Title String group,
|
||||
@NotNull FilePosition filePosition
|
||||
) {
|
||||
super(id, parentId, time, message, hint, description, kind, group, null);
|
||||
myFilePosition = filePosition;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link com.intellij.build.events.BuildEvents} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public FileMessageEventImpl(
|
||||
@NotNull Object parentId,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @Title String group,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Description String detailedMessage,
|
||||
@NotNull FilePosition filePosition
|
||||
) {
|
||||
this(null, parentId, null, message, null, detailedMessage, kind, group, filePosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileMessageEventResult getResult() {
|
||||
public @NotNull FileMessageEventResult getResult() {
|
||||
return new FileMessageEventResult() {
|
||||
@Override
|
||||
public FilePosition getFilePosition() {
|
||||
@@ -51,7 +77,7 @@ public class FileMessageEventImpl extends MessageEventImpl implements FileMessag
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilePosition getFilePosition() {
|
||||
public @NotNull FilePosition getFilePosition() {
|
||||
return myFilePosition;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,46 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.EventResult;
|
||||
import com.intellij.build.events.FinishBuildEvent;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public final class FinishBuildEventImpl extends FinishEventImpl implements FinishBuildEvent {
|
||||
|
||||
public FinishBuildEventImpl(@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @BuildEventsNls.Message String message,
|
||||
@NotNull EventResult result) {
|
||||
super(eventId, parentId, eventTime, message, result);
|
||||
@Internal
|
||||
public FinishBuildEventImpl(
|
||||
@NotNull Object startBuildId,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull EventResult result
|
||||
) {
|
||||
super(startBuildId, parentId, time, message, hint, description, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#finishBuild()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public FinishBuildEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @Message String message,
|
||||
@NotNull EventResult result
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null, result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,35 +15,67 @@
|
||||
*/
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.EventResult;
|
||||
import com.intellij.build.events.FinishEvent;
|
||||
import com.intellij.build.events.SuccessResult;
|
||||
import com.intellij.lang.LangBundle;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public class FinishEventImpl extends AbstractBuildEvent implements FinishEvent {
|
||||
|
||||
private final EventResult myResult;
|
||||
private final @NotNull EventResult myResult;
|
||||
|
||||
public FinishEventImpl(@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @BuildEventsNls.Message String message,
|
||||
@NotNull EventResult result) {
|
||||
super(eventId, parentId, eventTime, message);
|
||||
@Internal
|
||||
public FinishEventImpl(
|
||||
@NotNull Object startId,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull EventResult result
|
||||
) {
|
||||
super(startId, parentId, time, message, hint, description);
|
||||
myResult = result;
|
||||
if(myResult instanceof SuccessResult && ((SuccessResult)myResult).isUpToDate()) {
|
||||
setHint(LangBundle.message("build.event.message.up.to.date"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#finish()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public FinishEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @Message String message,
|
||||
@NotNull EventResult result
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null, result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventResult getResult() {
|
||||
public @Nullable String getHint() {
|
||||
if (super.getHint() != null) {
|
||||
return super.getHint();
|
||||
}
|
||||
if (myResult instanceof SuccessResult successResult && successResult.isUpToDate()) {
|
||||
return LangBundle.message("build.event.message.up.to.date");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull EventResult getResult() {
|
||||
return myResult;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,38 +1,68 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.BuildEventsNls.Title;
|
||||
import com.intellij.build.events.MessageEvent;
|
||||
import com.intellij.build.events.MessageEventResult;
|
||||
import com.intellij.lang.LangBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public class MessageEventImpl extends AbstractBuildEvent implements MessageEvent {
|
||||
|
||||
private final @NotNull Kind myKind;
|
||||
private final @NotNull @BuildEventsNls.Title String myGroup;
|
||||
private final @NotNull @Title String myGroup;
|
||||
private final @Nullable Navigatable myNavigatable;
|
||||
|
||||
public MessageEventImpl(@NotNull Object parentId,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @BuildEventsNls.Title String group,
|
||||
@NotNull @BuildEventsNls.Message String message,
|
||||
@Nullable @BuildEventsNls.Description String detailedMessage) {
|
||||
super(new Object(), parentId, System.currentTimeMillis(), message);
|
||||
@Internal
|
||||
public MessageEventImpl(
|
||||
@Nullable Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @Title String group,
|
||||
@Nullable Navigatable navigatable
|
||||
) {
|
||||
super(id, parentId, time, message, hint, description);
|
||||
myKind = kind;
|
||||
myGroup = group == null ? LangBundle.message("build.event.title.other.messages") : group;
|
||||
setDescription(detailedMessage);
|
||||
myGroup = notNull(group, () -> LangBundle.message("build.event.title.other.messages"));
|
||||
myNavigatable = navigatable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#message()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public MessageEventImpl(
|
||||
@NotNull Object parentId,
|
||||
@NotNull Kind kind,
|
||||
@Nullable @Title String group,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Description String detailedMessage
|
||||
) {
|
||||
this(null, parentId, null, message, null, detailedMessage, kind, group, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setDescription(@Nullable @BuildEventsNls.Description String description) {
|
||||
public final void setDescription(@Nullable @Description String description) {
|
||||
super.setDescription(description);
|
||||
}
|
||||
|
||||
@@ -48,11 +78,11 @@ public class MessageEventImpl extends AbstractBuildEvent implements MessageEvent
|
||||
|
||||
@Override
|
||||
public @Nullable Navigatable getNavigatable(@NotNull Project project) {
|
||||
return null;
|
||||
return myNavigatable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageEventResult getResult() {
|
||||
public @NotNull MessageEventResult getResult() {
|
||||
return new MessageEventResult() {
|
||||
@Override
|
||||
public Kind getKind() {
|
||||
|
||||
@@ -1,37 +1,83 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.OutputBuildEvent;
|
||||
import com.intellij.execution.process.ProcessOutputType;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
@Internal
|
||||
public final class OutputBuildEventImpl extends AbstractBuildEvent implements OutputBuildEvent {
|
||||
private final @NotNull ProcessOutputType myOutputType;
|
||||
|
||||
public OutputBuildEventImpl(@Nullable Object parentId, @NotNull @BuildEventsNls.Message String message, @NotNull ProcessOutputType outputType) {
|
||||
this(new Object(), parentId, message, outputType);
|
||||
}
|
||||
|
||||
public OutputBuildEventImpl(@NotNull Object eventId, @Nullable Object parentId, @NotNull @BuildEventsNls.Message String message, @NotNull ProcessOutputType outputType) {
|
||||
super(eventId, parentId, -1, message);
|
||||
myOutputType = outputType;
|
||||
@Internal
|
||||
public OutputBuildEventImpl(
|
||||
@Nullable Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@Nullable ProcessOutputType outputType
|
||||
) {
|
||||
super(id, parentId, time, message, hint, description);
|
||||
myOutputType = notNull(outputType, () -> ProcessOutputType.STDOUT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #OutputBuildEventImpl(Object, String, ProcessOutputType)} instead
|
||||
* @deprecated Use the {@link BuildEvents#output} event builder function instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public OutputBuildEventImpl(@Nullable Object parentId, @NotNull @BuildEventsNls.Message String message, boolean stdOut) {
|
||||
public OutputBuildEventImpl(
|
||||
@Nullable Object parentId,
|
||||
@NotNull @Message String message,
|
||||
@NotNull ProcessOutputType outputType
|
||||
) {
|
||||
this(null, parentId, null, message, null, null, outputType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use the {@link BuildEvents#output} event builder function instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public OutputBuildEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
@NotNull @Message String message,
|
||||
@NotNull ProcessOutputType outputType
|
||||
) {
|
||||
this(eventId, parentId, null, message, null, null, outputType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use the {@link BuildEvents#output} event builder function instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public OutputBuildEventImpl(
|
||||
@Nullable Object parentId,
|
||||
@NotNull @Message String message,
|
||||
boolean stdOut
|
||||
) {
|
||||
this(parentId, message, stdOut ? ProcessOutputType.STDOUT : ProcessOutputType.STDERR);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #OutputBuildEventImpl(Object, Object, String, ProcessOutputType)} instead
|
||||
* @deprecated Use the {@link BuildEvents#output} event builder function instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public OutputBuildEventImpl(@NotNull Object eventId, @Nullable Object parentId, @NotNull @BuildEventsNls.Message String message, boolean stdOut) {
|
||||
public OutputBuildEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
@NotNull @Message String message,
|
||||
boolean stdOut
|
||||
) {
|
||||
this(eventId, parentId, message, stdOut ? ProcessOutputType.STDOUT : ProcessOutputType.STDERR);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl
|
||||
|
||||
import com.intellij.build.events.BuildEventPresentationData
|
||||
import com.intellij.build.events.BuildEventsNls.Description
|
||||
import com.intellij.build.events.BuildEventsNls.Hint
|
||||
import com.intellij.build.events.BuildEventsNls.Message
|
||||
import com.intellij.build.events.PresentableBuildEvent
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
internal class PresentableBuildEventImpl(
|
||||
id: Any?,
|
||||
parentId: Any?,
|
||||
time: Long?,
|
||||
message: @Message String,
|
||||
hint: @Hint String?,
|
||||
description: @Description String?,
|
||||
private val presentableData: BuildEventPresentationData,
|
||||
) : AbstractBuildEvent(id, parentId, time, message, hint, description),
|
||||
PresentableBuildEvent {
|
||||
|
||||
override fun getPresentationData(): BuildEventPresentationData {
|
||||
return presentableData
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,61 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.ProgressBuildEvent;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
import com.intellij.openapi.util.NlsContexts.ProgressText;
|
||||
import com.intellij.openapi.util.NlsContexts.ProgressTitle;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public final class ProgressBuildEventImpl extends AbstractBuildEvent implements ProgressBuildEvent {
|
||||
|
||||
private final long myTotal;
|
||||
private final long myProgress;
|
||||
private final String myUnit;
|
||||
private final @NotNull Long myTotal;
|
||||
private final @NotNull Long myProgress;
|
||||
private final @NotNull String myUnit;
|
||||
|
||||
public ProgressBuildEventImpl(@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NlsContexts.ProgressTitle
|
||||
@NotNull @NlsContexts.ProgressText String message,
|
||||
long total,
|
||||
long progress,
|
||||
@NotNull String unit) {
|
||||
super(eventId, parentId, eventTime, message);
|
||||
myTotal = total;
|
||||
myProgress = progress;
|
||||
myUnit = unit;
|
||||
@Internal
|
||||
public ProgressBuildEventImpl(
|
||||
@NotNull Object startId,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @ProgressTitle @ProgressText @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@Nullable Long total,
|
||||
@Nullable Long progress,
|
||||
@Nullable String unit
|
||||
) {
|
||||
super(startId, parentId, time, message, hint, description);
|
||||
myTotal = notNull(total, -1L);
|
||||
myProgress = notNull(progress, -1L);
|
||||
myUnit = notNull(unit, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#progress()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public ProgressBuildEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @ProgressTitle @ProgressText @Message String message,
|
||||
long total,
|
||||
long progress,
|
||||
@NotNull String unit
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null, total, progress, unit);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,7 +69,7 @@ public final class ProgressBuildEventImpl extends AbstractBuildEvent implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnit() {
|
||||
public @NotNull String getUnit() {
|
||||
return myUnit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,15 @@ package com.intellij.build.events.impl;
|
||||
import com.intellij.build.BuildDescriptor;
|
||||
import com.intellij.build.BuildViewSettingsProvider;
|
||||
import com.intellij.build.DefaultBuildDescriptor;
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.StartBuildEvent;
|
||||
import com.intellij.execution.filters.Filter;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -17,23 +21,48 @@ import java.util.Arrays;
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public final class StartBuildEventImpl extends StartEventImpl implements StartBuildEvent {
|
||||
|
||||
private final @NotNull DefaultBuildDescriptor myBuildDescriptor;
|
||||
private @Nullable BuildViewSettingsProvider myBuildViewSettingsProvider;
|
||||
private @Nullable BuildViewSettingsProvider myBuildViewSettings;
|
||||
|
||||
public StartBuildEventImpl(@NotNull BuildDescriptor descriptor, @NotNull @BuildEventsNls.Message String message) {
|
||||
super(descriptor.getId(), null, descriptor.getStartTime(), message);
|
||||
myBuildDescriptor =
|
||||
descriptor instanceof DefaultBuildDescriptor ? (DefaultBuildDescriptor)descriptor : new DefaultBuildDescriptor(descriptor);
|
||||
@Internal
|
||||
public StartBuildEventImpl(
|
||||
@Nullable Object parentId,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description,
|
||||
@NotNull BuildDescriptor buildDescriptor,
|
||||
@Nullable BuildViewSettingsProvider buildViewSettings
|
||||
) {
|
||||
super(buildDescriptor.getId(), parentId, buildDescriptor.getStartTime(), message, hint, description);
|
||||
myBuildDescriptor = buildDescriptor instanceof DefaultBuildDescriptor defaultBuildDescriptor
|
||||
? defaultBuildDescriptor : new DefaultBuildDescriptor(buildDescriptor);
|
||||
myBuildViewSettings = buildViewSettings;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#startBuild()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public StartBuildEventImpl(
|
||||
@NotNull BuildDescriptor descriptor,
|
||||
@NotNull @Message String message
|
||||
) {
|
||||
this(null, message, null, null, descriptor, null);
|
||||
}
|
||||
|
||||
@ApiStatus.Experimental
|
||||
@Override
|
||||
public @NotNull DefaultBuildDescriptor getBuildDescriptor() {
|
||||
return myBuildDescriptor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable BuildViewSettingsProvider getBuildViewSettings() {
|
||||
return myBuildViewSettings;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link DefaultBuildDescriptor#withProcessHandler}
|
||||
*/
|
||||
@@ -52,14 +81,22 @@ public final class StartBuildEventImpl extends StartEventImpl implements StartBu
|
||||
return this;
|
||||
}
|
||||
|
||||
@ApiStatus.Experimental
|
||||
/**
|
||||
* @deprecated Use {@link #getBuildViewSettings()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@Experimental
|
||||
public @Nullable BuildViewSettingsProvider getBuildViewSettingsProvider() {
|
||||
return myBuildViewSettingsProvider;
|
||||
return myBuildViewSettings;
|
||||
}
|
||||
|
||||
@ApiStatus.Experimental
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#startBuild} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@Experimental
|
||||
public StartBuildEventImpl withBuildViewSettingsProvider(@Nullable BuildViewSettingsProvider viewSettingsProvider) {
|
||||
myBuildViewSettingsProvider = viewSettingsProvider;
|
||||
myBuildViewSettings = viewSettingsProvider;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,17 +15,43 @@
|
||||
*/
|
||||
package com.intellij.build.events.impl;
|
||||
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEvents;
|
||||
import com.intellij.build.events.BuildEventsNls.Description;
|
||||
import com.intellij.build.events.BuildEventsNls.Hint;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.StartEvent;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@Internal
|
||||
public class StartEventImpl extends AbstractBuildEvent implements StartEvent {
|
||||
|
||||
public StartEventImpl(@NotNull Object eventId, @Nullable Object parentId, long eventTime, @NotNull @BuildEventsNls.Message String message) {
|
||||
super(eventId, parentId, eventTime, message);
|
||||
@Internal
|
||||
public StartEventImpl(
|
||||
@NotNull Object id,
|
||||
@Nullable Object parentId,
|
||||
@Nullable Long time,
|
||||
@NotNull @Message String message,
|
||||
@Nullable @Hint String hint,
|
||||
@Nullable @Description String description
|
||||
) {
|
||||
super(id, parentId, time, message, hint, description);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link BuildEvents#start()} event builder instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public StartEventImpl(
|
||||
@NotNull Object eventId,
|
||||
@Nullable Object parentId,
|
||||
long eventTime,
|
||||
@NotNull @Message String message
|
||||
) {
|
||||
this(eventId, parentId, eventTime, message, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.progress;
|
||||
|
||||
import com.intellij.build.BuildProgressListener;
|
||||
import com.intellij.build.FilePosition;
|
||||
import com.intellij.build.events.*;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.impl.FailureResultImpl;
|
||||
import com.intellij.build.events.impl.SkippedResultImpl;
|
||||
import com.intellij.build.events.impl.SuccessResultImpl;
|
||||
import com.intellij.build.issue.BuildIssue;
|
||||
import com.intellij.execution.process.ProcessOutputType;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@Internal
|
||||
public abstract class AbstractBuildProgress implements BuildProgress<BuildProgressDescriptor> {
|
||||
|
||||
protected final @NotNull BuildEvents myBuildEvents;
|
||||
private final @NotNull BuildProgressListener myListener;
|
||||
|
||||
AbstractBuildProgress(
|
||||
@NotNull BuildEvents buildEvents,
|
||||
@NotNull BuildProgressListener listener
|
||||
) {
|
||||
myBuildEvents = buildEvents;
|
||||
myListener = listener;
|
||||
}
|
||||
|
||||
protected abstract @NotNull BuildProgressDescriptor getDescriptor();
|
||||
|
||||
protected final @NotNull Object getBuildId() {
|
||||
return getDescriptor().getBuildDescriptor().getId();
|
||||
}
|
||||
|
||||
protected abstract @NotNull Object getStartId();
|
||||
|
||||
protected abstract @Nullable Object getParentId();
|
||||
|
||||
protected abstract @NotNull @Message String getStartMessage();
|
||||
|
||||
protected abstract @NotNull @Message String getFinishMessage();
|
||||
|
||||
protected abstract @NotNull @Message String getFailMessage();
|
||||
|
||||
protected abstract @NotNull @Message String getCancelMessage();
|
||||
|
||||
@Override
|
||||
public final @NotNull Object getId() {
|
||||
return getStartId();
|
||||
}
|
||||
|
||||
protected @NotNull BuildProgress<BuildProgressDescriptor> event(@NotNull BuildEvent event) {
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> start(@NotNull BuildProgressDescriptor descriptor) {
|
||||
return start(getStartMessage(), descriptor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(@NotNull EventResult result) {
|
||||
return finish(getFinishMessage(), result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(@NotNull String message, @NotNull EventResult result) {
|
||||
return finish(System.currentTimeMillis(), message, result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> finish() {
|
||||
return finish(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> finish(boolean isUpToDate) {
|
||||
return finish(System.currentTimeMillis(), isUpToDate, getFinishMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp) {
|
||||
return finish(timeStamp, false, getFinishMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, boolean isUpToDate, @NotNull String message) {
|
||||
return finish(timeStamp, message, new SuccessResultImpl(isUpToDate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> fail() {
|
||||
return fail(System.currentTimeMillis(), getFailMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> fail(long timeStamp, @NotNull String message) {
|
||||
return finish(timeStamp, message, new FailureResultImpl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> cancel() {
|
||||
return cancel(System.currentTimeMillis(), getCancelMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> cancel(long timeStamp, @NotNull String message) {
|
||||
return finish(timeStamp, message, new SkippedResultImpl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> startChildProgress(@NotNull String title) {
|
||||
var childBuildProgressDescriptor = new BuildProgressDescriptorImpl(title, getDescriptor().getBuildDescriptor());
|
||||
var childBuildProgress = new ChildBuildProgressImpl(myBuildEvents, myListener, childBuildProgressDescriptor, this);
|
||||
return childBuildProgress.start(childBuildProgressDescriptor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> progress(@NotNull String title) {
|
||||
return event(
|
||||
myBuildEvents.progress()
|
||||
.withStartId(getStartId())
|
||||
.withParentId(getParentId())
|
||||
.withMessage(title)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> progress(@NotNull String title, long total, long progress, String unit) {
|
||||
return event(
|
||||
myBuildEvents.progress()
|
||||
.withStartId(getStartId())
|
||||
.withParentId(getParentId())
|
||||
.withMessage(title)
|
||||
.withTotal(total)
|
||||
.withProgress(progress)
|
||||
.withUnit(unit)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> presentable(
|
||||
@NotNull String title,
|
||||
@NotNull BuildEventPresentationData presentationData
|
||||
) {
|
||||
return event(
|
||||
myBuildEvents.presentable()
|
||||
.withParentId(getStartId())
|
||||
.withMessage(title)
|
||||
.withPresentationData(presentationData)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> output(@NotNull String text, @NotNull ProcessOutputType processOutputType) {
|
||||
return event(
|
||||
myBuildEvents.output()
|
||||
.withParentId(getStartId())
|
||||
.withMessage(text)
|
||||
.withOutputType(processOutputType)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> message(
|
||||
@NotNull String title,
|
||||
@NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@Nullable Navigatable navigatable
|
||||
) {
|
||||
return event(
|
||||
myBuildEvents.message()
|
||||
.withParentId(getStartId())
|
||||
.withMessage(title)
|
||||
.withDescription(message)
|
||||
.withKind(kind)
|
||||
.withNavigatable(navigatable)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> fileMessage(
|
||||
@NotNull String title,
|
||||
@NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@NotNull FilePosition filePosition
|
||||
) {
|
||||
return event(
|
||||
myBuildEvents.fileMessage()
|
||||
.withParentId(getStartId())
|
||||
.withMessage(title)
|
||||
.withDescription(message)
|
||||
.withKind(kind)
|
||||
.withFilePosition(filePosition)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NotNull BuildProgress<BuildProgressDescriptor> buildIssue(
|
||||
@NotNull BuildIssue issue,
|
||||
@NotNull MessageEvent.Kind kind
|
||||
) {
|
||||
return event(
|
||||
myBuildEvents.buildIssue()
|
||||
.withParentId(getStartId())
|
||||
.withIssue(issue)
|
||||
.withKind(kind)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -2,36 +2,35 @@
|
||||
package com.intellij.build.progress;
|
||||
|
||||
import com.intellij.build.FilePosition;
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.BuildEventPresentationData;
|
||||
import com.intellij.build.events.BuildEventsNls.Message;
|
||||
import com.intellij.build.events.BuildEventsNls.Title;
|
||||
import com.intellij.build.events.EventResult;
|
||||
import com.intellij.build.events.MessageEvent;
|
||||
import com.intellij.build.issue.BuildIssue;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
import com.intellij.execution.process.ProcessOutputType;
|
||||
import com.intellij.openapi.util.NlsContexts.ProgressTitle;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.jetbrains.annotations.ApiStatus.NonExtendable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
@Experimental
|
||||
@NonExtendable
|
||||
public interface BuildProgress<T extends BuildProgressDescriptor> {
|
||||
|
||||
@NotNull Object getId();
|
||||
|
||||
@NotNull BuildProgress<T> start(@NotNull T descriptor);
|
||||
|
||||
@NotNull BuildProgress<T> progress(@NlsContexts.ProgressTitle @NotNull String title);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> start(@NotNull @Message String message, @NotNull T descriptor);
|
||||
|
||||
@NotNull BuildProgress<T> progress(@NlsContexts.ProgressTitle @NotNull String title, long total, long progress, String unit);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(@NotNull EventResult result);
|
||||
|
||||
@NotNull BuildProgress<T> output(@BuildEventsNls.Message @NotNull String text, boolean stdOut);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(@NotNull @Message String message, @NotNull EventResult result);
|
||||
|
||||
@NotNull BuildProgress<T> message(@BuildEventsNls.Title @NotNull String title,
|
||||
@BuildEventsNls.Message @NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@Nullable Navigatable navigatable);
|
||||
|
||||
@NotNull BuildProgress<T> fileMessage(@BuildEventsNls.Title @NotNull String title,
|
||||
@BuildEventsNls.Message @NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@NotNull FilePosition filePosition);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, @NotNull @Message String title, @NotNull EventResult result);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish();
|
||||
|
||||
@@ -39,17 +38,50 @@ public interface BuildProgress<T extends BuildProgressDescriptor> {
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(boolean isUpToDate);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, boolean isUpToDate, @BuildEventsNls.Message @NotNull String message);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, boolean isUpToDate, @Message @NotNull String message);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> fail();
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> fail(long timeStamp, @BuildEventsNls.Message @NotNull String message);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> fail(long timeStamp, @Message @NotNull String message);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> cancel();
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> cancel(long timeStamp, @BuildEventsNls.Message @NotNull String message);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> cancel(long timeStamp, @Message @NotNull String message);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> startChildProgress(@BuildEventsNls.Title @NotNull String title);
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> startChildProgress(@Title @NotNull String title);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> buildIssue(@NotNull BuildIssue issue, @NotNull MessageEvent.Kind kind);
|
||||
@NotNull BuildProgress<T> progress(@ProgressTitle @NotNull String title);
|
||||
|
||||
@NotNull BuildProgress<T> progress(@ProgressTitle @NotNull String title, long total, long progress, String unit);
|
||||
|
||||
@NotNull BuildProgress<T> presentable(@Message @NotNull String title, @NotNull BuildEventPresentationData presentationData);
|
||||
|
||||
@NotNull BuildProgress<T> output(@Message @NotNull String text, @NotNull ProcessOutputType processOutputType);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link output} event with {@link ProcessOutputType} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
default @NotNull BuildProgress<T> output(@Message @NotNull String text, boolean stdOut) {
|
||||
return output(text, stdOut ? ProcessOutputType.STDOUT : ProcessOutputType.STDERR);
|
||||
}
|
||||
|
||||
@NotNull BuildProgress<T> message(
|
||||
@Title @NotNull String title,
|
||||
@Message @NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@Nullable Navigatable navigatable
|
||||
);
|
||||
|
||||
@NotNull BuildProgress<T> fileMessage(
|
||||
@Title @NotNull String title,
|
||||
@Message @NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@NotNull FilePosition filePosition
|
||||
);
|
||||
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> buildIssue(
|
||||
@NotNull BuildIssue issue,
|
||||
@NotNull MessageEvent.Kind kind
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.progress
|
||||
|
||||
import com.intellij.build.BuildDescriptor
|
||||
import com.intellij.build.events.BuildEventsNls.Title
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class BuildProgressDescriptorImpl(
|
||||
private val title: @Title String,
|
||||
private val buildDescriptor: BuildDescriptor,
|
||||
) : BuildProgressDescriptor {
|
||||
|
||||
constructor(buildDescriptor: BuildDescriptor) :
|
||||
this(buildDescriptor.title, buildDescriptor)
|
||||
|
||||
override fun getTitle(): @Title String = title
|
||||
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.progress;
|
||||
|
||||
import com.intellij.build.BuildDescriptor;
|
||||
import com.intellij.build.BuildProgressListener;
|
||||
import com.intellij.build.FilePosition;
|
||||
import com.intellij.build.events.EventResult;
|
||||
import com.intellij.build.events.FinishEvent;
|
||||
import com.intellij.build.events.MessageEvent;
|
||||
import com.intellij.build.events.StartEvent;
|
||||
import com.intellij.build.events.impl.*;
|
||||
import com.intellij.build.issue.BuildIssue;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public class BuildProgressImpl implements BuildProgress<BuildProgressDescriptor> {
|
||||
private final Object myId = new Object();
|
||||
private final BuildProgressListener myListener;
|
||||
private final @Nullable BuildProgress<BuildProgressDescriptor> myParentProgress;
|
||||
private BuildProgressDescriptor myDescriptor;
|
||||
|
||||
BuildProgressImpl(BuildProgressListener listener, @Nullable BuildProgress<BuildProgressDescriptor> parentProgress) {
|
||||
myListener = listener;
|
||||
myParentProgress = parentProgress;
|
||||
}
|
||||
|
||||
protected Object getBuildId() {
|
||||
return myDescriptor.getBuildDescriptor().getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Object getId() {
|
||||
return myId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> start(@NotNull BuildProgressDescriptor descriptor) {
|
||||
myDescriptor = descriptor;
|
||||
StartEvent event = createStartEvent(descriptor);
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
}
|
||||
|
||||
protected @NotNull StartEvent createStartEvent(BuildProgressDescriptor descriptor) {
|
||||
assert myParentProgress != null;
|
||||
return new StartEventImpl(getId(), myParentProgress.getId(), System.currentTimeMillis(), descriptor.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> startChildProgress(@NotNull String title) {
|
||||
BuildDescriptor buildDescriptor = myDescriptor.getBuildDescriptor();
|
||||
return new BuildProgressImpl(myListener, this).start(new BuildProgressDescriptor() {
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildDescriptor getBuildDescriptor() {
|
||||
return buildDescriptor;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> progress(@NotNull String title) {
|
||||
return progress(title, -1, -1 , "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> progress(@NotNull String title, long total, long progress, String unit) {
|
||||
Object parentId = myParentProgress != null ? myParentProgress.getId() : null;
|
||||
myListener.onEvent(getBuildId(), new ProgressBuildEventImpl(getId(), parentId, System.currentTimeMillis(), title, total, progress, unit));
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> output(@NotNull String text, boolean stdOut) {
|
||||
myListener.onEvent(getBuildId(), new OutputBuildEventImpl(getId(), text, stdOut));
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> fileMessage(@NotNull String title,
|
||||
@NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@NotNull FilePosition filePosition) {
|
||||
StringBuilder fileLink = new StringBuilder(filePosition.getFile().getPath());
|
||||
if (filePosition.getStartLine() > 0) {
|
||||
fileLink.append(":").append(filePosition.getStartLine() + 1);
|
||||
if (filePosition.getStartColumn() > 0) {
|
||||
fileLink.append(":").append(filePosition.getStartColumn() + 1);
|
||||
}
|
||||
}
|
||||
@NlsSafe String detailedMessage = fileLink.toString() + '\n' + message;
|
||||
FileMessageEventImpl event = new FileMessageEventImpl(getId(), kind, null, title, detailedMessage, filePosition);
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> message(@NotNull String title,
|
||||
@NotNull String message,
|
||||
@NotNull MessageEvent.Kind kind,
|
||||
@Nullable Navigatable navigatable) {
|
||||
MessageEventImpl event = new MessageEventImpl(getId(), kind, null, title, message) {
|
||||
@Override
|
||||
public @Nullable Navigatable getNavigatable(@NotNull Project project) {
|
||||
return navigatable;
|
||||
}
|
||||
};
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish() {
|
||||
return finish(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(boolean isUpToDate) {
|
||||
return finish(System.currentTimeMillis(), isUpToDate, myDescriptor.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp) {
|
||||
return finish(timeStamp, false, myDescriptor.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, boolean isUpToDate, @NotNull String message) {
|
||||
assertStarted();
|
||||
assert myParentProgress != null;
|
||||
EventResult result = new SuccessResultImpl(isUpToDate);
|
||||
FinishEvent event = new FinishEventImpl(getId(), myParentProgress.getId(), timeStamp, message, result);
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return myParentProgress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> fail() {
|
||||
return fail(System.currentTimeMillis(), myDescriptor.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> fail(long timeStamp, @NotNull String message) {
|
||||
assertStarted();
|
||||
assert myParentProgress != null;
|
||||
FinishEvent event = new FinishEventImpl(getId(), myParentProgress.getId(), timeStamp, message, new FailureResultImpl());
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return myParentProgress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> cancel() {
|
||||
return cancel(System.currentTimeMillis(), myDescriptor.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> cancel(long timeStamp, @NotNull String message) {
|
||||
assertStarted();
|
||||
assert myParentProgress != null;
|
||||
FinishEventImpl event = new FinishEventImpl(getId(), myParentProgress.getId(), timeStamp, message, new SkippedResultImpl());
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return myParentProgress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> buildIssue(@NotNull BuildIssue issue, @NotNull MessageEvent.Kind kind) {
|
||||
myListener.onEvent(getBuildId(), new BuildIssueEventImpl(getId(), issue, kind));
|
||||
return this;
|
||||
}
|
||||
|
||||
protected void assertStarted() {
|
||||
if (myDescriptor == null) {
|
||||
throw new IllegalStateException("The start event was not triggered yet.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,69 +3,78 @@ package com.intellij.build.progress;
|
||||
|
||||
import com.intellij.build.BuildBundle;
|
||||
import com.intellij.build.BuildProgressListener;
|
||||
import com.intellij.build.events.BuildEventsNls;
|
||||
import com.intellij.build.events.FinishBuildEvent;
|
||||
import com.intellij.build.events.FinishEvent;
|
||||
import com.intellij.build.events.StartEvent;
|
||||
import com.intellij.build.events.*;
|
||||
import com.intellij.build.events.impl.*;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public final class BuildRootProgressImpl extends BuildProgressImpl {
|
||||
private final BuildProgressListener myListener;
|
||||
public final class BuildRootProgressImpl extends AbstractBuildProgress {
|
||||
|
||||
public BuildRootProgressImpl(BuildProgressListener buildProgressListener) {
|
||||
super(buildProgressListener, null);
|
||||
myListener = buildProgressListener;
|
||||
private @Nullable BuildProgressDescriptor myDescriptor;
|
||||
|
||||
public BuildRootProgressImpl(
|
||||
@NotNull BuildEvents buildEvents,
|
||||
@NotNull BuildProgressListener buildProgressListener
|
||||
) {
|
||||
super(buildEvents, buildProgressListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Object getId() {
|
||||
protected @NotNull BuildProgressDescriptor getDescriptor() {
|
||||
assert myDescriptor != null : "The task was not started yet.";
|
||||
return myDescriptor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Object getStartId() {
|
||||
return getBuildId();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull StartEvent createStartEvent(BuildProgressDescriptor descriptor) {
|
||||
return new StartBuildEventImpl(descriptor.getBuildDescriptor(), BuildBundle.message("build.status.running"));
|
||||
protected @Nullable Object getParentId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish() {
|
||||
return finish(System.currentTimeMillis(), false, BuildBundle.message("build.status.finished"));
|
||||
protected @NotNull String getStartMessage() {
|
||||
return BuildBundle.message("build.status.running");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, boolean isUpToDate, @NotNull @BuildEventsNls.Message String message) {
|
||||
assertStarted();
|
||||
FinishEvent event = new FinishBuildEventImpl(getId(), null, timeStamp, message, new SuccessResultImpl(isUpToDate));
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
protected @NotNull String getFinishMessage() {
|
||||
return BuildBundle.message("build.status.finished");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> fail() {
|
||||
return fail(System.currentTimeMillis(), BuildBundle.message("build.status.failed"));
|
||||
protected @NotNull String getFailMessage() {
|
||||
return BuildBundle.message("build.status.failed");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildRootProgressImpl fail(long timeStamp, @NotNull @BuildEventsNls.Message String message) {
|
||||
assertStarted();
|
||||
FinishBuildEvent event = new FinishBuildEventImpl(getId(), null, timeStamp, message, new FailureResultImpl());
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
protected @NotNull String getCancelMessage() {
|
||||
return BuildBundle.message("build.status.cancelled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> cancel() {
|
||||
return cancel(System.currentTimeMillis(), BuildBundle.message("build.status.cancelled"));
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> start(@NotNull String message, @NotNull BuildProgressDescriptor descriptor) {
|
||||
myDescriptor = descriptor;
|
||||
return event(myBuildEvents.startBuild()
|
||||
.withParentId(getParentId())
|
||||
.withMessage(message)
|
||||
.withBuildDescriptor(descriptor.getBuildDescriptor())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildRootProgressImpl cancel(long timeStamp, @NotNull String message) {
|
||||
assertStarted();
|
||||
FinishBuildEventImpl event = new FinishBuildEventImpl(getId(), null, timeStamp, message, new SkippedResultImpl());
|
||||
myListener.onEvent(getBuildId(), event);
|
||||
return this;
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, @NotNull String message, @NotNull EventResult result) {
|
||||
return event(myBuildEvents.finishBuild()
|
||||
.withStartBuildId(getBuildId())
|
||||
.withParentId(getParentId())
|
||||
.withTime(timeStamp)
|
||||
.withMessage(message)
|
||||
.withResult(result)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.build.progress;
|
||||
|
||||
import com.intellij.build.BuildProgressListener;
|
||||
import com.intellij.build.events.*;
|
||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@Internal
|
||||
public class ChildBuildProgressImpl extends AbstractBuildProgress {
|
||||
|
||||
private final @NotNull Object myId = new Object();
|
||||
private final @NotNull BuildProgressDescriptor myDescriptor;
|
||||
private final @NotNull BuildProgress<BuildProgressDescriptor> myParentProgress;
|
||||
|
||||
ChildBuildProgressImpl(
|
||||
@NotNull BuildEvents buildEvents,
|
||||
@NotNull BuildProgressListener listener,
|
||||
@NotNull BuildProgressDescriptor descriptor,
|
||||
@NotNull BuildProgress<BuildProgressDescriptor> parentProgress
|
||||
) {
|
||||
super(buildEvents, listener);
|
||||
myDescriptor = descriptor;
|
||||
myParentProgress = parentProgress;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull BuildProgressDescriptor getDescriptor() {
|
||||
return myDescriptor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Object getStartId() {
|
||||
return myId;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @Nullable Object getParentId() {
|
||||
return myParentProgress.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull String getStartMessage() {
|
||||
return myDescriptor.getTitle();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull String getFinishMessage() {
|
||||
return myDescriptor.getTitle();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull String getFailMessage() {
|
||||
return myDescriptor.getTitle();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull String getCancelMessage() {
|
||||
return myDescriptor.getTitle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> start(@NotNull String message, @NotNull BuildProgressDescriptor descriptor) {
|
||||
return event(myBuildEvents.start()
|
||||
.withId(getStartId())
|
||||
.withParentId(getParentId())
|
||||
.withMessage(message)
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull BuildProgress<BuildProgressDescriptor> finish(long timeStamp, @NotNull String message, @NotNull EventResult result) {
|
||||
event(myBuildEvents.finish()
|
||||
.withStartId(getStartId())
|
||||
.withParentId(getParentId())
|
||||
.withTime(timeStamp)
|
||||
.withMessage(message)
|
||||
.withResult(result)
|
||||
.build());
|
||||
return myParentProgress;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,12 @@
|
||||
package com.intellij.build
|
||||
|
||||
import com.intellij.build.events.MessageEvent
|
||||
import com.intellij.build.events.impl.*
|
||||
import com.intellij.build.events.impl.BuildEventsImpl
|
||||
import com.intellij.build.events.impl.DerivedResultImpl
|
||||
import com.intellij.build.events.impl.FailureResultImpl
|
||||
import com.intellij.build.events.impl.SuccessResultImpl
|
||||
import com.intellij.build.progress.BuildProgressDescriptorImpl
|
||||
import com.intellij.build.progress.BuildRootProgressImpl
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.testFramework.assertion.BuildViewAssertions.showAllNodes
|
||||
@@ -33,19 +38,16 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
buildDescriptor = DefaultBuildDescriptor(Object(),
|
||||
"test descriptor",
|
||||
"fake path",
|
||||
1L)
|
||||
buildDescriptor = DefaultBuildDescriptor(Any(), "test descriptor", "fake path", 1L)
|
||||
treeConsoleView = BuildTreeConsoleView(project, buildDescriptor, null)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test tree console handles event`() {
|
||||
val tree = treeConsoleView.tree
|
||||
val buildId = Object()
|
||||
val message = "build Started"
|
||||
treeConsoleView.onEvent(buildId, StartBuildEventImpl(buildDescriptor, message))
|
||||
BuildRootProgressImpl(BuildEventsImpl(), treeConsoleView)
|
||||
.start(message, BuildProgressDescriptorImpl(buildDescriptor))
|
||||
|
||||
waitUntilAssertSucceedsBlocking {
|
||||
PlatformTestUtil.dispatchAllEventsInIdeEventQueue()
|
||||
@@ -64,17 +66,15 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
fun `test build level of tree console view are auto-expanded`() {
|
||||
val tree = treeConsoleView.tree
|
||||
showAllNodes(treeConsoleView)
|
||||
val buildId = Object()
|
||||
listOf(
|
||||
StartBuildEventImpl(buildDescriptor, "build started"),
|
||||
StartEventImpl("event_id", buildDescriptor.id, 1000, "build event"),
|
||||
StartEventImpl("sub_event_id", "event_id", 1100, "build nested event"),
|
||||
FinishEventImpl("sub_event_id", "event_id", 1200, "build nested event", SuccessResultImpl(true)),
|
||||
FinishEventImpl("event_id", buildDescriptor.id, 1500, "build event", SuccessResultImpl(true)),
|
||||
FinishBuildEventImpl(buildDescriptor.id, null, 2000, "build finished", SuccessResultImpl(true))
|
||||
).forEach {
|
||||
treeConsoleView.onEvent(buildId, it)
|
||||
}
|
||||
// @formatter:off
|
||||
BuildRootProgressImpl(BuildEventsImpl(), treeConsoleView)
|
||||
.start("build started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.startChildProgress("build event")
|
||||
.startChildProgress("build nested event")
|
||||
.finish(SuccessResultImpl(true))
|
||||
.finish(SuccessResultImpl(true))
|
||||
.finish("build finished", SuccessResultImpl(true))
|
||||
// @formatter:on
|
||||
|
||||
waitUntilAssertSucceedsBlocking {
|
||||
PlatformTestUtil.dispatchAllEventsInIdeEventQueue()
|
||||
@@ -94,29 +94,22 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
fun `test first message node is auto-expanded`() {
|
||||
val tree = treeConsoleView.tree
|
||||
showAllNodes(treeConsoleView)
|
||||
val buildId = Object()
|
||||
listOf(
|
||||
StartBuildEventImpl(buildDescriptor, "build started"),
|
||||
|
||||
StartEventImpl("event_id_1", buildDescriptor.id, 1000, "build event 1"),
|
||||
FileMessageEventImpl("event_id_1", MessageEvent.Kind.WARNING, null, "file message", null, FilePosition(File("a.file"), 0, 0)),
|
||||
FinishEventImpl("event_id_1", buildDescriptor.id, 1500, "build event 1", SuccessResultImpl(true)),
|
||||
|
||||
StartEventImpl("event_id_2", buildDescriptor.id, 1000, "build event 2"),
|
||||
FileMessageEventImpl("event_id_2", MessageEvent.Kind.WARNING, null, "file message 1", null, FilePosition(File("a1.file"), 0, 0)),
|
||||
FileMessageEventImpl("event_id_2", MessageEvent.Kind.WARNING, null, "file message 2", null, FilePosition(File("a2.file"), 0, 0)),
|
||||
FinishEventImpl("event_id_2", buildDescriptor.id, 1500, "build event 2", SuccessResultImpl(true)),
|
||||
|
||||
StartEventImpl("event_id_3", buildDescriptor.id, 1000, "build event 3"),
|
||||
FileMessageEventImpl("event_id_3", MessageEvent.Kind.WARNING, null, "file message 3", null, FilePosition(File("a3.file"), 0, 0)),
|
||||
FileMessageEventImpl("event_id_3", MessageEvent.Kind.ERROR, null, "file message with error", null,
|
||||
FilePosition(File("a4.file"), 5, 0)),
|
||||
FinishEventImpl("event_id_3", buildDescriptor.id, 1500, "build event 3", FailureResultImpl()),
|
||||
|
||||
FinishBuildEventImpl(buildDescriptor.id, null, 2000, "build failed", FailureResultImpl())
|
||||
).forEach {
|
||||
treeConsoleView.onEvent(buildId, it)
|
||||
}
|
||||
// @formatter:off
|
||||
BuildRootProgressImpl(BuildEventsImpl(), treeConsoleView)
|
||||
.start("build started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.startChildProgress("build event 1")
|
||||
.fileMessage("file message", "file detailed message", MessageEvent.Kind.WARNING, FilePosition(File("a.file"), 0, 0))
|
||||
.finish(true)
|
||||
.startChildProgress("build event 2")
|
||||
.fileMessage("file message 1", "file detailed message 1", MessageEvent.Kind.WARNING, FilePosition(File("a1.file"), 0, 0))
|
||||
.fileMessage("file message 2", "file detailed message 2", MessageEvent.Kind.WARNING, FilePosition(File("a2.file"), 0, 0))
|
||||
.finish(true)
|
||||
.startChildProgress("build event 3")
|
||||
.fileMessage("file message 3", "file detailed message 3", MessageEvent.Kind.WARNING, FilePosition(File("a3.file"), 0, 0))
|
||||
.fileMessage("file message with error", "file detailed message with error", MessageEvent.Kind.ERROR, FilePosition(File("a4.file"), 5, 0))
|
||||
.finish(FailureResultImpl())
|
||||
.finish("build failed", FailureResultImpl())
|
||||
// @formatter:on
|
||||
|
||||
waitUntilAssertSucceedsBlocking {
|
||||
PlatformTestUtil.dispatchAllEventsInIdeEventQueue()
|
||||
@@ -145,18 +138,16 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
@Test
|
||||
fun `test derived result depend on child result - fail case`() {
|
||||
showAllNodes(treeConsoleView)
|
||||
val buildId = Object()
|
||||
listOf(
|
||||
StartBuildEventImpl(buildDescriptor, "build started"),
|
||||
StartEventImpl("event_id", buildDescriptor.id, 1000, "build event"),
|
||||
StartEventImpl("sub_event_id", "event_id", 1100, "build nested event"),
|
||||
MessageEventImpl("event_id", MessageEvent.Kind.ERROR, "Error", "error message", "error message"),
|
||||
FinishEventImpl("sub_event_id", "event_id", 1200, "build nested event", FailureResultImpl()),
|
||||
FinishEventImpl("event_id", buildDescriptor.id, 1500, "build event", DerivedResultImpl()),
|
||||
FinishBuildEventImpl(buildDescriptor.id, null, 2000, "build finished", DerivedResultImpl())
|
||||
).forEach {
|
||||
treeConsoleView.onEvent(buildId, it)
|
||||
}
|
||||
// @formatter:off
|
||||
BuildRootProgressImpl(BuildEventsImpl(), treeConsoleView)
|
||||
.start("build started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.startChildProgress("build event")
|
||||
.startChildProgress( "build nested event")
|
||||
.message("error message", "detailed error message", MessageEvent.Kind.ERROR, null)
|
||||
.finish(FailureResultImpl())
|
||||
.finish(DerivedResultImpl())
|
||||
.finish("build finished", DerivedResultImpl())
|
||||
// @formatter:on
|
||||
|
||||
val tree = treeConsoleView.tree
|
||||
|
||||
@@ -165,8 +156,8 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
PlatformTestUtil.assertTreeEqual(tree, "-\n" +
|
||||
" -build finished\n" +
|
||||
" -build event\n" +
|
||||
" build nested event\n" +
|
||||
" error message")
|
||||
" -build nested event\n" +
|
||||
" error message")
|
||||
}
|
||||
|
||||
val visitor = CollectingTreeVisitor(tree)
|
||||
@@ -181,17 +172,15 @@ class BuildTreeConsoleViewTest : LightPlatformTestCase() {
|
||||
@Test
|
||||
fun `test derived result depend on child result - success case`() {
|
||||
showAllNodes(treeConsoleView)
|
||||
val buildId = Object()
|
||||
listOf(
|
||||
StartBuildEventImpl(buildDescriptor, "build started"),
|
||||
StartEventImpl("event_id", buildDescriptor.id, 1000, "build event"),
|
||||
StartEventImpl("sub_event_id", "event_id", 1100, "build nested event"),
|
||||
FinishEventImpl("sub_event_id", "event_id", 1200, "build nested event", SuccessResultImpl()),
|
||||
FinishEventImpl("event_id", buildDescriptor.id, 1500, "build event", DerivedResultImpl()),
|
||||
FinishBuildEventImpl(buildDescriptor.id, null, 2000, "build finished", DerivedResultImpl())
|
||||
).forEach {
|
||||
treeConsoleView.onEvent(buildId, it)
|
||||
}
|
||||
// @formatter:off
|
||||
BuildRootProgressImpl(BuildEventsImpl(), treeConsoleView)
|
||||
.start("build started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.startChildProgress("build event")
|
||||
.startChildProgress("build nested event")
|
||||
.finish(SuccessResultImpl())
|
||||
.finish(DerivedResultImpl())
|
||||
.finish("build finished", DerivedResultImpl())
|
||||
// @formatter:on
|
||||
|
||||
val tree = treeConsoleView.tree
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ package com.intellij.build
|
||||
|
||||
import com.intellij.build.events.BuildEventPresentationData
|
||||
import com.intellij.build.events.MessageEvent.Kind.*
|
||||
import com.intellij.build.events.PresentableBuildEvent
|
||||
import com.intellij.build.events.impl.*
|
||||
import com.intellij.build.progress.BuildProgressDescriptor
|
||||
import com.intellij.build.events.impl.SuccessResultImpl
|
||||
import com.intellij.build.progress.BuildProgressDescriptorImpl
|
||||
import com.intellij.execution.Platform
|
||||
import com.intellij.execution.process.ProcessOutputType
|
||||
import com.intellij.execution.ui.ExecutionConsole
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.openapi.actionSystem.ActionGroup
|
||||
@@ -45,19 +45,14 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test successful build`() {
|
||||
val title = "A build"
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), title, "", System.currentTimeMillis())
|
||||
val progressDescriptor = object : BuildProgressDescriptor {
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
override fun getTitle(): String = title
|
||||
}
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", "", System.currentTimeMillis())
|
||||
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start(progressDescriptor)
|
||||
.start(BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.message("Root message", "Tex of the root message console", INFO, null)
|
||||
.progress("Running…")
|
||||
.progress("Running…")
|
||||
.startChildProgress("Inner progress")
|
||||
.fileMessage("File message1", "message1 descriptive text", INFO, FilePosition(File("aFile.java"), 0, 0))
|
||||
.fileMessage("File message2", "message2 descriptive text", INFO, FilePosition(File("aFile.java"), 0, 0))
|
||||
@@ -81,35 +76,26 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
buildViewTestFixture.assertBuildViewNode("Root message", "Tex of the root message console\n")
|
||||
buildViewTestFixture.assertBuildViewNode(
|
||||
"File message1",
|
||||
"aFile.java\n" +
|
||||
"message1 descriptive text"
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test file messages presentation`() {
|
||||
val title = "A build"
|
||||
val tempDirectory = FileUtil.getTempDirectory() + "/project"
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), title, tempDirectory, System.currentTimeMillis())
|
||||
val progressDescriptor = object : BuildProgressDescriptor {
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
override fun getTitle(): String = title
|
||||
}
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", tempDirectory, System.currentTimeMillis())
|
||||
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start(progressDescriptor)
|
||||
.fileMessage("message 1", "message 1 descriptive text", INFO, FilePosition(File("aFile1.java"), 0, 0))
|
||||
.fileMessage("message 1.1", "message 1.1 descriptive text", WARNING, FilePosition(File("aFile1.java"), 0, 0))
|
||||
|
||||
.fileMessage("message 2", "message 2 descriptive text", WARNING, FilePosition(File(tempDirectory, "project/aFile2.java"), 0, 0))
|
||||
.fileMessage("message 2.1", "message 2.1 descriptive text", WARNING, FilePosition(File(tempDirectory), -1, -1))
|
||||
|
||||
.fileMessage("message 3", "message 3 descriptive text", WARNING, FilePosition(File(tempDirectory, "anotherDir1/aFile3.java"), 0, 0))
|
||||
.fileMessage("message 3.1", "message 3.1 descriptive text", ERROR, FilePosition(File(tempDirectory, "anotherDir2/aFile3.java"), 0, 0))
|
||||
|
||||
.fileMessage("message 4", "message 4 descriptive text", INFO, FilePosition(File(SystemProperties.getUserHome(), "foo/aFile4.java"), 0, 0))
|
||||
.start(BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.fileMessage("message 1", "message 1 descriptive text", INFO, FilePosition(File("aFile1.java"), 0, 0))
|
||||
.fileMessage("message 1.1", "message 1.1 descriptive text", WARNING, FilePosition(File("aFile1.java"), 0, 0))
|
||||
.fileMessage("message 2", "message 2 descriptive text", WARNING, FilePosition(File(tempDirectory, "project/aFile2.java"), 0, 0))
|
||||
.fileMessage("message 2.1", "message 2.1 descriptive text", WARNING, FilePosition(File(tempDirectory), -1, -1))
|
||||
.fileMessage("message 3", "message 3 descriptive text", WARNING, FilePosition(File(tempDirectory, "anotherDir1/aFile3.java"), 0, 0))
|
||||
.fileMessage("message 3.1", "message 3.1 descriptive text", ERROR, FilePosition(File(tempDirectory, "anotherDir2/aFile3.java"), 0, 0))
|
||||
.fileMessage("message 4", "message 4 descriptive text", INFO, FilePosition(File(SystemProperties.getUserHome(), "foo/aFile4.java"), 0, 0))
|
||||
.finish()
|
||||
// @formatter:on
|
||||
|
||||
@@ -159,19 +145,14 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test build with errors`() {
|
||||
val title = "A build"
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), title, "", System.currentTimeMillis())
|
||||
val progressDescriptor = object : BuildProgressDescriptor {
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
override fun getTitle(): String = title
|
||||
}
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", "", System.currentTimeMillis())
|
||||
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start(progressDescriptor)
|
||||
.start(BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.message("Root message", "Tex of the root message console", INFO, null)
|
||||
.progress("Running…")
|
||||
.progress("Running…")
|
||||
.startChildProgress("Inner progress")
|
||||
.fileMessage("File message1", "message1 descriptive text", ERROR, FilePosition(File("aFile.java"), 0, 0))
|
||||
.fileMessage("File message2", "message2 descriptive text", ERROR, FilePosition(File("aFile.java"), 0, 0))
|
||||
@@ -193,7 +174,6 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
buildViewTestFixture.assertBuildViewSelectedNode(
|
||||
"File message1",
|
||||
"aFile.java\n" +
|
||||
"message1 descriptive text"
|
||||
)
|
||||
buildViewTestFixture.assertBuildViewNode("failed", "")
|
||||
@@ -202,19 +182,14 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test cancelled build`() {
|
||||
val title = "A build"
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), title, "", System.currentTimeMillis())
|
||||
val progressDescriptor = object : BuildProgressDescriptor {
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
override fun getTitle(): String = title
|
||||
}
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", "", System.currentTimeMillis())
|
||||
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start(progressDescriptor)
|
||||
.start(BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.message("Root message", "Tex of the root message console", INFO, null)
|
||||
.progress("Running…")
|
||||
.progress("Running…")
|
||||
.startChildProgress("Inner progress")
|
||||
.cancel()
|
||||
.cancel()
|
||||
@@ -236,12 +211,7 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test build view listeners`() {
|
||||
val title = "A build"
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), title, "", System.currentTimeMillis())
|
||||
val progressDescriptor = object : BuildProgressDescriptor {
|
||||
override fun getBuildDescriptor(): BuildDescriptor = buildDescriptor
|
||||
override fun getTitle(): String = title
|
||||
}
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", "", System.currentTimeMillis())
|
||||
|
||||
val buildMessages = mutableListOf<String>()
|
||||
//BuildViewManager
|
||||
@@ -253,16 +223,16 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start(progressDescriptor)
|
||||
.output("Build greeting\n", true)
|
||||
.start(BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.output("Build greeting\n", ProcessOutputType.STDOUT)
|
||||
.message("Root message", "Text of the root message console", INFO, null)
|
||||
.progress("Running…")
|
||||
.progress("Running…")
|
||||
.startChildProgress("Inner progress")
|
||||
.output("inner progress output", true)
|
||||
.output("inner progress output", ProcessOutputType.STDOUT)
|
||||
.fileMessage("File message1", "message1 descriptive text", INFO, FilePosition(File("aFile.java"), 0, 0))
|
||||
.fileMessage("File message2", "message2 descriptive text", INFO, FilePosition(File("aFile.java"), 0, 0))
|
||||
.finish()
|
||||
.output("Build farewell", true)
|
||||
.output("Build farewell", ProcessOutputType.STDOUT)
|
||||
.finish()
|
||||
// @formatter:on
|
||||
|
||||
@@ -282,8 +252,7 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
"Build farewell")
|
||||
buildViewTestFixture.assertBuildViewNode("Inner progress", "inner progress output")
|
||||
buildViewTestFixture.assertBuildViewNode("Root message", "Text of the root message console\n")
|
||||
buildViewTestFixture.assertBuildViewNode("File message1", "aFile.java\n" +
|
||||
"message1 descriptive text")
|
||||
buildViewTestFixture.assertBuildViewNode("File message1", "message1 descriptive text")
|
||||
|
||||
assertEquals("running…" +
|
||||
"Build greeting\n" +
|
||||
@@ -300,46 +269,38 @@ class BuildViewTest : LightPlatformTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test presentable build event`() {
|
||||
val title = "A build"
|
||||
val buildId = Object()
|
||||
val buildDescriptor = DefaultBuildDescriptor(buildId, title, "", System.currentTimeMillis())
|
||||
|
||||
val buildViewManager = project.service<BuildViewManager>()
|
||||
buildViewManager.onEvent(buildId, StartBuildEventImpl(buildDescriptor, "started"))
|
||||
val buildDescriptor = DefaultBuildDescriptor(Object(), "A build", "", System.currentTimeMillis())
|
||||
|
||||
val component = JButton("test button")
|
||||
class MyPresentableBuildEvent(eventId: Any, parentId: Any?, eventTime: Long, message: String) :
|
||||
AbstractBuildEvent(eventId, parentId, eventTime, message), PresentableBuildEvent {
|
||||
override fun getPresentationData(): BuildEventPresentationData {
|
||||
return object : BuildEventPresentationData {
|
||||
override fun getNodeIcon(): Icon = AllIcons.General.Add
|
||||
override fun getExecutionConsole(): ExecutionConsole {
|
||||
return object : ExecutionConsole {
|
||||
override fun getComponent(): JComponent = component
|
||||
override fun getPreferredFocusableComponent(): JComponent = component
|
||||
override fun dispose() {}
|
||||
}
|
||||
}
|
||||
|
||||
override fun consoleToolbarActions(): ActionGroup? = null
|
||||
val presentationData = object : BuildEventPresentationData {
|
||||
override fun getNodeIcon(): Icon = AllIcons.General.Add
|
||||
override fun consoleToolbarActions(): ActionGroup? = null
|
||||
override fun getExecutionConsole(): ExecutionConsole {
|
||||
return object : ExecutionConsole {
|
||||
override fun getComponent(): JComponent = component
|
||||
override fun getPreferredFocusableComponent(): JComponent = component
|
||||
override fun dispose() {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildViewManager.onEvent(buildId, MyPresentableBuildEvent("1", buildId, System.currentTimeMillis(), "my event"))
|
||||
buildViewManager.onEvent(buildId,
|
||||
ProgressBuildEventImpl("1", buildId, System.currentTimeMillis(), "my event node text updated", -1, -1, ""))
|
||||
buildViewManager.onEvent(buildId, FinishBuildEventImpl(buildId, null, System.currentTimeMillis(), "finished", SuccessResultImpl()))
|
||||
// @formatter:off
|
||||
BuildViewManager
|
||||
.createBuildProgress(project)
|
||||
.start("started", BuildProgressDescriptorImpl(buildDescriptor))
|
||||
.presentable("my event", presentationData)
|
||||
.finish("finished", SuccessResultImpl())
|
||||
// @formatter:on
|
||||
|
||||
buildViewTestFixture.assertBuildViewTreeEquals(
|
||||
"""
|
||||
-
|
||||
-finished
|
||||
my event node text updated
|
||||
my event
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
buildViewTestFixture.assertBuildViewNodeConsole("my event node text updated") { executionConsole ->
|
||||
buildViewTestFixture.assertBuildViewNodeConsole("my event") { executionConsole ->
|
||||
assertThat(executionConsole.component)
|
||||
.isEqualTo(component)
|
||||
.matches { (it as JButton).text == "test button" }
|
||||
|
||||
@@ -1403,6 +1403,8 @@
|
||||
testServiceImplementation="com.intellij.build.internal.DummySyncViewManager"/>
|
||||
<projectService serviceInterface="com.intellij.build.BuildWorkspaceConfiguration"
|
||||
serviceImplementation="com.intellij.build.BuildWorkspaceConfigurationImpl"/>
|
||||
<applicationService serviceInterface="com.intellij.build.events.BuildEvents"
|
||||
serviceImplementation="com.intellij.build.events.impl.BuildEventsImpl"/>
|
||||
|
||||
<moveLeftRightHandler language=""
|
||||
implementationClass="com.intellij.codeInsight.editorActions.moveLeftRight.DefaultMoveElementLeftRightHandler"
|
||||
|
||||
Reference in New Issue
Block a user