Skip to content

Instantly share code, notes, and snippets.

@lptr
Created November 14, 2022 13:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lptr/b015ece5ba3ae66dce4891c8951a3233 to your computer and use it in GitHub Desktop.
Save lptr/b015ece5ba3ae66dce4891c8951a3233 to your computer and use it in GitHub Desktop.
diff --git a/subprojects/core/src/main/java/org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginRegistry.java b/subprojects/core/src/main/java/org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginRegistry.java
index 783884a76ad..d1de44d30d0 100644
--- a/subprojects/core/src/main/java/org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginRegistry.java
+++ b/subprojects/core/src/main/java/org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginRegistry.java
@@ -18,6 +18,7 @@
import org.gradle.api.Project;
import org.gradle.api.initialization.Settings;
+import org.gradle.plugin.management.PluginRequest;
import org.gradle.plugin.management.internal.PluginRequests;
/**
@@ -34,4 +35,8 @@ public interface AutoAppliedPluginRegistry {
PluginRequests getAutoAppliedPlugins(Project target);
PluginRequests getAutoAppliedPlugins(Settings target);
+
+ interface PluginAutoApplicationListener {
+ void pluginAutoApplied(PluginRequest request);
+ }
}
diff --git a/subprojects/enterprise/src/main/java/org/gradle/internal/enterprise/impl/GradleEnterpriseAutoAppliedPluginRegistry.java b/subprojects/enterprise/src/main/java/org/gradle/internal/enterprise/impl/GradleEnterpriseAutoAppliedPluginRegistry.java
index 854109d10f7..a6eae03c9cf 100644
--- a/subprojects/enterprise/src/main/java/org/gradle/internal/enterprise/impl/GradleEnterpriseAutoAppliedPluginRegistry.java
+++ b/subprojects/enterprise/src/main/java/org/gradle/internal/enterprise/impl/GradleEnterpriseAutoAppliedPluginRegistry.java
@@ -25,6 +25,9 @@
import org.gradle.api.internal.artifacts.DefaultModuleIdentifier;
import org.gradle.api.internal.artifacts.DefaultModuleVersionSelector;
import org.gradle.api.invocation.Gradle;
+import org.gradle.internal.concurrent.Stoppable;
+import org.gradle.internal.event.ListenerManager;
+import org.gradle.plugin.management.PluginRequest;
import org.gradle.plugin.management.internal.DefaultPluginRequest;
import org.gradle.plugin.management.internal.PluginRequestInternal;
import org.gradle.plugin.management.internal.PluginRequests;
@@ -33,12 +36,18 @@
import static org.gradle.initialization.StartParameterBuildOptions.BuildScanOption;
-public class GradleEnterpriseAutoAppliedPluginRegistry implements AutoAppliedPluginRegistry {
+public class GradleEnterpriseAutoAppliedPluginRegistry implements AutoAppliedPluginRegistry, AutoAppliedPluginRegistry.PluginAutoApplicationListener, Stoppable {
private final GradleEnterprisePluginAutoAppliedStatus autoAppliedStatus;
+ private final ListenerManager listenerManager;
- public GradleEnterpriseAutoAppliedPluginRegistry(GradleEnterprisePluginAutoAppliedStatus autoAppliedStatus) {
+ public GradleEnterpriseAutoAppliedPluginRegistry(
+ GradleEnterprisePluginAutoAppliedStatus autoAppliedStatus,
+ ListenerManager listenerManager
+ ) {
this.autoAppliedStatus = autoAppliedStatus;
+ this.listenerManager = listenerManager;
+ listenerManager.addListener(this);
}
@Override
@@ -76,7 +85,19 @@ private PluginRequestInternal createGradleEnterprisePluginRequest() {
);
}
+ @Override
+ public void pluginAutoApplied(PluginRequest request) {
+ if (request.getId().equals(AutoAppliedGradleEnterprisePlugin.ID)) {
+ autoAppliedStatus.markAsAutoApplied();
+ }
+ }
+
private static String getScriptDisplayName() {
return String.format("auto-applied by using --%s", BuildScanOption.LONG_OPTION);
}
+
+ @Override
+ public void stop() {
+ listenerManager.removeListener(this);
+ }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment