Skip to content

Commit c20d500

Browse files
committed
Merge branch 'KengoTODA-replace-outdated-api'
2 parents b0130b7 + c1cf71e commit c20d500

3 files changed

Lines changed: 29 additions & 6 deletions

File tree

src/main/java/org/javamodularity/moduleplugin/ModuleName.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
import org.gradle.api.logging.Logger;
1010
import org.gradle.api.logging.Logging;
1111
import org.gradle.api.plugins.JavaPluginConvention;
12+
import org.gradle.api.plugins.JavaPluginExtension;
1213
import org.gradle.api.tasks.SourceSet;
14+
import org.gradle.util.GradleVersion;
1315

1416
import java.io.IOException;
1517
import java.nio.file.Files;
@@ -23,8 +25,15 @@ class ModuleName {
2325
Optional<String> findModuleName(Project project) {
2426
SourceSet main;
2527
try {
26-
JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);
27-
main = javaConvention.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
28+
if (GradleVersion.current().compareTo(GradleVersion.version("7.1")) >= 0) {
29+
// JavaPluginExtension#getSourceSets() is supported from Gradle 7.1
30+
// https://docs.gradle.org/7.1/javadoc/org/gradle/api/plugins/JavaPluginExtension.html#getSourceSets--
31+
JavaPluginExtension javaPluginExtension = project.getExtensions().getByType(JavaPluginExtension.class);
32+
main = javaPluginExtension.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
33+
} else {
34+
JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);
35+
main = javaConvention.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
36+
}
2837
} catch (IllegalStateException | UnknownDomainObjectException e) {
2938
LOGGER.warn("Cannot obtain JavaPluginConvention", e);
3039
return Optional.empty();

src/main/java/org/javamodularity/moduleplugin/tasks/CompileModuleInfoTask.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,18 @@ public void execute(Jar jar) {
6565
jar.doFirst(new Action<Task>() {
6666
@Override
6767
public void execute(Task task) {
68-
File classesDir = CompileModuleInfoTask.this.helper().mainSourceSet().getJava().getOutputDir();
68+
File classesDir;
69+
if (GradleVersion.current().compareTo(GradleVersion.version("6.1")) >= 0) {
70+
// SourceDirectorySet#getClassesDirectory() is supported from Gradle 6.1
71+
// https://docs.gradle.org/6.1/javadoc/org/gradle/api/file/SourceDirectorySet.html#getClassesDirectory--
72+
classesDir = helper().mainSourceSet().getJava().getClassesDirectory().get().getAsFile();
73+
} else {
74+
classesDir = helper().mainSourceSet().getJava().getOutputDir();
75+
}
76+
6977
File mainModuleInfoFile = new File(classesDir, "module-info.class");
7078
File customModuleInfoFile = new File(moduleInfoDir, "module-info.class");
71-
if (mainModuleInfoFile.isFile() && customModuleInfoFile.isFile()) {
79+
if(mainModuleInfoFile.isFile() && customModuleInfoFile.isFile()) {
7280
mainModuleInfoFile.delete();
7381
}
7482
}
@@ -90,7 +98,13 @@ private JavaCompile preconfigureCompileModuleInfoJava(JavaCompile compileJava) {
9098
compileModuleInfoJava.setSource(pathToModuleInfoJava());
9199
compileModuleInfoJava.getOptions().setSourcepath(project.files(pathToModuleInfoJava().getParent()));
92100

93-
compileModuleInfoJava.setDestinationDir(helper().getModuleInfoDir());
101+
if (GradleVersion.current().compareTo(GradleVersion.version("6.1")) >= 0) {
102+
// AbstractCompile#getDestinationDirectory() is supported from Gradle 6.1
103+
// https://docs.gradle.org/6.1/javadoc/org/gradle/api/tasks/compile/AbstractCompile.html#getDestinationDirectory--
104+
compileModuleInfoJava.getDestinationDirectory().set(helper().getModuleInfoDir());
105+
} else {
106+
compileModuleInfoJava.setDestinationDir(helper().getModuleInfoDir());
107+
}
94108

95109
// we need all the compiled classes before compiling module-info.java
96110
compileModuleInfoJava.dependsOn(compileJava);

src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void before() throws IOException {
3838

3939
@CartesianProductTest(name = "smokeTest({arguments})")
4040
@CartesianValueSource(strings = {"test-project", "test-project-kotlin", "test-project-groovy"})
41-
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0"})
41+
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.1", "7.2"})
4242
void smokeTest(String projectName, String gradleVersion) {
4343
LOGGER.info("Executing smokeTest with Gradle {}", gradleVersion);
4444
var result = GradleRunner.create()

0 commit comments

Comments
 (0)