Skip to content

Commit e768136

Browse files
Merge remote-tracking branch 'origin/master' into fail_on_obsolete_indices
2 parents 9525742 + 2732bb5 commit e768136

File tree

852 files changed

+19173
-12211
lines changed

Some content is hidden

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

852 files changed

+19173
-12211
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ indent_style = space
88
indent_size = 4
99
trim_trailing_whitespace = true
1010
insert_final_newline = true
11+
12+
[*.bat]
13+
indent_size = 2

build.gradle

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ allprojects {
212212
"org.elasticsearch:elasticsearch-core:${version}": ':libs:core',
213213
"org.elasticsearch:elasticsearch-nio:${version}": ':libs:nio',
214214
"org.elasticsearch:elasticsearch-x-content:${version}": ':libs:x-content',
215+
"org.elasticsearch:elasticsearch-geo:${version}": ':libs:elasticsearch-geo',
215216
"org.elasticsearch:elasticsearch-secure-sm:${version}": ':libs:secure-sm',
216217
"org.elasticsearch.client:elasticsearch-rest-client:${version}": ':client:rest',
217218
"org.elasticsearch.client:elasticsearch-rest-client-sniffer:${version}": ':client:sniffer',
@@ -221,14 +222,6 @@ allprojects {
221222
"org.elasticsearch.plugin:elasticsearch-scripting-painless-spi:${version}": ':modules:lang-painless:spi',
222223
"org.elasticsearch.test:framework:${version}": ':test:framework',
223224
"org.elasticsearch.distribution.integ-test-zip:elasticsearch:${version}": ':distribution:archives:integ-test-zip',
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',
232225
"org.elasticsearch.test:logger-usage:${version}": ':test:logger-usage',
233226
"org.elasticsearch.xpack.test:feature-aware:${version}": ':x-pack:test:feature-aware',
234227
// for transport client
@@ -240,19 +233,6 @@ allprojects {
240233
"org.elasticsearch.plugin:percolator-client:${version}": ':modules:percolator',
241234
"org.elasticsearch.plugin:rank-eval-client:${version}": ':modules:rank-eval',
242235
]
243-
// substitute unreleased versions with projects that check out and build locally
244-
bwcVersions.forPreviousUnreleased { VersionCollection.UnreleasedVersionInfo unreleasedVersion ->
245-
Version unreleased = unreleasedVersion.version
246-
String snapshotProject = ":distribution:bwc:${unreleasedVersion.gradleProjectName}"
247-
ext.projectSubstitutions["downloads.deb:elasticsearch:${unreleased}"] = snapshotProject
248-
ext.projectSubstitutions["downloads.rpm:elasticsearch:${unreleased}"] = snapshotProject
249-
ext.projectSubstitutions["downloads.zip:elasticsearch:${unreleased}"] = snapshotProject
250-
if (unreleased.onOrAfter('6.3.0')) {
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
254-
}
255-
}
256236

257237
/*
258238
* Gradle only resolve project substitutions during dependency resolution but

buildSrc/build.gradle

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,12 @@ if (project != rootProject) {
183183
}
184184

185185
dependencies {
186-
distribution project(':distribution:archives:zip')
187-
distribution project(':distribution:archives:oss-zip')
186+
distribution project(':distribution:archives:windows-zip')
187+
distribution project(':distribution:archives:oss-windows-zip')
188+
distribution project(':distribution:archives:darwin-tar')
189+
distribution project(':distribution:archives:oss-darwin-tar')
190+
distribution project(':distribution:archives:linux-tar')
191+
distribution project(':distribution:archives:oss-linux-tar')
188192
}
189193

190194
String localDownloads = "${rootProject.buildDir}/local-downloads"
@@ -235,11 +239,6 @@ if (project != rootProject) {
235239
exclude '**/ForbiddenPatternsTask.java'
236240
}
237241

238-
namingConventions {
239-
testClass = 'org.elasticsearch.gradle.test.GradleUnitTestCase'
240-
integTestClass = 'org.elasticsearch.gradle.test.GradleIntegrationTestCase'
241-
}
242-
243242
testingConventions {
244243
naming.clear()
245244
naming {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,7 @@ class BuildPlugin implements Plugin<Project> {
904904
project.tasks.withType(RandomizedTestingTask) {task ->
905905
jvm "${project.runtimeJavaHome}/bin/java"
906906
parallelism System.getProperty('tests.jvms', project.rootProject.ext.defaultParallel)
907+
ifNoTests 'fail'
907908
onNonEmptyWorkDirectory 'wipe'
908909
leaveTemporary true
909910
project.sourceSets.matching { it.name == "test" }.all { test ->

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ public class DocsTestPlugin extends RestTestPlugin {
4545
'\\{version\\}': Version.fromString(VersionProperties.elasticsearch).toString(),
4646
'\\{version_qualified\\}': VersionProperties.elasticsearch,
4747
'\\{lucene_version\\}' : VersionProperties.lucene.replaceAll('-snapshot-\\w+$', ''),
48-
'\\{build_flavor\\}' :
49-
project.integTestCluster.distribution.startsWith('oss-') ? 'oss' : 'default',
48+
'\\{build_flavor\\}' : project.integTestCluster.distribution,
5049
]
5150
Task listSnippets = project.tasks.create('listSnippets', SnippetsTask)
5251
listSnippets.group 'Docs'

buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,6 @@ public class PluginBuildPlugin extends BuildPlugin {
7272
if (isModule == false || isXPackModule) {
7373
addNoticeGeneration(project)
7474
}
75-
76-
project.namingConventions {
77-
// Plugins declare integration tests as "Tests" instead of IT.
78-
skipIntegTestInDisguise = true
79-
}
8075
}
8176
project.testingConventions {
8277
naming.clear()

buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class PrecommitTasks {
4343
List<Task> precommitTasks = [
4444
configureCheckstyle(project),
4545
configureForbiddenApisCli(project),
46-
configureNamingConventions(project),
4746
project.tasks.create('forbiddenPatterns', ForbiddenPatternsTask.class),
4847
project.tasks.create('licenseHeaders', LicenseHeadersTask.class),
4948
project.tasks.create('filepermissions', FilePermissionsTask.class),
@@ -230,15 +229,6 @@ class PrecommitTasks {
230229
return checkstyleTask
231230
}
232231

233-
private static Task configureNamingConventions(Project project) {
234-
if (project.sourceSets.findByName("test")) {
235-
Task namingConventionsTask = project.tasks.create('namingConventions', NamingConventionsTask)
236-
namingConventionsTask.javaHome = project.compilerJavaHome
237-
return namingConventionsTask
238-
}
239-
return null
240-
}
241-
242232
private static Task configureLoggerUsage(Project project) {
243233
project.configurations.create('loggerUsagePlugin')
244234
project.dependencies.add('loggerUsagePlugin',

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

Lines changed: 58 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.apache.tools.ant.taskdefs.condition.Os
2323
import org.elasticsearch.gradle.BuildPlugin
2424
import org.elasticsearch.gradle.LoggedExec
2525
import org.elasticsearch.gradle.Version
26+
import org.elasticsearch.gradle.VersionCollection
2627
import org.elasticsearch.gradle.VersionProperties
2728
import org.elasticsearch.gradle.plugin.PluginBuildPlugin
2829
import org.elasticsearch.gradle.plugin.PluginPropertiesExtension
@@ -171,6 +172,12 @@ class ClusterFormationTasks {
171172

172173
/** Adds a dependency on the given distribution */
173174
static void configureDistributionDependency(Project project, String distro, Configuration configuration, String elasticsearchVersion) {
175+
if (distro.equals("integ-test-zip")) {
176+
// short circuit integ test so it doesn't complicate the rest of the distribution setup below
177+
project.dependencies.add(configuration.name,
178+
"org.elasticsearch.distribution.integ-test-zip:elasticsearch:${elasticsearchVersion}@zip")
179+
return
180+
}
174181
// TEMP HACK
175182
// The oss docs CI build overrides the distro on the command line. This hack handles backcompat until CI is updated.
176183
if (distro.equals('oss-zip')) {
@@ -180,22 +187,44 @@ class ClusterFormationTasks {
180187
distro = 'default'
181188
}
182189
// END TEMP HACK
183-
if (['integ-test-zip', 'oss', 'default'].contains(distro) == false) {
190+
if (['oss', 'default'].contains(distro) == false) {
184191
throw new GradleException("Unknown distribution: ${distro} in project ${project.path}")
185192
}
186193
Version version = Version.fromString(elasticsearchVersion)
187-
if (version.before('6.3.0') && distro.startsWith('oss-')) {
188-
distro = distro.substring('oss-'.length())
189-
}
190-
String group = "downloads.zip"
191-
if (distro.equals("integ-test-zip")) {
192-
group = "org.elasticsearch.distribution.integ-test-zip"
193-
}
194+
String os = getOs()
195+
String classifier = "${os}-x86_64"
196+
String packaging = os.equals('windows') ? 'zip' : 'tar.gz'
194197
String artifactName = 'elasticsearch'
195198
if (distro.equals('oss') && Version.fromString(elasticsearchVersion).onOrAfter('6.3.0')) {
196199
artifactName += '-oss'
197200
}
198-
project.dependencies.add(configuration.name, "${group}:${artifactName}:${elasticsearchVersion}@zip")
201+
Object dependency
202+
String snapshotProject = "${os}-${os.equals('windows') ? 'zip' : 'tar'}"
203+
if (version.before("7.0.0")) {
204+
snapshotProject = "zip"
205+
}
206+
if (distro.equals("oss")) {
207+
snapshotProject = "oss-" + snapshotProject
208+
}
209+
boolean internalBuild = project.hasProperty('bwcVersions')
210+
VersionCollection.UnreleasedVersionInfo unreleasedInfo = null
211+
if (project.hasProperty('bwcVersions')) {
212+
// NOTE: leniency is needed for external plugin authors using build-tools. maybe build the version compat info into build-tools?
213+
unreleasedInfo = project.bwcVersions.unreleasedInfo(version)
214+
}
215+
if (unreleasedInfo != null) {
216+
dependency = project.dependencies.project(
217+
path: ":distribution:bwc:${unreleasedInfo.gradleProjectName}", configuration: snapshotProject)
218+
} else if (internalBuild && elasticsearchVersion.equals(VersionProperties.elasticsearch)) {
219+
dependency = project.dependencies.project(path: ":distribution:archives:${snapshotProject}")
220+
} else {
221+
if (version.before('7.0.0')) {
222+
classifier = "" // for bwc, before we had classifiers
223+
}
224+
// group does not matter as it is not used when we pull from the ivy repo that points to the download service
225+
dependency = "dnm:${artifactName}:${elasticsearchVersion}${classifier}@${packaging}"
226+
}
227+
project.dependencies.add(configuration.name, dependency)
199228
}
200229

201230
/** Adds a dependency on a different version of the given plugin, which will be retrieved using gradle's dependency resolution */
@@ -319,8 +348,15 @@ class ClusterFormationTasks {
319348
the elasticsearch source tree then this should be the version of elasticsearch built by the source tree.
320349
If it isn't then Bad Things(TM) will happen. */
321350
Task extract = project.tasks.create(name: name, type: Copy, dependsOn: extractDependsOn) {
322-
from {
323-
project.zipTree(configuration.singleFile)
351+
if (getOs().equals("windows")) {
352+
from {
353+
project.zipTree(configuration.singleFile)
354+
}
355+
} else {
356+
// macos and linux use tar
357+
from {
358+
project.tarTree(project.resources.gzip(configuration.singleFile))
359+
}
324360
}
325361
into node.baseDir
326362
}
@@ -932,4 +968,15 @@ class ClusterFormationTasks {
932968
PluginPropertiesExtension extension = pluginProject.extensions.findByName('esplugin')
933969
return extension.name
934970
}
971+
972+
/** Find the current OS */
973+
static String getOs() {
974+
String os = "linux"
975+
if (Os.FAMILY_WINDOWS) {
976+
os = "windows"
977+
} else if (Os.FAMILY_MAC) {
978+
os = "darwin"
979+
}
980+
return os
981+
}
935982
}

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

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.apache.tools.ant.taskdefs.condition.Os
44
import org.elasticsearch.gradle.FileContentsTask
55
import org.elasticsearch.gradle.LoggedExec
66
import org.elasticsearch.gradle.Version
7+
import org.elasticsearch.gradle.VersionCollection
78
import org.gradle.api.*
89
import org.gradle.api.artifacts.dsl.RepositoryHandler
910
import org.gradle.api.execution.TaskExecutionAdapter
@@ -52,10 +53,10 @@ class VagrantTestPlugin implements Plugin<Project> {
5253

5354
/** All distributions to bring into test VM, whether or not they are used **/
5455
static final List<String> DISTRIBUTIONS = unmodifiableList([
55-
'archives:tar',
56-
'archives:oss-tar',
57-
'archives:zip',
58-
'archives:oss-zip',
56+
'archives:linux-tar',
57+
'archives:oss-linux-tar',
58+
'archives:windows-zip',
59+
'archives:oss-windows-zip',
5960
'packages:rpm',
6061
'packages:oss-rpm',
6162
'packages:deb',
@@ -184,22 +185,38 @@ class VagrantTestPlugin implements Plugin<Project> {
184185
upgradeFromVersion = Version.fromString(upgradeFromVersionRaw)
185186
}
186187

188+
List<Object> dependencies = new ArrayList<>()
187189
DISTRIBUTIONS.each {
188190
// Adds a dependency for the current version
189-
project.dependencies.add(PACKAGING_CONFIGURATION,
190-
project.dependencies.project(path: ":distribution:${it}", configuration: 'default'))
191+
dependencies.add(project.dependencies.project(path: ":distribution:${it}", configuration: 'default'))
191192
}
192193

193-
UPGRADE_FROM_ARCHIVES.each {
194-
// The version of elasticsearch that we upgrade *from*
195-
project.dependencies.add(PACKAGING_CONFIGURATION,
196-
"downloads.${it}:elasticsearch:${upgradeFromVersion}@${it}")
197-
if (upgradeFromVersion.onOrAfter('6.3.0')) {
198-
project.dependencies.add(PACKAGING_CONFIGURATION,
199-
"downloads.${it}:elasticsearch-oss:${upgradeFromVersion}@${it}")
194+
// The version of elasticsearch that we upgrade *from*
195+
VersionCollection.UnreleasedVersionInfo unreleasedInfo = project.bwcVersions.unreleasedInfo(upgradeFromVersion)
196+
if (unreleasedInfo != null) {
197+
// handle snapshots pointing to bwc build
198+
UPGRADE_FROM_ARCHIVES.each {
199+
dependencies.add(project.dependencies.project(
200+
path: ":distribution:bwc:${unreleasedInfo.gradleProjectName}", configuration: it))
201+
if (upgradeFromVersion.onOrAfter('6.3.0')) {
202+
dependencies.add(project.dependencies.project(
203+
path: ":distribution:bwc:${unreleasedInfo.gradleProjectName}", configuration: "oss-${it}"))
204+
}
205+
}
206+
} else {
207+
UPGRADE_FROM_ARCHIVES.each {
208+
// The version of elasticsearch that we upgrade *from*
209+
dependencies.add("downloads.${it}:elasticsearch:${upgradeFromVersion}@${it}")
210+
if (upgradeFromVersion.onOrAfter('6.3.0')) {
211+
dependencies.add("downloads.${it}:elasticsearch-oss:${upgradeFromVersion}@${it}")
212+
}
200213
}
201214
}
202215

216+
for (Object dependency : dependencies) {
217+
project.dependencies.add(PACKAGING_CONFIGURATION, dependency)
218+
}
219+
203220
project.extensions.esvagrant.upgradeFromVersion = upgradeFromVersion
204221
}
205222

@@ -613,7 +630,7 @@ class VagrantTestPlugin implements Plugin<Project> {
613630
void afterExecute(Task task, TaskState state) {
614631
final String gradlew = Os.isFamily(Os.FAMILY_WINDOWS) ? "gradlew" : "./gradlew"
615632
if (state.failure != null) {
616-
println "REPRODUCE WITH: ${gradlew} ${reproTaskPath} -Dtests.seed=${project.testSeed} "
633+
println "REPRODUCE WITH: ${gradlew} \"${reproTaskPath}\" -Dtests.seed=${project.testSeed} "
617634
}
618635
}
619636
}

buildSrc/src/main/java/org/elasticsearch/gradle/VersionCollection.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.util.ArrayList;
2222
import java.util.Collection;
23+
import java.util.Collections;
24+
import java.util.HashMap;
2325
import java.util.HashSet;
2426
import java.util.List;
2527
import java.util.Map;
@@ -86,6 +88,7 @@ public class VersionCollection {
8688

8789
private final Version currentVersion;
8890
private final Map<Integer, List<Version>> groupByMajor;
91+
private final Map<Version, UnreleasedVersionInfo> unreleased;
8992

9093
public class UnreleasedVersionInfo {
9194
public final Version version;
@@ -129,6 +132,16 @@ protected VersionCollection(List<String> versionLines, Version currentVersionPro
129132
assertCurrentVersionMatchesParsed(currentVersionProperty);
130133

131134
assertNoOlderThanTwoMajors();
135+
136+
Map<Version, UnreleasedVersionInfo> unreleased = new HashMap<>();
137+
for (Version unreleasedVersion : getUnreleased()) {
138+
if (unreleasedVersion.equals(currentVersion)) {
139+
continue;
140+
}
141+
unreleased.put(unreleasedVersion,
142+
new UnreleasedVersionInfo(unreleasedVersion, getBranchFor(unreleasedVersion), getGradleProjectNameFor(unreleasedVersion)));
143+
}
144+
this.unreleased = Collections.unmodifiableMap(unreleased);
132145
}
133146

134147
private void assertNoOlderThanTwoMajors() {
@@ -150,6 +163,13 @@ private void assertCurrentVersionMatchesParsed(Version currentVersionProperty) {
150163
}
151164
}
152165

166+
/**
167+
* Returns info about the unreleased version, or {@code null} if the version is released.
168+
*/
169+
public UnreleasedVersionInfo unreleasedInfo(Version version) {
170+
return unreleased.get(version);
171+
}
172+
153173
public void forPreviousUnreleased(Consumer<UnreleasedVersionInfo> consumer) {
154174
getUnreleased().stream()
155175
.filter(version -> version.equals(currentVersion) == false)

0 commit comments

Comments
 (0)