Skip to content

Commit 0567d03

Browse files
committed
Update to Gradle 8.1
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
1 parent 1856090 commit 0567d03

File tree

8 files changed

+74
-11
lines changed

8 files changed

+74
-11
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ plugins {
5454
id 'opensearch.docker-support'
5555
id 'opensearch.global-build-info'
5656
id "com.diffplug.spotless" version "6.17.0" apply false
57-
id "org.gradle.test-retry" version "1.5.1" apply false
57+
id "org.gradle.test-retry" version "1.5.2" apply false
5858
id "test-report-aggregation"
5959
id 'jacoco-report-aggregation'
6060
}

buildSrc/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Properties props = VersionPropertiesLoader.loadBuildSrcVersion(project.file('ver
6161
version = props.getProperty("opensearch")
6262

6363
def generateVersionProperties = tasks.register("generateVersionProperties", WriteProperties) {
64-
outputFile = "${buildDir}/version.properties"
64+
destinationFile = file("${buildDir}/version.properties")
6565
comment = 'Generated version properties'
6666
properties(props)
6767
}
@@ -115,7 +115,7 @@ dependencies {
115115
api 'org.jdom:jdom2:2.0.6.1'
116116
api "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${props.getProperty('kotlin')}"
117117
api 'de.thetaphi:forbiddenapis:3.5.1'
118-
api 'com.avast.gradle:gradle-docker-compose-plugin:0.16.11'
118+
api 'com.avast.gradle:gradle-docker-compose-plugin:0.16.12'
119119
api "org.yaml:snakeyaml:${props.getProperty('snakeyaml')}"
120120
api 'org.apache.maven:maven-model:3.9.1'
121121
api 'com.networknt:json-schema-validator:1.0.78'

buildSrc/src/main/java/org/opensearch/gradle/OpenSearchTestBasePlugin.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,20 @@
3838
import org.opensearch.gradle.test.ErrorReportingTestListener;
3939
import org.opensearch.gradle.util.Util;
4040
import org.gradle.api.Action;
41+
import org.gradle.api.ExtensiblePolymorphicDomainObjectContainer;
4142
import org.gradle.api.JavaVersion;
4243
import org.gradle.api.Plugin;
4344
import org.gradle.api.Project;
4445
import org.gradle.api.Task;
4546
import org.gradle.api.artifacts.Configuration;
4647
import org.gradle.api.file.FileCollection;
48+
import org.gradle.api.plugins.JvmTestSuitePlugin;
49+
import org.gradle.api.plugins.jvm.JvmTestSuite;
4750
import org.gradle.api.tasks.SourceSet;
4851
import org.gradle.api.tasks.SourceSetContainer;
4952
import org.gradle.api.tasks.testing.Test;
53+
import org.gradle.testing.base.TestingExtension;
54+
import org.gradle.testing.base.TestSuite;
5055

5156
import java.io.File;
5257
import java.util.HashMap;
@@ -223,7 +228,24 @@ public void execute(Task t) {
223228
// Add the shadow JAR artifact itself
224229
FileCollection shadowJar = project.files(project.getTasks().named("shadowJar"));
225230

226-
test.setClasspath(test.getClasspath().minus(mainRuntime).plus(shadowConfig).plus(shadowJar));
231+
// See please https://docs.gradle.org/8.1-rc-1/userguide/upgrading_version_8.html#test_task_default_classpath
232+
boolean isClasspathSet = false;
233+
final TestingExtension testing = project.getExtensions().findByType(TestingExtension.class);
234+
if (testing != null) {
235+
final ExtensiblePolymorphicDomainObjectContainer<TestSuite> testSuites = testing.getSuites();
236+
final TestSuite suite = testSuites.findByName(JvmTestSuitePlugin.DEFAULT_TEST_SUITE_NAME);
237+
if (suite != null && suite instanceof JvmTestSuite) {
238+
final JvmTestSuite jvmTestSuite = (JvmTestSuite) suite;
239+
test.setClasspath(
240+
jvmTestSuite.getSources().getRuntimeClasspath().minus(mainRuntime).plus(shadowConfig).plus(shadowJar)
241+
);
242+
isClasspathSet = true;
243+
}
244+
}
245+
246+
if (!isClasspathSet) {
247+
test.setClasspath(test.getClasspath().minus(mainRuntime).plus(shadowConfig).plus(shadowJar));
248+
}
227249
});
228250
});
229251
}

buildSrc/src/main/java/org/opensearch/gradle/precommit/TestingConventionsTasks.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,25 @@
3535
import org.opensearch.gradle.util.GradleUtils;
3636
import org.opensearch.gradle.util.Util;
3737
import org.gradle.api.DefaultTask;
38+
import org.gradle.api.ExtensiblePolymorphicDomainObjectContainer;
3839
import org.gradle.api.NamedDomainObjectContainer;
3940
import org.gradle.api.Task;
4041
import org.gradle.api.file.FileCollection;
4142
import org.gradle.api.file.FileTree;
43+
import org.gradle.api.plugins.JvmTestSuitePlugin;
44+
import org.gradle.api.plugins.jvm.JvmTestSuite;
4245
import org.gradle.api.tasks.Classpath;
4346
import org.gradle.api.tasks.Input;
4447
import org.gradle.api.tasks.OutputFile;
4548
import org.gradle.api.tasks.SourceSet;
4649
import org.gradle.api.tasks.SourceSetContainer;
4750
import org.gradle.api.tasks.TaskAction;
4851
import org.gradle.api.tasks.testing.Test;
52+
import org.gradle.api.tasks.util.PatternFilterable;
53+
import org.gradle.api.tasks.util.PatternSet;
54+
import org.gradle.internal.Factory;
55+
import org.gradle.testing.base.TestSuite;
56+
import org.gradle.testing.base.TestingExtension;
4957

5058
import java.io.File;
5159
import java.io.IOException;
@@ -70,6 +78,8 @@
7078
import java.util.stream.Collectors;
7179
import java.util.stream.Stream;
7280

81+
import javax.inject.Inject;
82+
7383
public class TestingConventionsTasks extends DefaultTask {
7484

7585
private static final String TEST_METHOD_PREFIX = "test";
@@ -85,13 +95,42 @@ public TestingConventionsTasks() {
8595
naming = getProject().container(TestingConventionRule.class);
8696
}
8797

98+
@Inject
99+
protected Factory<PatternSet> getPatternSetFactory() {
100+
throw new UnsupportedOperationException();
101+
}
102+
88103
@Input
89104
public Map<String, Set<File>> getClassFilesPerEnabledTask() {
90105
return getProject().getTasks()
91106
.withType(Test.class)
92107
.stream()
93108
.filter(Task::getEnabled)
94-
.collect(Collectors.toMap(Task::getPath, task -> task.getCandidateClassFiles().getFiles()));
109+
.collect(Collectors.toMap(Task::getPath, task -> {
110+
// See please https://docs.gradle.org/8.1-rc-1/userguide/upgrading_version_8.html#test_task_default_classpath
111+
final TestingExtension testing = task.getProject().getExtensions().findByType(TestingExtension.class);
112+
if (testing != null) {
113+
final ExtensiblePolymorphicDomainObjectContainer<TestSuite> testSuites = testing.getSuites();
114+
final TestSuite suite = testSuites.findByName(JvmTestSuitePlugin.DEFAULT_TEST_SUITE_NAME);
115+
if (suite != null && suite instanceof JvmTestSuite) {
116+
final JvmTestSuite jvmTestSuite = (JvmTestSuite) suite;
117+
final PatternFilterable patternSet = getPatternSetFactory().create()
118+
.include(task.getIncludes())
119+
.exclude(task.getExcludes());
120+
final Set<File> files = jvmTestSuite.getSources()
121+
.getOutput()
122+
.getClassesDirs()
123+
.getAsFileTree()
124+
.matching(patternSet)
125+
.getFiles();
126+
if (!files.isEmpty()) {
127+
return files;
128+
}
129+
}
130+
}
131+
132+
return task.getCandidateClassFiles().getFiles();
133+
}));
95134
}
96135

97136
@Input

gradle/wrapper/gradle-wrapper.jar

468 Bytes
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
distributionBase=GRADLE_USER_HOME
1313
distributionPath=wrapper/dists
14-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
14+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-rc-3-all.zip
1515
zipStoreBase=GRADLE_USER_HOME
1616
zipStorePath=wrapper/dists
17-
distributionSha256Sum=47a5bfed9ef814f90f8debcbbb315e8e7c654109acd224595ea39fca95c5d4da
17+
distributionSha256Sum=a5c8c484849304d0915c724fcf938268dc89efcbb77d044b53c2d53ca451eee2

gradlew

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,6 @@ done
8585
APP_BASE_NAME=${0##*/}
8686
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
8787

88-
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89-
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
90-
9188
# Use the maximum available, or set MAX_FD != -1 to use that value.
9289
MAX_FD=maximum
9390

@@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
197194
done
198195
fi
199196

197+
198+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
199+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
200+
200201
# Collect all arguments for the java command;
201202
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
202203
# shell script including quotes and variable substitutions, so put them in

plugins/repository-hdfs/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,8 @@ for (String integTestTaskName : ['integTestHa', 'integTestSecure', 'integTestSec
227227
.resolve("ports")
228228
}
229229
nonInputProperties.systemProperty "test.hdfs-fixture.ports", file("$portsFileDir/ports")
230-
classpath += files(portsFileDir)
230+
// See please https://docs.gradle.org/8.1-rc-1/userguide/upgrading_version_8.html#test_task_default_classpath
231+
classpath = testing.suites.test.sources.runtimeClasspath + files(portsFileDir)
231232
// Copy ports file to separate location which is placed on the test classpath
232233
doFirst {
233234
mkdir(portsFileDir)

0 commit comments

Comments
 (0)