mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJI-3312 Expose build originator for project tasks listeners
allows any project task listener to get what initiated a build particularly useful for monorepo devkit plugin statistics GitOrigin-RevId: 7a2eb3ed57d5d4442ab749faee4966393c66c3e1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7b9e45dfbd
commit
e60157b0fb
@@ -33,6 +33,14 @@ open class ProjectTaskContext @JvmOverloads constructor(
|
||||
@Volatile
|
||||
var isCollectionOfGeneratedFilesEnabled: Boolean = false
|
||||
|
||||
/**
|
||||
* The class that initiated the task execution.
|
||||
* This is an exposed version of [com.intellij.task.impl.ProjectTaskManagerImpl.BUILD_ORIGINATOR_KEY]
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
@Volatile
|
||||
var buildOriginatorClass: Class<*>? = null
|
||||
|
||||
@get:ApiStatus.Experimental
|
||||
val generatedFilesRoots: Collection<String>
|
||||
/**
|
||||
|
||||
@@ -186,8 +186,17 @@ public final class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
}
|
||||
});
|
||||
|
||||
Class<?> buildOriginatorFromProjectUserData = BUILD_ORIGINATOR_KEY.get(myProject);
|
||||
if (buildOriginatorFromProjectUserData != null) {
|
||||
myProject.putUserData(BUILD_ORIGINATOR_KEY, null);
|
||||
}
|
||||
|
||||
Pair<StructuredIdeActivity, List<EventPair<?>>> activity = reportBuildStart(projectTask, toRun);
|
||||
if (context.getBuildOriginatorClass() == null) {
|
||||
context.setBuildOriginatorClass(buildOriginatorFromProjectUserData);
|
||||
}
|
||||
|
||||
Pair<StructuredIdeActivity, List<EventPair<?>>> activity = reportBuildStart(
|
||||
projectTask, context.getBuildOriginatorClass(), toRun);
|
||||
myEventPublisher.started(context);
|
||||
|
||||
Runnable runnable = () -> {
|
||||
@@ -255,6 +264,7 @@ public final class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
}
|
||||
|
||||
private Pair<StructuredIdeActivity, List<EventPair<?>>> reportBuildStart(@NotNull ProjectTask projectTask,
|
||||
Class<?> buildOriginator,
|
||||
List<? extends Pair<ProjectTaskRunner, Collection<? extends ProjectTask>>> toRun) {
|
||||
Ref<Boolean> incremental = new Ref<>(null);
|
||||
AtomicInteger modules = new AtomicInteger(0);
|
||||
@@ -285,9 +295,7 @@ public final class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
if (modules.get() > 0) {
|
||||
fields.add(MODULES.with(modules.get()));
|
||||
}
|
||||
Class<?> buildOriginator = BUILD_ORIGINATOR_KEY.get(myProject);
|
||||
if (buildOriginator != null) {
|
||||
myProject.putUserData(BUILD_ORIGINATOR_KEY, null);
|
||||
fields.add(BUILD_ORIGINATOR.with(buildOriginator));
|
||||
}
|
||||
return Pair.create(BUILD_ACTIVITY.started(myProject, () -> fields), fields);
|
||||
|
||||
Reference in New Issue
Block a user