/* * Licensed to Elasticsearch under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch licenses this file to you under * the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ description = """\ Tests reindex-from-remote against some specific versions of Elasticsearch prior to 5.0. Versions of Elasticsearch >= 5.0 should be able to use the standard launching mechanism which is more flexible and reliable. """ import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'elasticsearch.standalone-rest-test' apply plugin: 'elasticsearch.rest-test' integTestCluster { // Whitelist reindexing from the local node so we can test it. setting 'reindex.remote.whitelist', '127.0.0.1:*' } configurations { oldesFixture es2 es1 es090 } dependencies { oldesFixture project(':test:fixtures:old-elasticsearch') /* Right now we just test against the latest version of each major we expect * reindex-from-remote to work against. We could randomize the versions but * that doesn't seem worth it at this point. */ es2 'org.elasticsearch.distribution.zip:elasticsearch:2.4.5@zip' es1 'org.elasticsearch:elasticsearch:1.7.6@zip' es090 'org.elasticsearch:elasticsearch:0.90.13@zip' } if (project.javaVersion >= JavaVersion.VERSION_1_9 || Os.isFamily(Os.FAMILY_WINDOWS)) { /* We can't run the dependencies with Java 9 so for now we'll skip the whole * thing. We can't get the pid files in windows so we skip that as well.... */ integTest.enabled = false } else { /* Set up tasks to unzip and run the old versions of ES before running the * integration tests. */ for (String version : ['2', '1', '090']) { Task unzip = task("unzipEs${version}", type: Sync) { Configuration oldEsDependency = configurations['es' + version] dependsOn oldEsDependency /* Use a closure here to delay resolution of the dependency until we need * it */ from { oldEsDependency.collect { zipTree(it) } } into temporaryDir } Task fixture = task("oldEs${version}Fixture", type: org.elasticsearch.gradle.test.AntFixture) { dependsOn project.configurations.oldesFixture dependsOn unzip executable = new File(project.javaHome, 'bin/java') env 'CLASSPATH', "${ -> project.configurations.oldesFixture.asPath }" args 'oldes.OldElasticsearch', baseDir, unzip.temporaryDir, version == '090' } integTest.dependsOn fixture integTestRunner { /* Use a closure on the string to delay evaluation until right before we * run the integration tests so that we can be sure that the file is * ready. */ systemProperty "es${version}.port", "${ -> fixture.addressAndPort }" } } }