diff --git a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties index 820e6c020b18c..a2efda8857b1b 100644 --- a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties +++ b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip +distributionSha256Sum=47a5bfed9ef814f90f8debcbbb315e8e7c654109acd224595ea39fca95c5d4da +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionSha256Sum=518a863631feb7452b8f1b3dc2aaee5f388355cc3421bbd0275fbeadd77e84b2 diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavaModulePathPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavaModulePathPluginFuncTest.groovy index e92bf42015cc8..6f5f7b2574969 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavaModulePathPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavaModulePathPluginFuncTest.groovy @@ -26,9 +26,9 @@ class ElasticsearchJavaModulePathPluginFuncTest extends AbstractJavaGradleFuncTe public static final String ES_VERSION = VersionProperties.getElasticsearch() public static final String COMPILE_JAVA_CONFIG = """ + def sep = org.elasticsearch.gradle.OS.current() == org.elasticsearch.gradle.OS.WINDOWS ? ':' : ';' tasks.named('compileJava').configure { doLast { - def sep = org.elasticsearch.gradle.OS.current() == org.elasticsearch.gradle.OS.WINDOWS ? ':' : ';' println "COMPILE_JAVA_COMPILER_ARGS " + options.allCompilerArgs.join(sep) println "COMPILE_JAVA_CLASSPATH " + classpath.asPath } diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchTestBasePluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchTestBasePluginFuncTest.groovy index f67e779733224..06f489a8bc1bf 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchTestBasePluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchTestBasePluginFuncTest.groovy @@ -13,6 +13,11 @@ import org.gradle.testkit.runner.TaskOutcome class ElasticsearchTestBasePluginFuncTest extends AbstractGradleFuncTest { + def setup() { + // see https://github.com/gradle/gradle/issues/24172 + configurationCacheCompatible = false + } + def "can configure nonInputProperties for test tasks"() { given: file("src/test/java/acme/SomeTests.java").text = """ diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalBwcGitPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalBwcGitPluginFuncTest.groovy index 756562ab02725..a3bb5e8327e9e 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalBwcGitPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalBwcGitPluginFuncTest.groovy @@ -14,6 +14,7 @@ import org.gradle.testkit.runner.TaskOutcome class InternalBwcGitPluginFuncTest extends AbstractGitAwareGradleFuncTest { def setup() { + configurationCacheCompatible = false internalBuild() buildFile << """ import org.elasticsearch.gradle.Version; diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/JdkDownloadPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/JdkDownloadPluginFuncTest.groovy index ec546508c677d..2640a5a43e167 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/JdkDownloadPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/JdkDownloadPluginFuncTest.groovy @@ -35,6 +35,10 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { private static final String OPEN_JDK_VERSION = "12.0.1+99@123456789123456789123456789abcde" private static final Pattern JDK_HOME_LOGLINE = Pattern.compile("JDK HOME: (.*)") + def setup() { + configurationCacheCompatible = false + } + @Unroll def "jdk #jdkVendor for #platform#suffix are downloaded and extracted"() { given: @@ -54,10 +58,11 @@ class JdkDownloadPluginFuncTest extends AbstractGradleFuncTest { } } + def theJdks = jdks tasks.register("getJdk") { dependsOn jdks.myJdk doLast { - println "JDK HOME: " + jdks.myJdk + println "JDK HOME: " + theJdks.myJdk } } """ diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy index 12d0ce41e105e..e17f9c7537777 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy @@ -18,7 +18,10 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { def setup() { // required for JarHell to work subProject(":libs:elasticsearch-core") << "apply plugin:'java'" + + configurationCacheCompatible = false } + def "artifacts and tweaked pom is published"() { given: buildFile << """ diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavadocPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavadocPlugin.java index b7d88ce381437..23af84f31cf06 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavadocPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavadocPlugin.java @@ -59,10 +59,12 @@ public void execute(Task task) { var withShadowPlugin = project1.getPlugins().hasPlugin(ShadowPlugin.class); var compileClasspath = project.getConfigurations().getByName("compileClasspath"); + var copiedCompileClasspath = project.getConfigurations().create("copiedCompileClasspath"); + copiedCompileClasspath.extendsFrom(compileClasspath); if (withShadowPlugin) { var shadowConfiguration = project.getConfigurations().getByName("shadow"); var shadowedDependencies = shadowConfiguration.getAllDependencies(); - var nonShadowedCompileClasspath = compileClasspath.copyRecursive( + var nonShadowedCompileClasspath = copiedCompileClasspath.copyRecursive( dependency -> shadowedDependencies.contains(dependency) == false ); configureJavadocForConfiguration(project, false, nonShadowedCompileClasspath); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestArtifactExtension.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestArtifactExtension.java index 4952085f466be..612c308d7b849 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestArtifactExtension.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestArtifactExtension.java @@ -9,6 +9,7 @@ package org.elasticsearch.gradle.internal; import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.dsl.DependencyHandler; import org.gradle.api.plugins.BasePluginExtension; @@ -40,9 +41,18 @@ public void registerTestArtifactFromSourceSet(SourceSet sourceSet) { DependencyHandler dependencies = project.getDependencies(); project.getPlugins().withType(JavaPlugin.class, javaPlugin -> { + Configuration apiElements = project.getConfigurations().getByName(sourceSet.getApiElementsConfigurationName()); + Configuration apiElementsTestArtifacts = project.getConfigurations() + .create(sourceSet.getApiConfigurationName() + "TestArtifacts"); + apiElements.extendsFrom(apiElementsTestArtifacts); Dependency projectDependency = dependencies.create(project); - dependencies.add(sourceSet.getApiElementsConfigurationName(), projectDependency); - dependencies.add(sourceSet.getRuntimeElementsConfigurationName(), projectDependency); + dependencies.add(apiElementsTestArtifacts.getName(), projectDependency); + + Configuration runtimeElements = project.getConfigurations().getByName(sourceSet.getRuntimeElementsConfigurationName()); + Configuration runtimeElementsTestArtifacts = project.getConfigurations() + .create(sourceSet.getRuntimeElementsConfigurationName() + "TestArtifacts"); + runtimeElements.extendsFrom(runtimeElementsTestArtifacts); + dependencies.add(runtimeElementsTestArtifacts.getName(), projectDependency); }); // PolicyUtil doesn't handle classifier notation well probably. // Instead of fixing PoliceUtil we stick to the pattern of changing diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/Jdk.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/Jdk.java index deb556397d09d..f66bcb51ea527 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/Jdk.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/Jdk.java @@ -15,6 +15,7 @@ import org.gradle.api.tasks.TaskDependency; import java.io.File; +import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; @@ -152,7 +153,11 @@ public Object getBinJavaPath() { return new Object() { @Override public String toString() { - return getHomeRoot() + getPlatformBinPath(); + try { + return new File(getHomeRoot() + getPlatformBinPath()).getCanonicalPath(); + } catch (IOException e) { + throw new RuntimeException(e); + } } }; } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParams.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParams.java index c3feb367c76e4..ea5159737080d 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParams.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParams.java @@ -14,6 +14,7 @@ import org.gradle.jvm.toolchain.JavaToolchainSpec; import java.io.File; +import java.io.IOException; import java.lang.reflect.Modifier; import java.time.ZonedDateTime; import java.util.Arrays; @@ -177,7 +178,11 @@ public void reset() { } public void setRuntimeJavaHome(File runtimeJavaHome) { - BuildParams.runtimeJavaHome = requireNonNull(runtimeJavaHome); + try { + BuildParams.runtimeJavaHome = requireNonNull(runtimeJavaHome).getCanonicalFile(); + } catch (IOException e) { + throw new RuntimeException(e); + } } public void setIsRuntimeJavaHomeSet(boolean isRutimeJavaHomeSet) { diff --git a/build-tools-internal/src/main/resources/minimumGradleVersion b/build-tools-internal/src/main/resources/minimumGradleVersion index bbd8e9206ee54..8b22a322d0fea 100644 --- a/build-tools-internal/src/main/resources/minimumGradleVersion +++ b/build-tools-internal/src/main/resources/minimumGradleVersion @@ -1 +1 @@ -7.6.1 \ No newline at end of file +8.0.2 diff --git a/build-tools-internal/src/test/java/org/elasticsearch/gradle/internal/JdkDownloadPluginTests.java b/build-tools-internal/src/test/java/org/elasticsearch/gradle/internal/JdkDownloadPluginTests.java index 19ff1d72705f2..df19e34f9d370 100644 --- a/build-tools-internal/src/test/java/org/elasticsearch/gradle/internal/JdkDownloadPluginTests.java +++ b/build-tools-internal/src/test/java/org/elasticsearch/gradle/internal/JdkDownloadPluginTests.java @@ -11,7 +11,6 @@ import org.gradle.api.NamedDomainObjectContainer; import org.gradle.api.Project; import org.gradle.testfixtures.ProjectBuilder; -import org.junit.BeforeClass; import org.junit.Test; import static org.hamcrest.CoreMatchers.equalTo; @@ -19,12 +18,6 @@ import static org.junit.Assert.assertThrows; public class JdkDownloadPluginTests { - private static Project rootProject; - - @BeforeClass - public static void setupRoot() { - rootProject = ProjectBuilder.builder().build(); - } @Test public void testMissingVendor() { @@ -134,7 +127,7 @@ private void createJdk(Project project, String name, String vendor, String versi } private Project createProject() { - Project project = ProjectBuilder.builder().withParent(rootProject).build(); + Project project = ProjectBuilder.builder().withParent(ProjectBuilder.builder().build()).build(); project.getPlugins().apply("elasticsearch.jdk-download"); return project; } diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java index 3754f57dc3788..b484bc04578d4 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java @@ -8,9 +8,8 @@ package org.elasticsearch.gradle.testclusters; import org.elasticsearch.gradle.FileSystemOperationsAware; -import org.elasticsearch.gradle.util.GradleUtils; import org.gradle.api.Task; -import org.gradle.api.provider.Provider; +import org.gradle.api.services.internal.BuildServiceProvider; import org.gradle.api.services.internal.BuildServiceRegistryInternal; import org.gradle.api.specs.NotSpec; import org.gradle.api.specs.Spec; @@ -85,9 +84,8 @@ public Collection getClusters() { public List getSharedResources() { List locks = new ArrayList<>(super.getSharedResources()); BuildServiceRegistryInternal serviceRegistry = getServices().get(BuildServiceRegistryInternal.class); - Provider throttleProvider = GradleUtils.getBuildService(serviceRegistry, THROTTLE_SERVICE_NAME); - SharedResource resource = serviceRegistry.forService(throttleProvider); - + BuildServiceProvider serviceProvider = serviceRegistry.consume(THROTTLE_SERVICE_NAME, TestClustersThrottle.class); + SharedResource resource = serviceRegistry.forService(serviceProvider); int nodeCount = clusters.stream().mapToInt(cluster -> cluster.getNodes().size()).sum(); if (nodeCount > 0) { for (int i = 0; i < Math.min(nodeCount, resource.getMaxUsages()); i++) { diff --git a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/ConfigurationCacheCompatibleAwareGradleRunner.java b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/ConfigurationCacheCompatibleAwareGradleRunner.java index 8a195fa15c62a..74b92f2ab1389 100644 --- a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/ConfigurationCacheCompatibleAwareGradleRunner.java +++ b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/ConfigurationCacheCompatibleAwareGradleRunner.java @@ -157,4 +157,9 @@ public BuildResult build() throws InvalidRunnerConfigurationException, Unexpecte public BuildResult buildAndFail() throws InvalidRunnerConfigurationException, UnexpectedBuildSuccess { return delegate.buildAndFail(); } + + @Override + public BuildResult run() throws InvalidRunnerConfigurationException { + return delegate.run(); + } } diff --git a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/InternalAwareGradleRunner.java b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/InternalAwareGradleRunner.java index 2ea1eb9042108..38c4a8105b112 100644 --- a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/InternalAwareGradleRunner.java +++ b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/InternalAwareGradleRunner.java @@ -149,4 +149,9 @@ public BuildResult build() throws InvalidRunnerConfigurationException, Unexpecte public BuildResult buildAndFail() throws InvalidRunnerConfigurationException, UnexpectedBuildSuccess { return delegate.buildAndFail(); } + + @Override + public BuildResult run() throws InvalidRunnerConfigurationException { + return delegate.run(); + } } diff --git a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/NormalizeOutputGradleRunner.java b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/NormalizeOutputGradleRunner.java index 0c535eb7e60fb..7c496d1f9597d 100644 --- a/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/NormalizeOutputGradleRunner.java +++ b/build-tools/src/testFixtures/java/org/elasticsearch/gradle/internal/test/NormalizeOutputGradleRunner.java @@ -152,6 +152,11 @@ public BuildResult buildAndFail() throws InvalidRunnerConfigurationException, Un return new NormalizedBuildResult(delegate.buildAndFail()); } + @Override + public BuildResult run() throws InvalidRunnerConfigurationException { + return new NormalizedBuildResult(delegate.run()); + } + private class NormalizedBuildResult implements BuildResult { private BuildResult delegate; private String normalizedString; diff --git a/build.gradle b/build.gradle index e05690e372bb1..d03398bb48e6e 100644 --- a/build.gradle +++ b/build.gradle @@ -280,13 +280,6 @@ tasks.register("branchConsistency") { tasks.named("wrapper").configure { distributionType = 'ALL' doLast { - final DistributionLocator locator = new DistributionLocator() - final GradleVersion version = GradleVersion.version(wrapper.gradleVersion) - final URI distributionUri = locator.getDistributionFor(version, wrapper.distributionType.name().toLowerCase(Locale.ENGLISH)) - final URI sha256Uri = new URI(distributionUri.toString() + ".sha256") - final String sha256Sum = new String(sha256Uri.toURL().bytes) - wrapper.getPropertiesFile() << "distributionSha256Sum=${sha256Sum}\n" - println "Added checksum to wrapper properties" // copy wrapper properties file to build-tools-internal to allow seamless idea integration def file = new File("build-tools-internal/gradle/wrapper/gradle-wrapper.properties") Files.copy(wrapper.getPropertiesFile().toPath(), file.toPath(), REPLACE_EXISTING) diff --git a/distribution/packages/build.gradle b/distribution/packages/build.gradle index 6cb3bcfd6c088..677b01096ccd8 100644 --- a/distribution/packages/build.gradle +++ b/distribution/packages/build.gradle @@ -43,7 +43,7 @@ import java.util.regex.Pattern */ plugins { - id "nebula.ospackage-base" version "9.1.1" + id "com.netflix.nebula.ospackage-base" version "11.0.0" } ['deb', 'rpm'].each { type -> diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 144f03941178c..0216bd998f8fb 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -724,9 +724,9 @@ - - - + + + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cbfa7545..ccebba7710dea 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 820e6c020b18c..a2efda8857b1b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip +distributionSha256Sum=47a5bfed9ef814f90f8debcbbb315e8e7c654109acd224595ea39fca95c5d4da +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionSha256Sum=518a863631feb7452b8f1b3dc2aaee5f388355cc3421bbd0275fbeadd77e84b2 diff --git a/gradlew b/gradlew index 65dcd68d65c82..79a61d421cc4e 100755 --- a/gradlew +++ b/gradlew @@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac diff --git a/plugins/examples/gradle/wrapper/gradle-wrapper.properties b/plugins/examples/gradle/wrapper/gradle-wrapper.properties index 820e6c020b18c..a2efda8857b1b 100644 --- a/plugins/examples/gradle/wrapper/gradle-wrapper.properties +++ b/plugins/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip +distributionSha256Sum=47a5bfed9ef814f90f8debcbbb315e8e7c654109acd224595ea39fca95c5d4da +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionSha256Sum=518a863631feb7452b8f1b3dc2aaee5f388355cc3421bbd0275fbeadd77e84b2