Skip to content

Commit fc0e551

Browse files
authored
Merge pull request #41 from optyfr/main
Compatibility with Gradle 9
2 parents 8abc0cb + 8ec4f84 commit fc0e551

21 files changed

Lines changed: 158 additions & 91 deletions

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ jobs:
1111
uses: actions/setup-java@v3
1212
with:
1313
distribution: 'zulu'
14-
java-version: 11
14+
java-version: 17
1515
- name: Build with Gradle
1616
run: ./gradlew build

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ GWT Gradle Plugin
55
Release notes
66
-------------
77

8+
* 1.3.0: Compatibility with Gradle versions 9.x
9+
* Minimum Gradle version 8.x
10+
* Gradle 8.14.4 build
11+
* Minimum Java 17 for building
12+
13+
---------
14+
815
* 1.2.1: Fix - with envClassPath true classpath entries are now split at
916
semicolons
1017

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id "java-library"
33
id "java-gradle-plugin"
44
id "com.gradle.plugin-publish" version "2.0.0"
5-
id "pl.allegro.tech.build.axion-release" version "1.16.1"
5+
id "pl.allegro.tech.build.axion-release" version "1.21.1"
66
id "com.vanniktech.maven.publish" version "0.26.0"
77
}
88

@@ -27,16 +27,16 @@ dependencies {
2727
}
2828

2929
processResources {
30-
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
30+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
3131
}
3232

3333
publishing {
3434
publications {
3535
pluginPublication(MavenPublication) {
3636
from components.java
37-
groupId project.group
38-
artifactId project.name
39-
version project.version
37+
groupId = project.group
38+
artifactId = project.name
39+
version = project.version
4040
}
4141
}
4242
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase = GRADLE_USER_HOME
22
distributionPath = wrapper/dists
33
zipStoreBase = GRADLE_USER_HOME
44
zipStorePath = wrapper/dists
5-
distributionUrl = https\://services.gradle.org/distributions/gradle-8.5-bin.zip
5+
distributionUrl = https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip

src/main/java/de/esoco/gwt/gradle/GwtLibPlugin.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.gradle.api.artifacts.dsl.DependencyHandler;
2424
import org.gradle.api.file.FileCollection;
2525
import org.gradle.api.plugins.JavaPlugin;
26-
import org.gradle.api.plugins.JavaPluginConvention;
26+
import org.gradle.api.plugins.JavaPluginExtension;
2727
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
2828
import org.gradle.api.plugins.WarPlugin;
2929
import org.gradle.api.tasks.SourceSet;
@@ -64,12 +64,12 @@ public void apply(Project project) {
6464
}
6565

6666
private void includeSourcesForTest(Project project) {
67-
JavaPluginConvention javaConvention = project.getConvention()
68-
.getPlugin(JavaPluginConvention.class);
67+
JavaPluginExtension javaExtension = project.getExtensions()
68+
.getByType(JavaPluginExtension.class);
6969

70-
SourceSet mainSourset = javaConvention.getSourceSets()
70+
SourceSet mainSourset = javaExtension.getSourceSets()
7171
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
72-
SourceSet testSourset = javaConvention.getSourceSets()
72+
SourceSet testSourset = javaExtension.getSourceSets()
7373
.getByName(SourceSet.TEST_SOURCE_SET_NAME);
7474

7575
FileCollection testClasspath = project.files(mainSourset.getAllSource()
@@ -85,16 +85,16 @@ private void includeSourcesForTest(Project project) {
8585
Test test = project.getTasks().withType(Test.class).getByName("test");
8686
test.getSystemProperties()
8787
.put("gwt.persistentunitcachedir",
88-
project.getBuildDir() + GwtExtension.DIRECTORY + "/test");
88+
project.getLayout().getBuildDirectory().getAsFile().get() + GwtExtension.DIRECTORY + "/test");
8989
}
9090

9191
private void includeSourcesToJar(Project project) {
9292
Jar jarTask = project.getTasks()
9393
.withType(Jar.class)
9494
.getByName("jar");
95-
JavaPluginConvention javaConvention = project.getConvention()
96-
.getPlugin(JavaPluginConvention.class);
97-
SourceSet mainSourset = javaConvention.getSourceSets()
95+
JavaPluginExtension javaExtension = project.getExtensions()
96+
.getByType(JavaPluginExtension.class);
97+
SourceSet mainSourset = javaExtension.getSourceSets()
9898
.getByName("main");
9999
jarTask.from(mainSourset.getAllSource());
100100
}

src/main/java/de/esoco/gwt/gradle/GwtPlugin.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ public void apply(final Project project) {
7171
// }
7272

7373
private void createStopTask(Project project) {
74-
project.getTasks().create(GwtStopTask.NAME, GwtStopTask.class);
74+
project.getTasks().register(GwtStopTask.NAME, GwtStopTask.class);
7575
}
7676

7777
private void createCheckTask(final Project project) {
78-
project.getTasks().create(GwtCheckTask.NAME, GwtCheckTask.class);
78+
project.getTasks().register(GwtCheckTask.NAME, GwtCheckTask.class);
7979
final GwtExtension extension = project.getExtensions().getByType(GwtExtension.class);
8080
final Task checkTask = project.getTasks().getByName(JavaBasePlugin.CHECK_TASK_NAME);
8181
checkTask.dependsOn(GwtCheckTask.NAME);
@@ -88,7 +88,7 @@ public void execute(final GwtCheckTask task) {
8888
}
8989

9090
private void createCompileTask(final Project project) {
91-
project.getTasks().create(GwtCompileTask.NAME, GwtCompileTask.class);
91+
project.getTasks().register(GwtCompileTask.NAME, GwtCompileTask.class);
9292
final GwtExtension extension = project.getExtensions().getByType(GwtExtension.class);
9393
final War warTask = project.getTasks().withType(War.class).getByName("war");
9494
warTask.dependsOn(GwtCompileTask.NAME);
@@ -102,11 +102,11 @@ public void execute(final GwtCompileTask task) {
102102
}
103103

104104
private void createRunTask(final Project project) {
105-
project.getTasks().create(GwtRunTask.NAME, GwtRunTask.class);
105+
project.getTasks().register(GwtRunTask.NAME, GwtRunTask.class);
106106
}
107107

108108
private void createCodeServerTask(final Project project) {
109-
project.getTasks().create(GwtCodeServerTask.NAME, GwtCodeServerTask.class);
109+
project.getTasks().register(GwtCodeServerTask.NAME, GwtCodeServerTask.class);
110110
final GwtExtension extension = project.getExtensions().getByType(GwtExtension.class);
111111
project.getTasks().withType(GwtCodeServerTask.class, new Action<GwtCodeServerTask>() {
112112
@Override
@@ -118,7 +118,7 @@ public void execute(final GwtCodeServerTask task) {
118118
}
119119

120120
private void createDevTask(final Project project) {
121-
project.getTasks().create(GwtDevTask.NAME, GwtDevTask.class);
121+
project.getTasks().register(GwtDevTask.NAME, GwtDevTask.class);
122122
final GwtExtension extension = project.getExtensions().getByType(GwtExtension.class);
123123
project.getTasks().withType(GwtDevTask.class, new Action<GwtDevTask>() {
124124
@Override
@@ -127,4 +127,4 @@ public void execute(final GwtDevTask task) {
127127
}
128128
});
129129
}
130-
}
130+
}

src/main/java/de/esoco/gwt/gradle/command/AbstractCommand.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@
2929
import org.gradle.api.artifacts.ProjectDependency;
3030
import org.gradle.api.file.FileCollection;
3131
import org.gradle.api.plugins.JavaPlugin;
32-
import org.gradle.api.plugins.JavaPluginConvention;
32+
import org.gradle.api.plugins.JavaPluginExtension;
3333
import org.gradle.api.tasks.SourceSet;
34+
import org.gradle.process.ExecOperations;
3435
import org.gradle.process.ExecResult;
3536
import org.gradle.process.JavaExecSpec;
3637

@@ -51,11 +52,14 @@ public abstract class AbstractCommand {
5152

5253
private final String mainClass;
5354

55+
private final ExecOperations execOperations;
56+
5457
private JavaOption javaOptions;
5558

56-
public AbstractCommand(Project project, String mainClass) {
59+
public AbstractCommand(Project project, ExecOperations execOperations, String mainClass) {
5760

5861
this.project = project;
62+
this.execOperations = execOperations;
5963
this.mainClass = mainClass;
6064

6165
javaArgs.add("-Dfile.encoding=" + Charset.defaultCharset().name());
@@ -162,7 +166,7 @@ public void configureJavaArgs(JavaOption javaOptions) {
162166

163167
public void execute() {
164168

165-
ExecResult execResult = project.javaexec(new Action<JavaExecSpec>() {
169+
ExecResult execResult = execOperations.javaexec(new Action<JavaExecSpec>() {
166170

167171
@Override
168172
public void execute(JavaExecSpec spec) {
@@ -202,15 +206,15 @@ protected Collection<File> getDependencySourceDirs(Project project) {
202206
for (Dependency dep : depSet) {
203207
if (dep instanceof ProjectDependency) {
204208
Project projectDependency =
205-
((ProjectDependency) dep).getDependencyProject();
209+
project.project(((ProjectDependency) dep).getPath());
206210

207211
if (projectDependency
208212
.getPlugins()
209213
.hasPlugin(GwtLibPlugin.class)) {
210-
JavaPluginConvention javaConvention = projectDependency
211-
.getConvention()
212-
.getPlugin(JavaPluginConvention.class);
213-
SourceSet mainSourceSet = javaConvention
214+
JavaPluginExtension javaExtension = projectDependency
215+
.getExtensions()
216+
.getByType(JavaPluginExtension.class);
217+
SourceSet mainSourceSet = javaExtension
214218
.getSourceSets()
215219
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
216220

src/main/java/de/esoco/gwt/gradle/command/CodeServerCommand.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@
2323
import org.gradle.api.artifacts.Configuration;
2424
import org.gradle.api.artifacts.ConfigurationContainer;
2525
import org.gradle.api.file.FileCollection;
26-
import org.gradle.api.plugins.JavaPluginConvention;
26+
import org.gradle.api.plugins.JavaPluginExtension;
2727
import org.gradle.api.tasks.SourceSet;
28+
import org.gradle.process.ExecOperations;
2829

2930
import java.io.File;
3031

@@ -33,10 +34,11 @@
3334

3435
public class CodeServerCommand extends AbstractCommand {
3536

36-
public CodeServerCommand(Project project, GwtExtension extension,
37+
public CodeServerCommand(Project project, ExecOperations execOperations,
38+
GwtExtension extension,
3739
Collection<String> modules) {
3840

39-
super(project, "com.google.gwt.dev.codeserver.CodeServer");
41+
super(project, execOperations, "com.google.gwt.dev.codeserver.CodeServer");
4042

4143
configure(project, extension, modules);
4244
}
@@ -55,7 +57,7 @@ public void configure(Project project, GwtExtension extension,
5557
configs.getByName(GwtLibPlugin.CONF_GWT_SDK);
5658

5759
SourceSet mainSourceSet =
58-
project.getConvention().getPlugin(JavaPluginConvention.class)
60+
project.getExtensions().getByType(JavaPluginExtension.class)
5961
.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
6062
FileCollection sources =
6163
project.files(mainSourceSet.getAllJava().getSrcDirs());

src/main/java/de/esoco/gwt/gradle/command/CompileCommand.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.gradle.api.artifacts.Configuration;
2323
import org.gradle.api.file.FileCollection;
2424
import org.gradle.api.plugins.JavaPlugin;
25+
import org.gradle.process.ExecOperations;
2526

2627
import java.io.File;
2728

@@ -30,11 +31,12 @@
3031

3132
public class CompileCommand extends AbstractCommand {
3233

33-
public CompileCommand(Project project, CompilerOption compilerOptions,
34+
public CompileCommand(Project project, ExecOperations execOperations,
35+
CompilerOption compilerOptions,
3436
FileCollection sources, File war,
3537
Collection<String> modules) {
3638

37-
super(project, "com.google.gwt.dev.Compiler");
39+
super(project, execOperations, "com.google.gwt.dev.Compiler");
3840

3941
configure(project, compilerOptions, sources, war, modules);
4042
}
@@ -50,7 +52,7 @@ private void configure(Project project, CompilerOption compilerOptions,
5052
.getByName(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME);
5153

5254
configureJavaArgs(compilerOptions);
53-
addJavaArgs("-Dgwt.persistentunitcachedir=" + project.getBuildDir() +
55+
addJavaArgs("-Dgwt.persistentunitcachedir=" + project.getLayout().getBuildDirectory().getAsFile().get() +
5456
"/" + GwtExtension.DIRECTORY + "/work/cache");
5557

5658
for (File sourceDir : sources) {

src/main/java/de/esoco/gwt/gradle/command/JettyServerCommand.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,18 @@
2222
import org.gradle.api.artifacts.Configuration;
2323
import org.gradle.api.artifacts.ConfigurationContainer;
2424
import org.gradle.api.plugins.WarPlugin;
25+
import org.gradle.process.ExecOperations;
2526

2627
import java.io.File;
2728

2829

2930
public class JettyServerCommand extends AbstractCommand {
3031

31-
public JettyServerCommand(Project project, JettyOption jettyOption,
32+
public JettyServerCommand(Project project, ExecOperations execOperations,
33+
JettyOption jettyOption,
3234
File jettyConf) {
3335

34-
super(project, "org.eclipse.jetty.runner.Runner");
36+
super(project, execOperations, "org.eclipse.jetty.runner.Runner");
3537

3638
configure(project, jettyOption, jettyConf);
3739
}

0 commit comments

Comments
 (0)