Skip to content

Commit 59de0ab

Browse files
committed
fix: replace deprecated API only if Gradle is newer or same to v7.1
1 parent 3cca450 commit 59de0ab

1 file changed

Lines changed: 11 additions & 2 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();

0 commit comments

Comments
 (0)