Skip to content

Commit 755acfe

Browse files
committed
Merge branch 'master' into ilm/inject-unfollow
2 parents 41f5ed9 + 942fc13 commit 755acfe

File tree

444 files changed

+7755
-5887
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

444 files changed

+7755
-5887
lines changed

TESTING.asciidoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ In order to start with a different distribution use the `-Drun.distribution` arg
4242
To for example start the open source distribution:
4343

4444
-------------------------------------
45-
./gradlew run -Drun.distribution=oss-zip
45+
./gradlew run -Drun.distribution=oss
4646
-------------------------------------
4747

4848
==== License type

build.gradle

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,14 @@ allprojects {
221221
"org.elasticsearch.plugin:elasticsearch-scripting-painless-spi:${version}": ':modules:lang-painless:spi',
222222
"org.elasticsearch.test:framework:${version}": ':test:framework',
223223
"org.elasticsearch.distribution.integ-test-zip:elasticsearch:${version}": ':distribution:archives:integ-test-zip',
224-
"org.elasticsearch.distribution.zip:elasticsearch:${version}": ':distribution:archives:zip',
225-
"org.elasticsearch.distribution.zip:elasticsearch-oss:${version}": ':distribution:archives:oss-zip',
226-
"org.elasticsearch.distribution.tar:elasticsearch:${version}": ':distribution:archives:tar',
227-
"org.elasticsearch.distribution.tar:elasticsearch-oss:${version}": ':distribution:archives:oss-tar',
228-
"org.elasticsearch.distribution.rpm:elasticsearch:${version}": ':distribution:packages:rpm',
229-
"org.elasticsearch.distribution.rpm:elasticsearch-oss:${version}": ':distribution:packages:oss-rpm',
230-
"org.elasticsearch.distribution.deb:elasticsearch:${version}": ':distribution:packages:deb',
231-
"org.elasticsearch.distribution.deb:elasticsearch-oss:${version}": ':distribution:packages:oss-deb',
224+
"downloads.zip:elasticsearch:${version}": ':distribution:archives:zip',
225+
"downloads.zip:elasticsearch-oss:${version}": ':distribution:archives:oss-zip',
226+
"downloads.tar:elasticsearch:${version}": ':distribution:archives:tar',
227+
"downloads.tar:elasticsearch-oss:${version}": ':distribution:archives:oss-tar',
228+
"downloads.rpm:elasticsearch:${version}": ':distribution:packages:rpm',
229+
"downloads.rpm:elasticsearch-oss:${version}": ':distribution:packages:oss-rpm',
230+
"downloads.deb:elasticsearch:${version}": ':distribution:packages:deb',
231+
"downloads.deb:elasticsearch-oss:${version}": ':distribution:packages:oss-deb',
232232
"org.elasticsearch.test:logger-usage:${version}": ':test:logger-usage',
233233
"org.elasticsearch.xpack.test:feature-aware:${version}": ':x-pack:test:feature-aware',
234234
// for transport client
@@ -244,13 +244,13 @@ allprojects {
244244
bwcVersions.forPreviousUnreleased { VersionCollection.UnreleasedVersionInfo unreleasedVersion ->
245245
Version unreleased = unreleasedVersion.version
246246
String snapshotProject = ":distribution:bwc:${unreleasedVersion.gradleProjectName}"
247-
ext.projectSubstitutions["org.elasticsearch.distribution.deb:elasticsearch:${unreleased}"] = snapshotProject
248-
ext.projectSubstitutions["org.elasticsearch.distribution.rpm:elasticsearch:${unreleased}"] = snapshotProject
249-
ext.projectSubstitutions["org.elasticsearch.distribution.zip:elasticsearch:${unreleased}"] = snapshotProject
247+
ext.projectSubstitutions["downloads.deb:elasticsearch:${unreleased}"] = snapshotProject
248+
ext.projectSubstitutions["downloads.rpm:elasticsearch:${unreleased}"] = snapshotProject
249+
ext.projectSubstitutions["downloads.zip:elasticsearch:${unreleased}"] = snapshotProject
250250
if (unreleased.onOrAfter('6.3.0')) {
251-
ext.projectSubstitutions["org.elasticsearch.distribution.deb:elasticsearch-oss:${unreleased}"] = snapshotProject
252-
ext.projectSubstitutions["org.elasticsearch.distribution.rpm:elasticsearch-oss:${unreleased}"] = snapshotProject
253-
ext.projectSubstitutions["org.elasticsearch.distribution.zip:elasticsearch-oss:${unreleased}"] = snapshotProject
251+
ext.projectSubstitutions["downloads.deb:elasticsearch-oss:${unreleased}"] = snapshotProject
252+
ext.projectSubstitutions["downloads.rpm:elasticsearch-oss:${unreleased}"] = snapshotProject
253+
ext.projectSubstitutions["downloads.zip:elasticsearch-oss:${unreleased}"] = snapshotProject
254254
}
255255
}
256256

buildSrc/build.gradle

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,21 @@ if (project != rootProject) {
178178
jarHell.enabled = false
179179
thirdPartyAudit.enabled = false
180180

181+
configurations {
182+
distribution
183+
}
184+
185+
dependencies {
186+
distribution project(':distribution:archives:zip')
187+
distribution project(':distribution:archives:oss-zip')
188+
}
189+
190+
String localDownloads = "${rootProject.buildDir}/local-downloads"
191+
task setupLocalDownloads(type:Copy) {
192+
from configurations.distribution
193+
into localDownloads
194+
}
195+
181196
unitTest {
182197
// The test task is configured to runtimeJava version, but build-tools doesn't support all of them, so test
183198
// with compiler instead on the ones that are too old.
@@ -192,6 +207,7 @@ if (project != rootProject) {
192207
dependsOn project.rootProject.allprojects.collect {
193208
it.tasks.matching { it.name == 'publishNebulaPublicationToLocalTestRepository'}
194209
}
210+
dependsOn setupLocalDownloads
195211
exclude "**/*Tests.class"
196212
testClassesDirs = sourceSets.test.output.classesDirs
197213
classpath = sourceSets.test.runtimeClasspath
@@ -204,6 +220,7 @@ if (project != rootProject) {
204220
).asPath,
205221
)
206222
systemProperty 'test.local-test-repo-path', "${rootProject.buildDir}/local-test-repo"
223+
systemProperty 'test.local-test-downloads-path', localDownloads
207224
systemProperty 'test.version_under_test', version
208225
systemProperty 'test.lucene-snapshot-revision', (versions.lucene =~ /\w+-snapshot-([a-z0-9]+)/)[0][1]
209226
}

buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,9 +407,16 @@ class BuildPlugin implements Plugin<Project> {
407407
if (messages.isEmpty() == false) {
408408
throw new GradleException(messages.join('\n'))
409409
}
410+
rootProject.rootProject.ext.requiredJavaVersions = null // reset to null to indicate the pre-execution checks have executed
410411
}
412+
} else if (rootProject.rootProject.requiredJavaVersions == null) {
413+
// check directly if the version is present since we are already executing
414+
if (rootProject.javaVersions.get(version) == null) {
415+
throw new GradleException("JAVA${version}_HOME required to run task:\n${task}")
416+
}
417+
} else {
418+
rootProject.requiredJavaVersions.get(version).add(task)
411419
}
412-
rootProject.requiredJavaVersions.get(version).add(task)
413420
}
414421

415422
/** A convenience method for getting java home for a version of java and requiring that version for the given task to execute */
@@ -558,6 +565,12 @@ class BuildPlugin implements Plugin<Project> {
558565
repos.mavenLocal()
559566
}
560567
repos.jcenter()
568+
repos.ivy {
569+
url "https://artifacts.elastic.co/downloads"
570+
patternLayout {
571+
artifact "elasticsearch/[module]-[revision](-[classifier]).[ext]"
572+
}
573+
}
561574
repos.maven {
562575
name "elastic"
563576
url "https://artifacts.elastic.co/maven"

buildSrc/src/main/groovy/org/elasticsearch/gradle/doc/DocsTestPlugin.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class DocsTestPlugin extends RestTestPlugin {
3434
project.pluginManager.apply('elasticsearch.standalone-rest-test')
3535
super.apply(project)
3636
// The distribution can be configured with -Dtests.distribution on the command line
37-
project.integTestCluster.distribution = System.getProperty('tests.distribution', 'zip')
37+
project.integTestCluster.distribution = System.getProperty('tests.distribution', 'default')
3838
// Docs are published separately so no need to assemble
3939
project.tasks.assemble.enabled = false
4040
Map<String, String> defaultSubstitutions = [

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ClusterConfiguration {
2929
private final Project project
3030

3131
@Input
32-
String distribution = 'zip'
32+
String distribution = 'default'
3333

3434
@Input
3535
int numNodes = 1

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterFormationTasks.groovy

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,17 @@
1818
*/
1919
package org.elasticsearch.gradle.test
2020

21-
import java.util.stream.Collectors
2221
import org.apache.tools.ant.DefaultLogger
2322
import org.apache.tools.ant.taskdefs.condition.Os
2423
import org.elasticsearch.gradle.BuildPlugin
2524
import org.elasticsearch.gradle.LoggedExec
2625
import org.elasticsearch.gradle.Version
2726
import org.elasticsearch.gradle.VersionProperties
28-
2927
import org.elasticsearch.gradle.plugin.PluginBuildPlugin
3028
import org.elasticsearch.gradle.plugin.PluginPropertiesExtension
3129
import org.gradle.api.AntBuilder
3230
import org.gradle.api.DefaultTask
3331
import org.gradle.api.GradleException
34-
import org.gradle.api.InvalidUserDataException
3532
import org.gradle.api.Project
3633
import org.gradle.api.Task
3734
import org.gradle.api.artifacts.Configuration
@@ -45,7 +42,7 @@ import org.gradle.api.tasks.Exec
4542
import java.nio.charset.StandardCharsets
4643
import java.nio.file.Paths
4744
import java.util.concurrent.TimeUnit
48-
45+
import java.util.stream.Collectors
4946
/**
5047
* A helper for creating tasks to build a cluster that is used by a task, and tear down the cluster when the task is finished.
5148
*/
@@ -89,7 +86,7 @@ class ClusterFormationTasks {
8986
Configuration currentDistro = project.configurations.create("${prefix}_elasticsearchDistro")
9087
Configuration bwcDistro = project.configurations.create("${prefix}_elasticsearchBwcDistro")
9188
Configuration bwcPlugins = project.configurations.create("${prefix}_elasticsearchBwcPlugins")
92-
if (System.getProperty('tests.distribution', 'oss-zip') == 'integ-test-zip') {
89+
if (System.getProperty('tests.distribution', 'oss') == 'integ-test-zip') {
9390
throw new Exception("tests.distribution=integ-test-zip is not supported")
9491
}
9592
configureDistributionDependency(project, config.distribution, currentDistro, VersionProperties.elasticsearch)
@@ -174,24 +171,31 @@ class ClusterFormationTasks {
174171

175172
/** Adds a dependency on the given distribution */
176173
static void configureDistributionDependency(Project project, String distro, Configuration configuration, String elasticsearchVersion) {
177-
if (Version.fromString(elasticsearchVersion).before('6.3.0') &&
178-
distro.startsWith('oss-')
179-
) {
174+
// TEMP HACK
175+
// The oss docs CI build overrides the distro on the command line. This hack handles backcompat until CI is updated.
176+
if (distro.equals('oss-zip')) {
177+
distro = 'oss'
178+
}
179+
if (distro.equals('zip')) {
180+
distro = 'default'
181+
}
182+
// END TEMP HACK
183+
if (['integ-test-zip', 'oss', 'default'].contains(distro) == false) {
184+
throw new GradleException("Unknown distribution: ${distro} in project ${project.path}")
185+
}
186+
Version version = Version.fromString(elasticsearchVersion)
187+
if (version.before('6.3.0') && distro.startsWith('oss-')) {
180188
distro = distro.substring('oss-'.length())
181189
}
182-
String packaging = distro
183-
if (distro.contains('tar')) {
184-
packaging = 'tar.gz'\
185-
} else if (distro.contains('zip')) {
186-
packaging = 'zip'
190+
String group = "downloads.zip"
191+
if (distro.equals("integ-test-zip")) {
192+
group = "org.elasticsearch.distribution.integ-test-zip"
187193
}
188-
String subgroup = distro
189194
String artifactName = 'elasticsearch'
190-
if (distro.contains('oss')) {
195+
if (distro.equals('oss') && Version.fromString(elasticsearchVersion).onOrAfter('6.3.0')) {
191196
artifactName += '-oss'
192-
subgroup = distro.substring('oss-'.length())
193197
}
194-
project.dependencies.add(configuration.name, "org.elasticsearch.distribution.${subgroup}:${artifactName}:${elasticsearchVersion}@${packaging}")
198+
project.dependencies.add(configuration.name, "${group}:${artifactName}:${elasticsearchVersion}@zip")
195199
}
196200

197201
/** Adds a dependency on a different version of the given plugin, which will be retrieved using gradle's dependency resolution */
@@ -314,31 +318,13 @@ class ClusterFormationTasks {
314318
elasticsearch source tree. If this is a plugin built in the elasticsearch source tree or this is a distro in
315319
the elasticsearch source tree then this should be the version of elasticsearch built by the source tree.
316320
If it isn't then Bad Things(TM) will happen. */
317-
Task extract
318-
319-
switch (node.config.distribution) {
320-
case 'integ-test-zip':
321-
case 'zip':
322-
case 'oss-zip':
323-
extract = project.tasks.create(name: name, type: Copy, dependsOn: extractDependsOn) {
324-
from {
325-
project.zipTree(configuration.singleFile)
326-
}
327-
into node.baseDir
328-
}
329-
break;
330-
case 'tar':
331-
case 'oss-tar':
332-
extract = project.tasks.create(name: name, type: Copy, dependsOn: extractDependsOn) {
333-
from {
334-
project.tarTree(project.resources.gzip(configuration.singleFile))
335-
}
336-
into node.baseDir
337-
}
338-
break;
339-
default:
340-
throw new InvalidUserDataException("Unknown distribution: ${node.config.distribution}")
321+
Task extract = project.tasks.create(name: name, type: Copy, dependsOn: extractDependsOn) {
322+
from {
323+
project.zipTree(configuration.singleFile)
324+
}
325+
into node.baseDir
341326
}
327+
342328
return extract
343329
}
344330

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/NodeInfo.groovy

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ import org.gradle.api.Project
2929
import java.nio.file.Files
3030
import java.nio.file.Path
3131
import java.nio.file.Paths
32-
33-
import static org.elasticsearch.gradle.BuildPlugin.getJavaHome
34-
3532
/**
3633
* A container for the files and configuration associated with a single node in a test cluster.
3734
*/
@@ -125,8 +122,8 @@ class NodeInfo {
125122
baseDir = new File(project.buildDir, "cluster/${prefix} node${nodeNum}")
126123
pidFile = new File(baseDir, 'es.pid')
127124
this.nodeVersion = Version.fromString(nodeVersion)
128-
homeDir = homeDir(baseDir, config.distribution, nodeVersion)
129-
pathConf = pathConf(baseDir, config.distribution, nodeVersion)
125+
homeDir = new File(baseDir, "elasticsearch-${nodeVersion}")
126+
pathConf = new File(homeDir, 'config')
130127
if (config.dataDir != null) {
131128
dataDir = "${config.dataDir(nodeNum)}"
132129
} else {
@@ -299,41 +296,4 @@ class NodeInfo {
299296
}
300297
return dataDir
301298
}
302-
303-
/** Returns the directory elasticsearch home is contained in for the given distribution */
304-
static File homeDir(File baseDir, String distro, String nodeVersion) {
305-
String path
306-
switch (distro) {
307-
case 'integ-test-zip':
308-
case 'zip':
309-
case 'tar':
310-
case 'oss-zip':
311-
case 'oss-tar':
312-
path = "elasticsearch-${nodeVersion}"
313-
break
314-
case 'rpm':
315-
case 'deb':
316-
path = "${distro}-extracted/usr/share/elasticsearch"
317-
break
318-
default:
319-
throw new InvalidUserDataException("Unknown distribution: ${distro}")
320-
}
321-
return new File(baseDir, path)
322-
}
323-
324-
static File pathConf(File baseDir, String distro, String nodeVersion) {
325-
switch (distro) {
326-
case 'integ-test-zip':
327-
case 'zip':
328-
case 'oss-zip':
329-
case 'tar':
330-
case 'oss-tar':
331-
return new File(homeDir(baseDir, distro, nodeVersion), 'config')
332-
case 'rpm':
333-
case 'deb':
334-
return new File(baseDir, "${distro}-extracted/etc/elasticsearch")
335-
default:
336-
throw new InvalidUserDataException("Unknown distribution: ${distro}")
337-
}
338-
}
339299
}

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/RunTask.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class RunTask extends DefaultTask {
1616
clusterConfig.httpPort = 9200
1717
clusterConfig.transportPort = 9300
1818
clusterConfig.daemonize = false
19-
clusterConfig.distribution = 'zip'
19+
clusterConfig.distribution = 'default'
2020
project.afterEvaluate {
2121
ClusterFormationTasks.setup(project, name, this, clusterConfig)
2222
}

buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,10 @@ class VagrantTestPlugin implements Plugin<Project> {
193193
UPGRADE_FROM_ARCHIVES.each {
194194
// The version of elasticsearch that we upgrade *from*
195195
project.dependencies.add(PACKAGING_CONFIGURATION,
196-
"org.elasticsearch.distribution.${it}:elasticsearch:${upgradeFromVersion}@${it}")
196+
"downloads.${it}:elasticsearch:${upgradeFromVersion}@${it}")
197197
if (upgradeFromVersion.onOrAfter('6.3.0')) {
198198
project.dependencies.add(PACKAGING_CONFIGURATION,
199-
"org.elasticsearch.distribution.${it}:elasticsearch-oss:${upgradeFromVersion}@${it}")
199+
"downloads.${it}:elasticsearch-oss:${upgradeFromVersion}@${it}")
200200
}
201201
}
202202

0 commit comments

Comments
 (0)