Skip to content

Commit e46d23d

Browse files
committed
Merge branch 'master' into ccr
* master: Mute 'Test typed keys parameter for suggesters' as we await a fix. Build test: Thread linger Fix gradle4.8 deprecation warnings (#31654) Mute FileRealmTests#testAuthenticateCaching with an @AwaitsFix. Mute TransportChangePasswordActionTests#testIncorrectPasswordHashingAlgorithm with an @AwaitsFix. Build: Fix naming conventions task (#31681) Introduce a Hashing Processor (#31087)
2 parents 540da73 + 1a54bca commit e46d23d

File tree

22 files changed

+597
-56
lines changed

22 files changed

+597
-56
lines changed

build.gradle

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -486,25 +486,17 @@ task run(type: Run) {
486486
impliesSubProjects = true
487487
}
488488

489-
task wrapper(type: Wrapper)
490-
491-
gradle.projectsEvaluated {
492-
493-
allprojects {
494-
tasks.withType(Wrapper) { Wrapper wrapper ->
495-
wrapper.distributionType = DistributionType.ALL
496-
497-
wrapper.doLast {
489+
wrapper {
490+
distributionType = DistributionType.ALL
491+
doLast {
498492
final DistributionLocator locator = new DistributionLocator()
499493
final GradleVersion version = GradleVersion.version(wrapper.gradleVersion)
500494
final URI distributionUri = locator.getDistributionFor(version, wrapper.distributionType.name().toLowerCase(Locale.ENGLISH))
501495
final URI sha256Uri = new URI(distributionUri.toString() + ".sha256")
502496
final String sha256Sum = new String(sha256Uri.toURL().bytes)
503497
wrapper.getPropertiesFile() << "distributionSha256Sum=${sha256Sum}\n"
504-
}
498+
println "Added checksum to wrapper properties"
505499
}
506-
}
507-
508500
}
509501

510502
static void assertLinesInFile(final Path path, final List<String> expectedLines) {
@@ -591,7 +583,7 @@ if (System.properties.get("build.compare") != null) {
591583
}
592584
}
593585
sourceBuild {
594-
gradleVersion = "4.7" // does not default to gradle weapper of project dir, but current version
586+
gradleVersion = "4.8.1" // does not default to gradle weapper of project dir, but current version
595587
projectDir = referenceProject
596588
tasks = ["clean", "assemble"]
597589
arguments = ["-Dbuild.compare_friendly=true"]

buildSrc/build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
20-
2119
import java.nio.file.Files
2220

2321
plugins {
@@ -41,6 +39,12 @@ if (project == rootProject) {
4139
buildDir = 'build-bootstrap'
4240
}
4341

42+
// Make sure :buildSrc: doesn't generate classes incompatible with RUNTIME_JAVA_HOME
43+
// We can't use BuildPlugin here, so read from file
44+
String minimumRuntimeVersion = file('src/main/resources/minimumRuntimeVersion').text.trim()
45+
targetCompatibility = minimumRuntimeVersion
46+
sourceCompatibility = minimumRuntimeVersion
47+
4448
/*****************************************************************************
4549
* Propagating version.properties to the rest of the build *
4650
*****************************************************************************/

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

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.elasticsearch.gradle
2020

2121
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
22-
import nebula.plugin.extraconfigurations.ProvidedBasePlugin
2322
import org.apache.tools.ant.taskdefs.condition.Os
2423
import org.eclipse.jgit.lib.Constants
2524
import org.eclipse.jgit.lib.RepositoryBuilder
@@ -58,9 +57,6 @@ import java.time.ZonedDateTime
5857
*/
5958
class BuildPlugin implements Plugin<Project> {
6059

61-
static final JavaVersion minimumRuntimeVersion = JavaVersion.VERSION_1_8
62-
static final JavaVersion minimumCompilerVersion = JavaVersion.VERSION_1_10
63-
6460
@Override
6561
void apply(Project project) {
6662
if (project.pluginManager.hasPlugin('elasticsearch.standalone-rest-test')) {
@@ -95,6 +91,12 @@ class BuildPlugin implements Plugin<Project> {
9591
/** Performs checks on the build environment and prints information about the build environment. */
9692
static void globalBuildInfo(Project project) {
9793
if (project.rootProject.ext.has('buildChecksDone') == false) {
94+
JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(
95+
BuildPlugin.class.getClassLoader().getResourceAsStream("minimumRuntimeVersion").text.trim()
96+
)
97+
JavaVersion minimumCompilerVersion = JavaVersion.toVersion(
98+
BuildPlugin.class.getClassLoader().getResourceAsStream("minimumCompilerVersion").text.trim()
99+
)
98100
String compilerJavaHome = findCompilerJavaHome()
99101
String runtimeJavaHome = findRuntimeJavaHome(compilerJavaHome)
100102
File gradleJavaHome = Jvm.current().javaHome
@@ -192,10 +194,12 @@ class BuildPlugin implements Plugin<Project> {
192194
project.rootProject.ext.runtimeJavaVersion = runtimeJavaVersionEnum
193195
project.rootProject.ext.javaVersions = javaVersions
194196
project.rootProject.ext.buildChecksDone = true
197+
project.rootProject.ext.minimumCompilerVersion = minimumCompilerVersion
198+
project.rootProject.ext.minimumRuntimeVersion = minimumRuntimeVersion
195199
}
196200

197-
project.targetCompatibility = minimumRuntimeVersion
198-
project.sourceCompatibility = minimumRuntimeVersion
201+
project.targetCompatibility = project.rootProject.ext.minimumRuntimeVersion
202+
project.sourceCompatibility = project.rootProject.ext.minimumRuntimeVersion
199203

200204
// set java home for each project, so they dont have to find it in the root project
201205
project.ext.compilerJavaHome = project.rootProject.ext.compilerJavaHome
@@ -348,7 +352,7 @@ class BuildPlugin implements Plugin<Project> {
348352
// just a self contained test-fixture configuration, likely transitive and hellacious
349353
return
350354
}
351-
configuration.resolutionStrategy {
355+
configuration.resolutionStrategy {
352356
failOnVersionConflict()
353357
}
354358
})
@@ -467,6 +471,24 @@ class BuildPlugin implements Plugin<Project> {
467471

468472
/**Configuration generation of maven poms. */
469473
public static void configurePomGeneration(Project project) {
474+
// Only works with `enableFeaturePreview('STABLE_PUBLISHING')`
475+
// https://github.com/gradle/gradle/issues/5696#issuecomment-396965185
476+
project.tasks.withType(GenerateMavenPom.class) { GenerateMavenPom generatePOMTask ->
477+
// The GenerateMavenPom task is aggressive about setting the destination, instead of fighting it,
478+
// just make a copy.
479+
doLast {
480+
project.copy {
481+
from generatePOMTask.destination
482+
into "${project.buildDir}/distributions"
483+
rename { "${project.archivesBaseName}-${project.version}.pom" }
484+
}
485+
}
486+
// build poms with assemble (if the assemble task exists)
487+
Task assemble = project.tasks.findByName('assemble')
488+
if (assemble) {
489+
assemble.dependsOn(generatePOMTask)
490+
}
491+
}
470492
project.plugins.withType(MavenPublishPlugin.class).whenPluginAdded {
471493
project.publishing {
472494
publications {
@@ -476,20 +498,6 @@ class BuildPlugin implements Plugin<Project> {
476498
}
477499
}
478500
}
479-
480-
// Work around Gradle 4.8 issue until we `enableFeaturePreview('STABLE_PUBLISHING')`
481-
// https://github.com/gradle/gradle/issues/5696#issuecomment-396965185
482-
project.getGradle().getTaskGraph().whenReady {
483-
project.tasks.withType(GenerateMavenPom.class) { GenerateMavenPom t ->
484-
// place the pom next to the jar it is for
485-
t.destination = new File(project.buildDir, "distributions/${project.archivesBaseName}-${project.version}.pom")
486-
// build poms with assemble (if the assemble task exists)
487-
Task assemble = project.tasks.findByName('assemble')
488-
if (assemble) {
489-
assemble.dependsOn(t)
490-
}
491-
}
492-
}
493501
}
494502
}
495503

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,16 +159,18 @@ public class PluginBuildPlugin extends BuildPlugin {
159159
/** Adds a task to move jar and associated files to a "-client" name. */
160160
protected static void addClientJarTask(Project project) {
161161
Task clientJar = project.tasks.create('clientJar')
162-
clientJar.dependsOn(project.jar, 'generatePomFileForClientJarPublication', project.javadocJar, project.sourcesJar)
162+
clientJar.dependsOn(project.jar, project.tasks.generatePomFileForClientJarPublication, project.javadocJar, project.sourcesJar)
163163
clientJar.doFirst {
164164
Path jarFile = project.jar.outputs.files.singleFile.toPath()
165165
String clientFileName = jarFile.fileName.toString().replace(project.version, "client-${project.version}")
166166
Files.copy(jarFile, jarFile.resolveSibling(clientFileName), StandardCopyOption.REPLACE_EXISTING)
167167

168-
String pomFileName = jarFile.fileName.toString().replace('.jar', '.pom')
169168
String clientPomFileName = clientFileName.replace('.jar', '.pom')
170-
Files.copy(jarFile.resolveSibling(pomFileName), jarFile.resolveSibling(clientPomFileName),
171-
StandardCopyOption.REPLACE_EXISTING)
169+
Files.copy(
170+
project.tasks.generatePomFileForClientJarPublication.outputs.files.singleFile.toPath(),
171+
jarFile.resolveSibling(clientPomFileName),
172+
StandardCopyOption.REPLACE_EXISTING
173+
)
172174

173175
String sourcesFileName = jarFile.fileName.toString().replace('.jar', '-sources.jar')
174176
String clientSourcesFileName = clientFileName.replace('.jar', '-sources.jar')

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.gradle.api.Plugin
2929
import org.gradle.api.Project
3030
import org.gradle.api.Task
3131
import org.gradle.api.plugins.JavaBasePlugin
32+
import org.gradle.api.tasks.compile.JavaCompile
3233

3334
/**
3435
* Configures the build to compile tests against Elasticsearch's test framework
@@ -61,5 +62,12 @@ public class StandaloneRestTestPlugin implements Plugin<Project> {
6162

6263
PrecommitTasks.create(project, false)
6364
project.check.dependsOn(project.precommit)
65+
66+
project.tasks.withType(JavaCompile) {
67+
// This will be the default in Gradle 5.0
68+
if (options.compilerArgs.contains("-processor") == false) {
69+
options.compilerArgs << '-proc:none'
70+
}
71+
}
6472
}
6573
}

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,5 @@ public class StandaloneTestPlugin implements Plugin<Project> {
5050
test.testClassesDirs = project.sourceSets.test.output.classesDirs
5151
test.mustRunAfter(project.precommit)
5252
project.check.dependsOn(test)
53-
54-
project.tasks.withType(JavaCompile) {
55-
// This will be the default in Gradle 5.0
56-
if (options.compilerArgs.contains("-processor") == false) {
57-
options.compilerArgs << '-proc:none'
58-
}
59-
}
6053
}
6154
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.10
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.8

buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import org.gradle.testkit.runner.BuildResult;
55
import org.gradle.testkit.runner.GradleRunner;
66
import org.gradle.testkit.runner.TaskOutcome;
7-
import org.junit.Ignore;
87

98
import java.util.Arrays;
109

@@ -22,7 +21,6 @@ public void testPluginCanBeApplied() {
2221
assertTrue(output, output.contains("build plugin can be applied"));
2322
}
2423

25-
@Ignore("AwaitsFix : https://github.com/elastic/elasticsearch/issues/31665")
2624
public void testNameCheckFailsAsItShould() {
2725
BuildResult result = GradleRunner.create()
2826
.withProjectDir(getProjectDir("namingConventionsSelfTest"))
@@ -48,7 +46,6 @@ public void testNameCheckFailsAsItShould() {
4846
}
4947
}
5048

51-
@Ignore("AwaitsFix : https://github.com/elastic/elasticsearch/issues/31665")
5249
public void testNameCheckFailsAsItShouldWithMain() {
5350
BuildResult result = GradleRunner.create()
5451
.withProjectDir(getProjectDir("namingConventionsSelfTest"))

buildSrc/src/test/java/org/elasticsearch/gradle/test/BaseTestCase.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.carrotsearch.randomizedtesting.JUnit4MethodProvider;
2222
import com.carrotsearch.randomizedtesting.RandomizedRunner;
2323
import com.carrotsearch.randomizedtesting.annotations.TestMethodProviders;
24+
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
2425
import org.junit.Assert;
2526
import org.junit.runner.RunWith;
2627

@@ -29,5 +30,6 @@
2930
JUnit4MethodProvider.class,
3031
JUnit3MethodProvider.class
3132
})
33+
@ThreadLeakLingering(linger = 5000) // wait for "Connection worker" to die
3234
public abstract class BaseTestCase extends Assert {
3335
}

0 commit comments

Comments
 (0)