Created
November 14, 2022 13:33
-
-
Save lptr/92d952f20b4a7ad69dee6c51ff628c82 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/subprojects/core/src/main/java/org/gradle/plugin/use/internal/PluginRequestApplicator.java b/subprojects/core/src/main/java/org/gradle/plugin/use/internal/PluginRequestApplicator.java | |
index ecb1660bb12..440abb63714 100644 | |
--- a/subprojects/core/src/main/java/org/gradle/plugin/use/internal/PluginRequestApplicator.java | |
+++ b/subprojects/core/src/main/java/org/gradle/plugin/use/internal/PluginRequestApplicator.java | |
@@ -22,6 +22,7 @@ | |
import org.gradle.internal.service.scopes.Scopes; | |
import org.gradle.internal.service.scopes.ServiceScope; | |
import org.gradle.plugin.management.internal.PluginRequests; | |
+import org.gradle.plugin.use.PluginId; | |
import javax.annotation.Nullable; | |
@@ -37,4 +38,8 @@ public interface PluginRequestApplicator { | |
* {@link ClassLoaderScope}. | |
*/ | |
void applyPlugins(PluginRequests requests, ScriptHandlerInternal scriptHandler, @Nullable PluginManagerInternal target, ClassLoaderScope classLoaderScope); | |
+ | |
+ interface Listener { | |
+ void pluginApplied(PluginId id); | |
+ } | |
} | |
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..2211cf2706c 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,20 +25,30 @@ | |
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.internal.DefaultPluginRequest; | |
import org.gradle.plugin.management.internal.PluginRequestInternal; | |
import org.gradle.plugin.management.internal.PluginRequests; | |
import org.gradle.plugin.management.internal.autoapply.AutoAppliedGradleEnterprisePlugin; | |
import org.gradle.plugin.management.internal.autoapply.AutoAppliedPluginRegistry; | |
+import org.gradle.plugin.use.PluginId; | |
+import org.gradle.plugin.use.internal.PluginRequestApplicator; | |
import static org.gradle.initialization.StartParameterBuildOptions.BuildScanOption; | |
-public class GradleEnterpriseAutoAppliedPluginRegistry implements AutoAppliedPluginRegistry { | |
+public class GradleEnterpriseAutoAppliedPluginRegistry implements AutoAppliedPluginRegistry, PluginRequestApplicator.Listener, 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 +86,19 @@ private PluginRequestInternal createGradleEnterprisePluginRequest() { | |
); | |
} | |
+ @Override | |
+ public void pluginApplied(PluginId id) { | |
+ if (id.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); | |
+ } | |
} | |
diff --git a/subprojects/plugin-use/src/main/java/org/gradle/plugin/use/internal/DefaultPluginRequestApplicator.java b/subprojects/plugin-use/src/main/java/org/gradle/plugin/use/internal/DefaultPluginRequestApplicator.java | |
index d09595738d1..2d4de30f20f 100644 | |
--- a/subprojects/plugin-use/src/main/java/org/gradle/plugin/use/internal/DefaultPluginRequestApplicator.java | |
+++ b/subprojects/plugin-use/src/main/java/org/gradle/plugin/use/internal/DefaultPluginRequestApplicator.java | |
@@ -30,6 +30,7 @@ | |
import org.gradle.api.plugins.UnknownPluginException; | |
import org.gradle.internal.classpath.CachedClasspathTransformer; | |
import org.gradle.internal.classpath.ClassPath; | |
+import org.gradle.internal.event.ListenerManager; | |
import org.gradle.internal.exceptions.LocationAwareException; | |
import org.gradle.plugin.management.internal.PluginRequestInternal; | |
import org.gradle.plugin.management.internal.PluginRequests; | |
@@ -66,8 +67,10 @@ public class DefaultPluginRequestApplicator implements PluginRequestApplicator { | |
private final PluginInspector pluginInspector; | |
private final CachedClasspathTransformer cachedClasspathTransformer; | |
private final PluginVersionTracker pluginVersionTracker; | |
+ private final Listener appliedListener; | |
public DefaultPluginRequestApplicator( | |
+ ListenerManager listenerManager, | |
PluginRegistry pluginRegistry, | |
PluginResolverFactory pluginResolverFactory, | |
PluginArtifactRepositoriesProvider pluginRepositoriesProvider, | |
@@ -83,6 +86,7 @@ public DefaultPluginRequestApplicator( | |
this.pluginInspector = pluginInspector; | |
this.cachedClasspathTransformer = cachedClasspathTransformer; | |
this.pluginVersionTracker = pluginVersionTracker; | |
+ this.appliedListener = listenerManager.getBroadcaster(Listener.class); | |
} | |
@Override | |
@@ -199,7 +203,7 @@ private void applyPlugin(PluginRequestInternal request, PluginId id, Runnable ap | |
try { | |
try { | |
applicator.run(); | |
- request.getAcceptanceHandler().run(); | |
+ appliedListener.pluginApplied(id); | |
} catch (UnknownPluginException e) { | |
throw couldNotApply(request, id, e); | |
} catch (Exception e) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment