From 982cb886d2502a7bef209aa4fd17110af9f6de50 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 27 Jan 2020 14:39:51 -0800 Subject: [PATCH 1/3] Always use bundled JDK for external cluster nodes when BWC testing Signed-off-by: Mark Vieira --- .../gradle/test/RestIntegTestTask.groovy | 9 ++------- .../testclusters/ElasticsearchCluster.java | 5 ----- .../testclusters/ElasticsearchNode.java | 19 ------------------- .../TestClusterConfiguration.java | 2 -- qa/full-cluster-restart/build.gradle | 1 - qa/mixed-cluster/build.gradle | 1 - qa/repository-multi-version/build.gradle | 1 - qa/rolling-upgrade/build.gradle | 1 - qa/verify-version-constants/build.gradle | 1 - x-pack/qa/full-cluster-restart/build.gradle | 1 - x-pack/qa/rolling-upgrade-basic/build.gradle | 1 - .../build.gradle | 2 -- x-pack/qa/rolling-upgrade/build.gradle | 2 -- 13 files changed, 2 insertions(+), 44 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/RestIntegTestTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/RestIntegTestTask.groovy index 40f431bb9cbf2..58e72e2dd7be4 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/RestIntegTestTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/RestIntegTestTask.groovy @@ -45,12 +45,8 @@ class RestIntegTestTask extends DefaultTask { runner = project.tasks.create("${name}Runner", RestTestRunnerTask.class) super.dependsOn(runner) - project.testClusters { - "$name" { - javaHome = BuildParams.runtimeJavaHome - } - } - runner.useCluster project.testClusters."$name" + ElasticsearchCluster cluster = project.testClusters.create(name) + runner.useCluster cluster runner.include('**/*IT.class') runner.systemProperty('tests.rest.load_packaged', 'false') @@ -60,7 +56,6 @@ class RestIntegTestTask extends DefaultTask { throw new IllegalArgumentException("tests.rest.cluster, tests.cluster, and tests.clustername must all be null or non-null") } - ElasticsearchCluster cluster = project.testClusters."${name}" runner.nonInputProperties.systemProperty('tests.rest.cluster', "${-> cluster.allHttpSocketURI.join(",")}") runner.nonInputProperties.systemProperty('tests.cluster', "${-> cluster.transportPortURI}") runner.nonInputProperties.systemProperty('tests.clustername', "${-> cluster.getName()}") diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchCluster.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchCluster.java index 9359f59d762b8..c77e10c0b82f8 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchCluster.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchCluster.java @@ -243,11 +243,6 @@ private void checkFrozen() { } } - @Override - public void setJavaHome(File javaHome) { - nodes.all(each -> each.setJavaHome(javaHome)); - } - @Override public void start() { commonNodeConfig(); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java index 3ea3785e8db29..8be3a245a6367 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java @@ -145,7 +145,6 @@ public class ElasticsearchNode implements TestClusterConfiguration { private int currentDistro = 0; private TestDistribution testDistribution; private List distributions = new ArrayList<>(); - private File javaHome; private volatile Process esProcess; private Function nameCustomization = Function.identity(); private boolean isWorkingDirConfigured = false; @@ -373,21 +372,6 @@ public void freeze() { configurationFrozen.set(true); } - @Override - public void setJavaHome(File javaHome) { - requireNonNull(javaHome, "null javaHome passed when configuring test cluster `" + this + "`"); - checkFrozen(); - if (javaHome.exists() == false) { - throw new TestClustersException("java home for `" + this + "` does not exists: `" + javaHome + "`"); - } - this.javaHome = javaHome; - } - - @Internal - public File getJavaHome() { - return javaHome; - } - /** * Returns a stream of lines in the generated logs similar to Files.lines * @@ -665,9 +649,6 @@ private void runElasticsearchBinScript(String tool, CharSequence... args) { private Map getESEnvironment() { Map defaultEnv = new HashMap<>(); - if (getJavaHome() != null) { - defaultEnv.put("JAVA_HOME", getJavaHome().getAbsolutePath()); - } defaultEnv.put("ES_PATH_CONF", configFile.getParent().toString()); String systemPropertiesString = ""; if (systemProperties.isEmpty() == false) { diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClusterConfiguration.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClusterConfiguration.java index b484bc58a1380..dd3efb1ac1089 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClusterConfiguration.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClusterConfiguration.java @@ -84,8 +84,6 @@ public interface TestClusterConfiguration { void freeze(); - void setJavaHome(File javaHome); - void start(); void restart(); diff --git a/qa/full-cluster-restart/build.gradle b/qa/full-cluster-restart/build.gradle index b71b95bc514ef..92fd37b55dae2 100644 --- a/qa/full-cluster-restart/build.gradle +++ b/qa/full-cluster-restart/build.gradle @@ -41,7 +41,6 @@ for (Version bwcVersion : bwcVersions.indexCompatible) { setting 'indices.memory.shard_inactive_time', '20m' setting 'http.content_type.required', 'true' setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" - javaHome = BuildParams.runtimeJavaHome } } diff --git a/qa/mixed-cluster/build.gradle b/qa/mixed-cluster/build.gradle index 5a439588327f9..0f02cbd52d4e9 100644 --- a/qa/mixed-cluster/build.gradle +++ b/qa/mixed-cluster/build.gradle @@ -59,7 +59,6 @@ for (Version bwcVersion : bwcVersions.wireCompatible) { numberOfNodes = 4 setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" - javaHome = BuildParams.runtimeJavaHome } } diff --git a/qa/repository-multi-version/build.gradle b/qa/repository-multi-version/build.gradle index ed062e59eee1a..05850bdc3fdef 100644 --- a/qa/repository-multi-version/build.gradle +++ b/qa/repository-multi-version/build.gradle @@ -43,7 +43,6 @@ for (Version bwcVersion : bwcVersions.indexCompatible) { version = v numberOfNodes = 2 setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" - javaHome = BuildParams.runtimeJavaHome } } diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index eace94f364a80..bf1bc2d5b1073 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -70,7 +70,6 @@ for (Version bwcVersion : bwcVersions.wireCompatible) { setting 'repositories.url.allowed_urls', 'http://snapshot.test*' setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" setting 'http.content_type.required', 'true' - javaHome = BuildParams.runtimeJavaHome } } diff --git a/qa/verify-version-constants/build.gradle b/qa/verify-version-constants/build.gradle index 356c1bda62efb..b34992bae9745 100644 --- a/qa/verify-version-constants/build.gradle +++ b/qa/verify-version-constants/build.gradle @@ -37,7 +37,6 @@ for (Version bwcVersion : bwcVersions.indexCompatible) { "${baseName}" { version = bwcVersion.toString() setting 'http.content_type.required', 'true' - javaHome = BuildParams.runtimeJavaHome } } diff --git a/x-pack/qa/full-cluster-restart/build.gradle b/x-pack/qa/full-cluster-restart/build.gradle index c04e41c5be8ad..22cde8f1a657a 100644 --- a/x-pack/qa/full-cluster-restart/build.gradle +++ b/x-pack/qa/full-cluster-restart/build.gradle @@ -66,7 +66,6 @@ for (Version bwcVersion : bwcVersions.indexCompatible) { versions = [bwcVersion.toString(), project.version] numberOfNodes = 2 setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" - javaHome = BuildParams.runtimeJavaHome user username: "test_user", password: "x-pack-test-password" setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}" diff --git a/x-pack/qa/rolling-upgrade-basic/build.gradle b/x-pack/qa/rolling-upgrade-basic/build.gradle index 2c4b2364ef721..9367b74aae379 100644 --- a/x-pack/qa/rolling-upgrade-basic/build.gradle +++ b/x-pack/qa/rolling-upgrade-basic/build.gradle @@ -48,7 +48,6 @@ for (Version bwcVersion : bwcVersions.wireCompatible) { setting 'xpack.ml.enabled', 'false' setting 'xpack.watcher.enabled', 'false' setting 'xpack.license.self_generated.type', 'basic' - javaHome = BuildParams.runtimeJavaHome } } diff --git a/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle b/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle index 641d9a13ff797..bba1d1fd96e24 100644 --- a/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle +++ b/x-pack/qa/rolling-upgrade-multi-cluster/build.gradle @@ -53,8 +53,6 @@ for (Version bwcVersion : bwcVersions.wireCompatible) { setting 'xpack.ml.enabled', 'false' setting 'xpack.watcher.enabled', 'false' setting 'xpack.license.self_generated.type', 'trial' - - javaHome = BuildParams.runtimeJavaHome } tasks.withType(RestTestRunnerTask).matching { it.name.startsWith(baseName) }.configureEach { diff --git a/x-pack/qa/rolling-upgrade/build.gradle b/x-pack/qa/rolling-upgrade/build.gradle index dc7856a38e26d..324d90e453d16 100644 --- a/x-pack/qa/rolling-upgrade/build.gradle +++ b/x-pack/qa/rolling-upgrade/build.gradle @@ -99,8 +99,6 @@ for (Version bwcVersion : bwcVersions.wireCompatible) { if (bwcVersion.before('5.6.9') || (bwcVersion.onOrAfter('6.0.0') && bwcVersion.before('6.2.4'))) { jvmArgs '-da:org.elasticsearch.xpack.monitoring.exporter.http.HttpExportBulk' } - - javaHome = BuildParams.runtimeJavaHome } } From 77425af549ef02b5691ea4c99058da81d5bccc65 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 27 Jan 2020 14:47:12 -0800 Subject: [PATCH 2/3] Use runtime java for current elasticsearch versions Signed-off-by: Mark Vieira --- .../elasticsearch/gradle/testclusters/ElasticsearchNode.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java index 8be3a245a6367..c6ea981a4b505 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java @@ -30,6 +30,7 @@ import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import org.elasticsearch.gradle.http.WaitForHttpResource; +import org.elasticsearch.gradle.info.BuildParams; import org.gradle.api.Action; import org.gradle.api.Named; import org.gradle.api.NamedDomainObjectContainer; @@ -649,6 +650,10 @@ private void runElasticsearchBinScript(String tool, CharSequence... args) { private Map getESEnvironment() { Map defaultEnv = new HashMap<>(); + // If we are testing the current version of Elasticsearch, use the configured runtime Java, otherwise use the bundled JDK + if (getVersion().toString().equals(VersionProperties.getElasticsearch())) { + defaultEnv.put("JAVA_HOME", BuildParams.getRuntimeJavaHome().getAbsolutePath()); + } defaultEnv.put("ES_PATH_CONF", configFile.getParent().toString()); String systemPropertiesString = ""; if (systemProperties.isEmpty() == false) { From 576b7f55391b9267f7d05722d2199f9881b57595 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 27 Jan 2020 14:59:05 -0800 Subject: [PATCH 3/3] Set runtime java when using integ-test distribution Signed-off-by: Mark Vieira --- .../elasticsearch/gradle/testclusters/ElasticsearchNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java index c6ea981a4b505..fda8d6ab9b307 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java @@ -651,7 +651,7 @@ private void runElasticsearchBinScript(String tool, CharSequence... args) { private Map getESEnvironment() { Map defaultEnv = new HashMap<>(); // If we are testing the current version of Elasticsearch, use the configured runtime Java, otherwise use the bundled JDK - if (getVersion().toString().equals(VersionProperties.getElasticsearch())) { + if (getTestDistribution() == TestDistribution.INTEG_TEST || getVersion().toString().equals(VersionProperties.getElasticsearch())) { defaultEnv.put("JAVA_HOME", BuildParams.getRuntimeJavaHome().getAbsolutePath()); } defaultEnv.put("ES_PATH_CONF", configFile.getParent().toString());