From decbf6a88dbd0cb15da18974193ac8f0eb11a650 Mon Sep 17 00:00:00 2001 From: Alpar Torok Date: Fri, 29 Jun 2018 10:44:27 +0300 Subject: [PATCH 1/4] unmute test --- .../elasticsearch/gradle/precommit/NamingConventionsTaskIT.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java b/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java index a8bc0ea878be0..3d6bb99ed20cc 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java @@ -22,7 +22,6 @@ public void testPluginCanBeApplied() { assertTrue(output, output.contains("build plugin can be applied")); } - @Ignore("AwaitsFix : https://github.com/elastic/elasticsearch/issues/31665") public void testNameCheckFailsAsItShould() { BuildResult result = GradleRunner.create() .withProjectDir(getProjectDir("namingConventionsSelfTest")) @@ -48,7 +47,6 @@ public void testNameCheckFailsAsItShould() { } } - @Ignore("AwaitsFix : https://github.com/elastic/elasticsearch/issues/31665") public void testNameCheckFailsAsItShouldWithMain() { BuildResult result = GradleRunner.create() .withProjectDir(getProjectDir("namingConventionsSelfTest")) From 08ecb6a020f053793444b744a55abf24483f5699 Mon Sep 17 00:00:00 2001 From: Alpar Torok Date: Fri, 29 Jun 2018 12:26:30 +0300 Subject: [PATCH 2/4] Fix failing anme checks Move min compiler and runtime version to files so we can fix the source adn target compatability of the build script to those --- buildSrc/build.gradle | 8 +++-- .../elasticsearch/gradle/BuildPlugin.groovy | 31 +++++++------------ .../src/main/resources/minimumCompilerVersion | 1 + .../src/main/resources/minimumRuntimeVersion | 1 + 4 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 buildSrc/src/main/resources/minimumCompilerVersion create mode 100644 buildSrc/src/main/resources/minimumRuntimeVersion diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 9ae86a661cea2..4e31de08829cc 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -16,8 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - - import java.nio.file.Files plugins { @@ -41,6 +39,12 @@ if (project == rootProject) { buildDir = 'build-bootstrap' } +// Make sure :buildSrc: doesn't generate classes incompatible with RUNTIME_JAVA_HOME +// We can't use BuildPlugin here, so read from file +String minimumRuntimeVersion = file('src/main/resources/minimumRuntimeVersion').text.trim() +targetCompatibility = minimumRuntimeVersion +sourceCompatibility = minimumRuntimeVersion + /***************************************************************************** * Propagating version.properties to the rest of the build * *****************************************************************************/ diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 8a2b1b798e163..d005376c5f92d 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -19,24 +19,12 @@ package org.elasticsearch.gradle import com.carrotsearch.gradle.junit4.RandomizedTestingTask -import nebula.plugin.extraconfigurations.ProvidedBasePlugin import org.apache.tools.ant.taskdefs.condition.Os import org.eclipse.jgit.lib.Constants import org.eclipse.jgit.lib.RepositoryBuilder import org.elasticsearch.gradle.precommit.PrecommitTasks -import org.gradle.api.GradleException -import org.gradle.api.InvalidUserDataException -import org.gradle.api.JavaVersion -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.XmlProvider -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.Dependency -import org.gradle.api.artifacts.ModuleDependency -import org.gradle.api.artifacts.ModuleVersionIdentifier -import org.gradle.api.artifacts.ProjectDependency -import org.gradle.api.artifacts.ResolvedArtifact +import org.gradle.api.* +import org.gradle.api.artifacts.* import org.gradle.api.artifacts.dsl.RepositoryHandler import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.plugins.JavaPlugin @@ -58,9 +46,6 @@ import java.time.ZonedDateTime */ class BuildPlugin implements Plugin { - static final JavaVersion minimumRuntimeVersion = JavaVersion.VERSION_1_8 - static final JavaVersion minimumCompilerVersion = JavaVersion.VERSION_1_10 - @Override void apply(Project project) { if (project.pluginManager.hasPlugin('elasticsearch.standalone-rest-test')) { @@ -95,6 +80,12 @@ class BuildPlugin implements Plugin { /** Performs checks on the build environment and prints information about the build environment. */ static void globalBuildInfo(Project project) { if (project.rootProject.ext.has('buildChecksDone') == false) { + JavaVersion minimumRuntimeVersion = JavaVersion.toVersion( + BuildPlugin.class.getClassLoader().getResourceAsStream("minimumRuntimeVersion").text.trim() + ) + JavaVersion minimumCompilerVersion = JavaVersion.toVersion( + BuildPlugin.class.getClassLoader().getResourceAsStream("minimumCompilerVersion").text.trim() + ) String compilerJavaHome = findCompilerJavaHome() String runtimeJavaHome = findRuntimeJavaHome(compilerJavaHome) File gradleJavaHome = Jvm.current().javaHome @@ -192,10 +183,12 @@ class BuildPlugin implements Plugin { project.rootProject.ext.runtimeJavaVersion = runtimeJavaVersionEnum project.rootProject.ext.javaVersions = javaVersions project.rootProject.ext.buildChecksDone = true + project.rootProject.ext.minimumCompilerVersion = minimumCompilerVersion + project.rootProject.ext.minimumRuntimeVersion = minimumRuntimeVersion } - project.targetCompatibility = minimumRuntimeVersion - project.sourceCompatibility = minimumRuntimeVersion + project.targetCompatibility = project.rootProject.ext.minimumRuntimeVersion + project.sourceCompatibility = project.rootProject.ext.minimumRuntimeVersion // set java home for each project, so they dont have to find it in the root project project.ext.compilerJavaHome = project.rootProject.ext.compilerJavaHome diff --git a/buildSrc/src/main/resources/minimumCompilerVersion b/buildSrc/src/main/resources/minimumCompilerVersion new file mode 100644 index 0000000000000..578c71bd55827 --- /dev/null +++ b/buildSrc/src/main/resources/minimumCompilerVersion @@ -0,0 +1 @@ +1.10 \ No newline at end of file diff --git a/buildSrc/src/main/resources/minimumRuntimeVersion b/buildSrc/src/main/resources/minimumRuntimeVersion new file mode 100644 index 0000000000000..468437494697b --- /dev/null +++ b/buildSrc/src/main/resources/minimumRuntimeVersion @@ -0,0 +1 @@ +1.8 \ No newline at end of file From 471683df7bb58ceb2c3d4ef4593cb3b4aacc6b55 Mon Sep 17 00:00:00 2001 From: Alpar Torok Date: Fri, 29 Jun 2018 13:36:15 +0300 Subject: [PATCH 3/4] Remove unused import --- .../elasticsearch/gradle/precommit/NamingConventionsTaskIT.java | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java b/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java index 3d6bb99ed20cc..7e469e8597ddd 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/precommit/NamingConventionsTaskIT.java @@ -4,7 +4,6 @@ import org.gradle.testkit.runner.BuildResult; import org.gradle.testkit.runner.GradleRunner; import org.gradle.testkit.runner.TaskOutcome; -import org.junit.Ignore; import java.util.Arrays; From ad46bd1b5c273b0b93ce542987dfd38e0631ffdd Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 29 Jun 2018 14:26:51 -0400 Subject: [PATCH 4/4] Remove * imports --- .../org/elasticsearch/gradle/BuildPlugin.groovy | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index d005376c5f92d..79f0c744c10bd 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -23,8 +23,19 @@ import org.apache.tools.ant.taskdefs.condition.Os import org.eclipse.jgit.lib.Constants import org.eclipse.jgit.lib.RepositoryBuilder import org.elasticsearch.gradle.precommit.PrecommitTasks -import org.gradle.api.* -import org.gradle.api.artifacts.* +import org.gradle.api.GradleException +import org.gradle.api.InvalidUserDataException +import org.gradle.api.JavaVersion +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.XmlProvider +import org.gradle.api.artifacts.Configuration +import org.gradle.api.artifacts.Dependency +import org.gradle.api.artifacts.ModuleDependency +import org.gradle.api.artifacts.ModuleVersionIdentifier +import org.gradle.api.artifacts.ProjectDependency +import org.gradle.api.artifacts.ResolvedArtifact import org.gradle.api.artifacts.dsl.RepositoryHandler import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.plugins.JavaPlugin @@ -341,7 +352,7 @@ class BuildPlugin implements Plugin { // just a self contained test-fixture configuration, likely transitive and hellacious return } - configuration.resolutionStrategy { + configuration.resolutionStrategy { failOnVersionConflict() } })