Skip to content

Commit 660cec9

Browse files
authored
Merge pull request #315 from pshevche/pshevche/always-use-new-api-if-available
Always use the new Develocity API even if plugin applied using old ID
2 parents 929ecf2 + 8bd59f8 commit 660cec9

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/main/java/com/gradle/CommonCustomUserDataGradlePlugin.java

+17-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import org.gradle.api.Plugin;
1111
import org.gradle.api.Project;
1212
import org.gradle.api.initialization.Settings;
13+
import org.gradle.api.plugins.ExtensionAware;
14+
import org.gradle.api.plugins.ExtensionContainer;
1315
import org.gradle.api.provider.ProviderFactory;
1416
import org.gradle.caching.configuration.BuildCacheConfiguration;
1517

@@ -92,12 +94,12 @@ private void applySettingsPlugin(Settings settings) {
9294
AtomicBoolean somePluginAlreadyConfigured = new AtomicBoolean(false);
9395
settings.getPluginManager().withPlugin("com.gradle.develocity", __ -> {
9496
if (somePluginAlreadyConfigured.compareAndSet(false, true)) {
95-
applySettingsPlugin(new DevelocityConfigurationAdapter(settings.getExtensions().getByName("develocity")), providers, settings);
97+
applySettingsPlugin(createDevelocityAdapter(settings), providers, settings);
9698
}
9799
});
98100
settings.getPluginManager().withPlugin("com.gradle.enterprise", __ -> {
99101
if (somePluginAlreadyConfigured.compareAndSet(false, true)) {
100-
applySettingsPlugin(new GradleEnterpriseExtensionAdapter(settings.getExtensions().getByName("gradleEnterprise")), providers, settings);
102+
applySettingsPlugin(createDevelocityAdapter(settings), providers, settings);
101103
}
102104
});
103105
}
@@ -107,16 +109,27 @@ private void applyProjectPluginGradle5(Project project) {
107109
AtomicBoolean somePluginAlreadyConfigured = new AtomicBoolean(false);
108110
project.getPluginManager().withPlugin("com.gradle.develocity", __ -> {
109111
if (somePluginAlreadyConfigured.compareAndSet(false, true)) {
110-
applyProjectPlugin(project, new DevelocityConfigurationAdapter(project.getExtensions().getByName("develocity")));
112+
applyProjectPlugin(project, createDevelocityAdapter(project));
111113
}
112114
});
113115
project.getPluginManager().withPlugin("com.gradle.build-scan", __ -> {
114116
if (somePluginAlreadyConfigured.compareAndSet(false, true)) {
115-
applyProjectPlugin(project, new GradleEnterpriseExtensionAdapter(project.getExtensions().getByName("gradleEnterprise")));
117+
applyProjectPlugin(project, createDevelocityAdapter(project));
116118
}
117119
});
118120
}
119121

122+
private static <T extends ExtensionAware> DevelocityAdapter createDevelocityAdapter(T target) {
123+
ExtensionContainer extensions = target.getExtensions();
124+
125+
Object develocityExtension = extensions.findByName("develocity");
126+
if (develocityExtension != null) {
127+
return new DevelocityConfigurationAdapter(develocityExtension);
128+
}
129+
130+
return new GradleEnterpriseExtensionAdapter(extensions.getByName("gradleEnterprise"));
131+
}
132+
120133
private void applyProjectPluginGradle4(Project project) {
121134
ensureRootProject(project);
122135
project.getPluginManager().withPlugin("com.gradle.build-scan",

0 commit comments

Comments
 (0)