Skip to content

Commit de52ab9

Browse files
committed
Limit new feature to Gradle 8.8+
This is because: - IsolatedAction is not available earlier - Using extension accessors in settings file is not available earlier
1 parent 5a8196f commit de52ab9

File tree

5 files changed

+10
-21
lines changed

5 files changed

+10
-21
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ testing.suites.named<JvmTestSuite>("test") {
7373
description = "Runs tests against Gradle $gradleVersionUnderTest"
7474
systemProperty("gradleVersionUnderTest", gradleVersionUnderTest)
7575
exclude("**/*SamplesTest.class") // Not yet cross-version ready
76+
exclude("**/initialization/**") // Settings plugin only for latest Gradle version
7677
}
7778
}
7879
}

src/main/java/org/gradlex/javamodule/dependencies/initialization/JavaModuleDependenciesSettingsPlugin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,20 @@
1616

1717
package org.gradlex.javamodule.dependencies.initialization;
1818

19+
import org.gradle.api.GradleException;
1920
import org.gradle.api.NonNullApi;
2021
import org.gradle.api.Plugin;
2122
import org.gradle.api.initialization.Settings;
23+
import org.gradle.util.GradleVersion;
2224

2325
@NonNullApi
2426
public abstract class JavaModuleDependenciesSettingsPlugin implements Plugin<Settings> {
2527

2628
@Override
2729
public void apply(Settings settings) {
30+
if (GradleVersion.current().compareTo(GradleVersion.version("8.8")) < 0) {
31+
throw new GradleException("This settings plugin requires Gradle 8.8+");
32+
}
2833
registerExtension(settings);
2934
}
3035

src/main/java/org/gradlex/javamodule/dependencies/initialization/JavaModulesExtension.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@
4141

4242
public abstract class JavaModulesExtension {
4343

44-
static final boolean SUPPORT_PROJECT_ISOLATION =
45-
GradleVersion.current().compareTo(GradleVersion.version("8.8")) >= 0;
46-
4744
private final Settings settings;
4845
private final ModuleInfoCache moduleInfoCache;
4946

@@ -93,11 +90,7 @@ public void versions(String directory) {
9390
String projectName = Paths.get(directory).getFileName().toString();
9491
settings.include(projectName);
9592
settings.project(":" + projectName).setProjectDir(new File(settings.getRootDir(), directory));
96-
if (SUPPORT_PROJECT_ISOLATION) {
97-
settings.getGradle().getLifecycle().beforeProject(new ApplyJavaModuleVersionsPluginAction(projectName));
98-
} else {
99-
settings.getGradle().beforeProject(new ApplyJavaModuleVersionsPluginAction(projectName));
100-
}
93+
settings.getGradle().getLifecycle().beforeProject(new ApplyJavaModuleVersionsPluginAction(projectName));
10194
}
10295

10396
private void includeModule(Module module, File projectDir) {
@@ -122,11 +115,7 @@ private void includeModule(Module module, File projectDir) {
122115

123116
String group = module.getGroup().getOrNull();
124117
List<String> plugins = module.getPlugins().get();
125-
if (SUPPORT_PROJECT_ISOLATION) {
126-
settings.getGradle().getLifecycle().beforeProject(new ApplyPluginsAction(artifact, group, plugins, mainModuleName, moduleInfoCache));
127-
} else {
128-
settings.getGradle().beforeProject(new ApplyPluginsAction(artifact, group, plugins, mainModuleName, moduleInfoCache));
129-
}
118+
settings.getGradle().getLifecycle().beforeProject(new ApplyPluginsAction(artifact, group, plugins, mainModuleName, moduleInfoCache));
130119
}
131120

132121
@NonNullApi

src/main/java/org/gradlex/javamodule/dependencies/initialization/RootPluginsExtension.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
import javax.inject.Inject;
2626

27-
import static org.gradlex.javamodule.dependencies.initialization.JavaModulesExtension.SUPPORT_PROJECT_ISOLATION;
28-
2927
public abstract class RootPluginsExtension {
3028

3129
private final Settings settings;
@@ -36,11 +34,7 @@ public RootPluginsExtension(Settings settings) {
3634
}
3735

3836
public void id(String id) {
39-
if (SUPPORT_PROJECT_ISOLATION) {
40-
settings.getGradle().getLifecycle().beforeProject(new ApplyPluginAction(id));
41-
} else {
42-
settings.getGradle().beforeProject(new ApplyPluginAction(id));
43-
}
37+
settings.getGradle().getLifecycle().beforeProject(new ApplyPluginAction(id));
4438
}
4539

4640
@NonNullApi

src/test/groovy/org/gradlex/javamodule/dependencies/test/SettingsPluginTest.groovy renamed to src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.gradlex.javamodule.dependencies.test
1+
package org.gradlex.javamodule.dependencies.test.initialization
22

33
import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild
44
import spock.lang.Specification

0 commit comments

Comments
 (0)