From ece4c76457681207aa7bb183374c1f2d597a9c15 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Tue, 5 May 2020 16:16:47 +0200 Subject: [PATCH 1/4] Move bwcVersions extension property to BuildParams - resolved in GlobalBuildInfoPlugin - TODO: probably more bwc related work can be moved from build scripts into certain plugins. --- build.gradle | 12 ++--------- .../gradle/DistributionDownloadPlugin.java | 4 +--- .../gradle/info/GlobalBuildInfoPlugin.java | 21 ++++++++++++++++++- .../gradle/test/DistroTestPlugin.java | 2 +- .../org/elasticsearch/gradle/BwcVersions.java | 0 .../gradle/info/BuildParams.java | 9 ++++++++ .../distribution-download/build.gradle | 4 +--- distribution/bwc/build.gradle | 2 +- gradle/bwc-test.gradle | 3 ++- qa/full-cluster-restart/build.gradle | 2 +- qa/mixed-cluster/build.gradle | 2 +- qa/repository-multi-version/build.gradle | 2 +- qa/rolling-upgrade/build.gradle | 2 +- qa/verify-version-constants/build.gradle | 2 +- test/framework/build.gradle | 7 ++++--- x-pack/qa/full-cluster-restart/build.gradle | 3 ++- x-pack/qa/rolling-upgrade-basic/build.gradle | 3 ++- .../build.gradle | 3 ++- x-pack/qa/rolling-upgrade/build.gradle | 3 ++- 19 files changed, 54 insertions(+), 32 deletions(-) rename buildSrc/src/{main => minimumRuntime}/java/org/elasticsearch/gradle/BwcVersions.java (100%) diff --git a/build.gradle b/build.gradle index 80361d979d5b2..2fd9217e5e43b 100644 --- a/build.gradle +++ b/build.gradle @@ -109,11 +109,6 @@ subprojects { } } -/* Introspect all versions of ES that may be tested against for backwards - * compatibility. It is *super* important that this logic is the same as the - * logic in VersionUtils.java. */ -BwcVersions versions = new BwcVersions(file('server/src/main/java/org/elasticsearch/Version.java').readLines('UTF-8')) - task updateCIBwcVersions() { doLast { File yml = file(".ci/bwcVersions") @@ -144,9 +139,6 @@ allprojects { gradle.startParameter.taskNames.contains('eclipse') || // Detects gradle launched from the command line to do eclipse stuff gradle.startParameter.taskNames.contains('cleanEclipse') - // for BWC testing - bwcVersions = versions - buildMetadata = buildMetadataMap } } @@ -160,7 +152,7 @@ task verifyVersions { // Fetch the metadata and parse the xml into Version instances because it's more straight forward here // rather than bwcVersion ( VersionCollection ). new URL('https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/maven-metadata.xml').openStream().withStream { s -> - bwcVersions.compareToAuthoritative( + BuildParams.bwcVersions.compareToAuthoritative( new XmlParser().parse(s) .versioning.versions.version .collect { it.text() }.findAll { it ==~ /\d+\.\d+\.\d+/ } @@ -168,7 +160,7 @@ task verifyVersions { ) } String ciYml = file(".ci/bwcVersions").text - bwcVersions.indexCompatible.each { + BuildParams.bwcVersions.indexCompatible.each { if (ciYml.contains("\"$it\"\n") == false) { throw new Exception(".ci/bwcVersions is outdated, run `./gradlew updateCIBwcVersions` and check in the results"); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java index 9773d5732d94b..83885271bceb2 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java @@ -39,7 +39,6 @@ import org.gradle.api.artifacts.repositories.IvyArtifactRepository; import org.gradle.api.credentials.HttpHeaderCredentials; import org.gradle.api.file.FileTree; -import org.gradle.api.plugins.ExtraPropertiesExtension; import org.gradle.api.provider.Provider; import org.gradle.api.tasks.Sync; import org.gradle.api.tasks.TaskProvider; @@ -92,8 +91,7 @@ public void apply(Project project) { setupDownloadServiceRepo(project); if (BuildParams.isInternal()) { - ExtraPropertiesExtension extraProperties = project.getExtensions().getExtraProperties(); - this.bwcVersions = (BwcVersions) extraProperties.get("bwcVersions"); + this.bwcVersions = BuildParams.getBwcVersions(); } project.afterEvaluate(this::setupDistributions); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java index 42babbaf077ff..8112bd8c9fcb2 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java @@ -1,5 +1,7 @@ package org.elasticsearch.gradle.info; +import org.apache.commons.io.IOUtils; +import org.elasticsearch.gradle.BwcVersions; import org.elasticsearch.gradle.OS; import org.elasticsearch.gradle.util.Util; import org.gradle.api.GradleException; @@ -20,6 +22,7 @@ import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.UncheckedIOException; @@ -44,6 +47,7 @@ public class GlobalBuildInfoPlugin implements Plugin { private static final Logger LOGGER = Logging.getLogger(GlobalBuildInfoPlugin.class); + private static final String DEFAULT_VERSION_JAVA_FILE_PATH = "server/src/main/java/org/elasticsearch/Version.java"; private static Integer _defaultParallel = null; private final JavaInstallationRegistry javaInstallationRegistry; @@ -69,7 +73,8 @@ public void apply(Project project) { File compilerJavaHome = findCompilerJavaHome(); File runtimeJavaHome = findRuntimeJavaHome(compilerJavaHome); - GitInfo gitInfo = gitInfo(project.getRootProject().getRootDir()); + File rootDir = project.getRootDir(); + GitInfo gitInfo = gitInfo(rootDir); // Initialize global build parameters BuildParams.init(params -> { @@ -92,12 +97,26 @@ public void apply(Project project) { params.setDefaultParallel(findDefaultParallel(project)); params.setInFipsJvm(Util.getBooleanProperty("tests.fips.enabled", false)); params.setIsSnapshotBuild(Util.getBooleanProperty("build.snapshot", true)); + params.setBwcVersions(resolveBwcVersions(rootDir)); }); // Print global build info header just before task execution project.getGradle().getTaskGraph().whenReady(graph -> logGlobalBuildInfo()); } + /* Introspect all versions of ES that may be tested against for backwards + * compatibility. It is *super* important that this logic is the same as the + * logic in VersionUtils.java. */ + private static BwcVersions resolveBwcVersions(File root) { + File versionsFile = new File(root, DEFAULT_VERSION_JAVA_FILE_PATH); + try { + List versionLines = IOUtils.readLines(new FileInputStream(versionsFile), "UTF-8"); + return new BwcVersions(versionLines); + } catch (IOException e) { + return null; + } + } + private void logGlobalBuildInfo() { final String osName = System.getProperty("os.name"); final String osVersion = System.getProperty("os.version"); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/DistroTestPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/DistroTestPlugin.java index dc3a87b3ff5fc..c252aab79f1bc 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/DistroTestPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/DistroTestPlugin.java @@ -221,7 +221,7 @@ private static Version getUpgradeVersion(Project project) { String firstPartOfSeed = BuildParams.getTestSeed().split(":")[0]; final long seed = Long.parseUnsignedLong(firstPartOfSeed, 16); - BwcVersions bwcVersions = (BwcVersions) extraProperties.get("bwcVersions"); + BwcVersions bwcVersions = BuildParams.getBwcVersions(); final List indexCompatVersions = bwcVersions.getIndexCompatible(); return indexCompatVersions.get(new Random(seed).nextInt(indexCompatVersions.size())); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/BwcVersions.java b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java similarity index 100% rename from buildSrc/src/main/java/org/elasticsearch/gradle/BwcVersions.java rename to buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java diff --git a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java index 407b7e11d5832..89b9c03b1db2c 100644 --- a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java +++ b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java @@ -1,5 +1,6 @@ package org.elasticsearch.gradle.info; +import org.elasticsearch.gradle.BwcVersions; import org.gradle.api.JavaVersion; import java.io.File; @@ -30,6 +31,7 @@ public class BuildParams { private static Boolean isInternal; private static Integer defaultParallel; private static Boolean isSnapshotBuild; + private static BwcVersions bwcVersions; /** * Initialize global build parameters. This method accepts and a initialization function which in turn accepts a @@ -95,6 +97,10 @@ public static ZonedDateTime getBuildDate() { return value(buildDate); } + public static BwcVersions getBwcVersions() { + return value(bwcVersions); + } + public static String getTestSeed() { return value(testSeed); } @@ -228,5 +234,8 @@ public void setIsSnapshotBuild(final boolean isSnapshotBuild) { BuildParams.isSnapshotBuild = isSnapshotBuild; } + public void setBwcVersions(BwcVersions bwcVersions) { + BuildParams.bwcVersions = bwcVersions; + } } } diff --git a/buildSrc/src/testKit/distribution-download/build.gradle b/buildSrc/src/testKit/distribution-download/build.gradle index ba6d06e9b70cf..d408184be6706 100644 --- a/buildSrc/src/testKit/distribution-download/build.gradle +++ b/buildSrc/src/testKit/distribution-download/build.gradle @@ -49,7 +49,5 @@ if (internal) { BwcVersions versions = new BwcVersions(new TreeSet<>( Arrays.asList(Version.fromString("8.0.0"), Version.fromString("8.0.1"), Version.fromString("8.1.0"), currentVersion)), currentVersion) - allprojects { - ext.bwcVersions = versions - } + BuildParams.init { it.setBwcVersions(versions) } } diff --git a/distribution/bwc/build.gradle b/distribution/bwc/build.gradle index eb5d9bfa87ccd..b42eedfcce12f 100644 --- a/distribution/bwc/build.gradle +++ b/distribution/bwc/build.gradle @@ -36,7 +36,7 @@ import static org.elasticsearch.gradle.util.JavaUtil.getJavaHome * unreleased versions are when Gradle projects are set up, so we use "build-unreleased-version-*" as placeholders * and configure them to build various versions here. */ -bwcVersions.forPreviousUnreleased { BwcVersions.UnreleasedVersionInfo unreleasedVersion -> +BuildParams.bwcVersions.forPreviousUnreleased { BwcVersions.UnreleasedVersionInfo unreleasedVersion -> project("${unreleasedVersion.gradleProjectPath}") { Version bwcVersion = unreleasedVersion.version String bwcBranch = unreleasedVersion.branch diff --git a/gradle/bwc-test.gradle b/gradle/bwc-test.gradle index 7a240ce0b3d60..a6de8906ce30b 100644 --- a/gradle/bwc-test.gradle +++ b/gradle/bwc-test.gradle @@ -1,4 +1,5 @@ import org.elasticsearch.gradle.Version +import org.elasticsearch.gradle.info.BuildParams ext.bwcTaskName = { Version version -> return "v${version}#bwcTest" @@ -6,7 +7,7 @@ ext.bwcTaskName = { Version version -> def bwcTestSnapshots = tasks.register("bwcTestSnapshots") { if (project.bwc_tests_enabled) { - dependsOn tasks.matching { task -> bwcVersions.unreleased.any { version -> bwcTaskName(version) == task.name } } + dependsOn tasks.matching { task -> BuildParams.bwcVersions.unreleased.any { version -> bwcTaskName(version) == task.name } } } } diff --git a/qa/full-cluster-restart/build.gradle b/qa/full-cluster-restart/build.gradle index 050968fcaf0dc..ee8ba8c7898ba 100644 --- a/qa/full-cluster-restart/build.gradle +++ b/qa/full-cluster-restart/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.standalone-test' apply from : "$rootDir/gradle/bwc-test.gradle" -for (Version bwcVersion : bwcVersions.indexCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) { String baseName = "v${bwcVersion}" testClusters { diff --git a/qa/mixed-cluster/build.gradle b/qa/mixed-cluster/build.gradle index a6296c04d4d82..73027b01ecab9 100644 --- a/qa/mixed-cluster/build.gradle +++ b/qa/mixed-cluster/build.gradle @@ -32,7 +32,7 @@ restResources { } } -for (Version bwcVersion : bwcVersions.wireCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) { if (bwcVersion == VersionProperties.getElasticsearchVersion()) { // Not really a mixed cluster continue; diff --git a/qa/repository-multi-version/build.gradle b/qa/repository-multi-version/build.gradle index c7e780eb42b9a..40edc49169a5b 100644 --- a/qa/repository-multi-version/build.gradle +++ b/qa/repository-multi-version/build.gradle @@ -29,7 +29,7 @@ dependencies { testCompile project(':client:rest-high-level') } -for (Version bwcVersion : bwcVersions.indexCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) { String baseName = "v${bwcVersion}" String oldClusterName = "${baseName}-old" String newClusterName = "${baseName}-new" diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index e2d65a5313f0a..adc83e0124d96 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -25,7 +25,7 @@ apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.standalone-test' apply from : "$rootDir/gradle/bwc-test.gradle" -for (Version bwcVersion : bwcVersions.wireCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) { /* * The goal here is to: *
    diff --git a/qa/verify-version-constants/build.gradle b/qa/verify-version-constants/build.gradle index bd302a7e32912..3fa14911e8da5 100644 --- a/qa/verify-version-constants/build.gradle +++ b/qa/verify-version-constants/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.standalone-test' apply from : "$rootDir/gradle/bwc-test.gradle" -for (Version bwcVersion : bwcVersions.indexCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) { String baseName = "v${bwcVersion}" testClusters { diff --git a/test/framework/build.gradle b/test/framework/build.gradle index 74a3d51964ca2..c5d4c383fe330 100644 --- a/test/framework/build.gradle +++ b/test/framework/build.gradle @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +import org.elasticsearch.gradle.info.BuildParams; dependencies { compile project(":client:rest") @@ -60,9 +61,9 @@ thirdPartyAudit.ignoreMissingClasses( ) test { - systemProperty 'tests.gradle_index_compat_versions', bwcVersions.indexCompatible.join(',') - systemProperty 'tests.gradle_wire_compat_versions', bwcVersions.wireCompatible.join(',') - systemProperty 'tests.gradle_unreleased_versions', bwcVersions.unreleased.join(',') + systemProperty 'tests.gradle_index_compat_versions', BuildParams.bwcVersions.indexCompatible.join(',') + systemProperty 'tests.gradle_wire_compat_versions', BuildParams.bwcVersions.wireCompatible.join(',') + systemProperty 'tests.gradle_unreleased_versions', BuildParams.bwcVersions.unreleased.join(',') } task integTest(type: Test) { diff --git a/x-pack/qa/full-cluster-restart/build.gradle b/x-pack/qa/full-cluster-restart/build.gradle index c2429cbd55df0..fa2cf4dc33282 100644 --- a/x-pack/qa/full-cluster-restart/build.gradle +++ b/x-pack/qa/full-cluster-restart/build.gradle @@ -1,4 +1,5 @@ import org.elasticsearch.gradle.Version +import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.testclusters.RestTestRunnerTask apply plugin: 'elasticsearch.testclusters' @@ -33,7 +34,7 @@ tasks.register("copyTestNodeKeyMaterial", Copy) { into outputDir } -for (Version bwcVersion : bwcVersions.indexCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) { String baseName = "v${bwcVersion}" testClusters { diff --git a/x-pack/qa/rolling-upgrade-basic/build.gradle b/x-pack/qa/rolling-upgrade-basic/build.gradle index 2bfcabbbeda1d..f90d16acacb24 100644 --- a/x-pack/qa/rolling-upgrade-basic/build.gradle +++ b/x-pack/qa/rolling-upgrade-basic/build.gradle @@ -1,4 +1,5 @@ import org.elasticsearch.gradle.Version +import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.testclusters.RestTestRunnerTask apply plugin: 'elasticsearch.testclusters' @@ -9,7 +10,7 @@ dependencies { testCompile project(':x-pack:qa') } -for (Version bwcVersion : bwcVersions.wireCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) { String baseName = "v${bwcVersion}" testClusters { diff --git a/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle b/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle index 5f4fdcc98c516..71a027c707312 100644 --- a/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle +++ b/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle @@ -1,4 +1,5 @@ import org.elasticsearch.gradle.Version +import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.testclusters.RestTestRunnerTask apply plugin: 'elasticsearch.testclusters' @@ -9,7 +10,7 @@ dependencies { testCompile project(':x-pack:qa') } -for (Version bwcVersion : bwcVersions.wireCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) { String baseName = "v${bwcVersion}" testClusters { diff --git a/x-pack/qa/rolling-upgrade/build.gradle b/x-pack/qa/rolling-upgrade/build.gradle index c05e0c9a1275c..1d17cb2edcbef 100644 --- a/x-pack/qa/rolling-upgrade/build.gradle +++ b/x-pack/qa/rolling-upgrade/build.gradle @@ -1,4 +1,5 @@ import org.elasticsearch.gradle.Version +import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.testclusters.RestTestRunnerTask apply plugin: 'elasticsearch.testclusters' @@ -29,7 +30,7 @@ task copyTestNodeKeyMaterial(type: Copy) { into outputDir } -for (Version bwcVersion : bwcVersions.wireCompatible) { +for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) { String baseName = "v${bwcVersion}" testClusters { From f50d1b07071f4186ee4ec15e0304902b24c1b55d Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Wed, 6 May 2020 12:50:04 +0200 Subject: [PATCH 2/4] Resolve bwcVersions only for internal usage of GlobalBuildInfoPlugin - propagate exception if version file cannot be resolved - add null check when setting bwcVersions --- .../gradle/info/GlobalBuildInfoPlugin.java | 12 ++++++++---- .../org/elasticsearch/gradle/info/BuildParams.java | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java index 8112bd8c9fcb2..46fe5c405f52d 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java @@ -76,8 +76,10 @@ public void apply(Project project) { File rootDir = project.getRootDir(); GitInfo gitInfo = gitInfo(rootDir); - // Initialize global build parameters BuildParams.init(params -> { + // Initialize global build parameters + boolean internalUse = GlobalBuildInfoPlugin.class.getResource("/buildSrc.marker") != null; + params.reset(); params.setCompilerJavaHome(compilerJavaHome); params.setRuntimeJavaHome(runtimeJavaHome); @@ -93,11 +95,13 @@ public void apply(Project project) { params.setBuildDate(ZonedDateTime.now(ZoneOffset.UTC)); params.setTestSeed(getTestSeed()); params.setIsCi(System.getenv("JENKINS_URL") != null); - params.setIsInternal(GlobalBuildInfoPlugin.class.getResource("/buildSrc.marker") != null); + params.setIsInternal(internalUse); params.setDefaultParallel(findDefaultParallel(project)); params.setInFipsJvm(Util.getBooleanProperty("tests.fips.enabled", false)); params.setIsSnapshotBuild(Util.getBooleanProperty("build.snapshot", true)); - params.setBwcVersions(resolveBwcVersions(rootDir)); + if (internalUse) { + params.setBwcVersions(resolveBwcVersions(rootDir)); + } }); // Print global build info header just before task execution @@ -113,7 +117,7 @@ private static BwcVersions resolveBwcVersions(File root) { List versionLines = IOUtils.readLines(new FileInputStream(versionsFile), "UTF-8"); return new BwcVersions(versionLines); } catch (IOException e) { - return null; + throw new IllegalStateException("Unable to resolve to resolve bwc versions from versionsFile.", e); } } diff --git a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java index 89b9c03b1db2c..58cb059142606 100644 --- a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java +++ b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/info/BuildParams.java @@ -235,7 +235,7 @@ public void setIsSnapshotBuild(final boolean isSnapshotBuild) { } public void setBwcVersions(BwcVersions bwcVersions) { - BuildParams.bwcVersions = bwcVersions; + BuildParams.bwcVersions = requireNonNull(bwcVersions); } } } From 1a37af430e6c0505706e070a2d5e55ae4e1989cf Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Thu, 7 May 2020 09:07:02 +0200 Subject: [PATCH 3/4] Apply small review feedback on variable name --- .../elasticsearch/gradle/info/GlobalBuildInfoPlugin.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java index 46fe5c405f52d..2387c9b72ba92 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/info/GlobalBuildInfoPlugin.java @@ -78,7 +78,7 @@ public void apply(Project project) { BuildParams.init(params -> { // Initialize global build parameters - boolean internalUse = GlobalBuildInfoPlugin.class.getResource("/buildSrc.marker") != null; + boolean isInternal = GlobalBuildInfoPlugin.class.getResource("/buildSrc.marker") != null; params.reset(); params.setCompilerJavaHome(compilerJavaHome); @@ -95,11 +95,11 @@ public void apply(Project project) { params.setBuildDate(ZonedDateTime.now(ZoneOffset.UTC)); params.setTestSeed(getTestSeed()); params.setIsCi(System.getenv("JENKINS_URL") != null); - params.setIsInternal(internalUse); + params.setIsInternal(isInternal); params.setDefaultParallel(findDefaultParallel(project)); params.setInFipsJvm(Util.getBooleanProperty("tests.fips.enabled", false)); params.setIsSnapshotBuild(Util.getBooleanProperty("build.snapshot", true)); - if (internalUse) { + if (isInternal) { params.setBwcVersions(resolveBwcVersions(rootDir)); } }); From a80e7e952fe9a3e28e9744b8a027d878da700a14 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Thu, 7 May 2020 10:29:25 +0200 Subject: [PATCH 4/4] Fix BwcVersions java8 compatibility after merge --- .../java/org/elasticsearch/gradle/BwcVersions.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java index 6542eab7a2d68..49378f483f0db 100644 --- a/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java +++ b/buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/BwcVersions.java @@ -19,12 +19,14 @@ package org.elasticsearch.gradle; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -36,7 +38,6 @@ import static java.util.Collections.emptyList; import static java.util.Collections.unmodifiableList; -import static java.util.function.Predicate.not; /** * A container for elasticsearch supported version information used in BWC testing. @@ -88,7 +89,7 @@ public class BwcVersions { private static final Pattern LINE_PATTERN = Pattern.compile( "\\W+public static final Version V_(\\d+)_(\\d+)_(\\d+)(_alpha\\d+|_beta\\d+|_rc\\d+)? .*" ); - private static final List IGNORED_VERSIONS = List.of(Version.fromString("7.7.0")); + private static final List IGNORED_VERSIONS = Arrays.asList(Version.fromString("7.7.0")); private final Version currentVersion; private final Map> groupByMajor; @@ -122,7 +123,7 @@ protected BwcVersions(List versionLines, Version currentVersionProperty) Integer.parseInt(match.group(3)) ) ) - .filter(not(IGNORED_VERSIONS::contains)) // remove any specifically ignored versions + .filter(v -> !IGNORED_VERSIONS.contains(v)) // remove any specifically ignored versions .collect(Collectors.toCollection(TreeSet::new)), currentVersionProperty ); @@ -275,7 +276,12 @@ public List getUnreleased() { // we found that the previous minor is staged but not yet released // in this case, the minor before that has a bugfix, should there be such a minor if (greatestMinor >= 2) { - int major = groupByMinor.values().stream().flatMap(Collection::stream).findFirst().map(Version::getMajor).orElseThrow(); + int major = groupByMinor.values() + .stream() + .flatMap(Collection::stream) + .findFirst() + .map(Version::getMajor) + .orElseThrow(NoSuchElementException::new); // Don't bother searching for a version we've ignored if (IGNORED_VERSIONS.contains(new Version(major, greatestMinor - 2, 0)) == false) { unreleased.add(getLatestVersionByKey(groupByMinor, greatestMinor - 2));