Skip to content

Commit

Permalink
Require JDK 13 for compilation (#50004)
Browse files Browse the repository at this point in the history
We have a long history of advancing the required compiler to the newest
JDK. JDK 13 has been with us for awhile, but we were blocked from
upgrading since Gradle was not compatible with JDK 13. With the
advancement in our project to Gradle 6 which supports JDK 13, we can now
advance our minimum compiler version. This commit updates the minimum
compiler version to JDK 13.
  • Loading branch information
jasontedor committed Dec 11, 2019
1 parent adf5c92 commit 23ab9e0
Show file tree
Hide file tree
Showing 8 changed files with 11 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .ci/build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

JAVA_HOME=${JAVA_HOME:-$HOME/.java/openjdk12}
JAVA_HOME=${JAVA_HOME:-$HOME/.java/openjdk13}
RUNTIME_JAVA_HOME=${RUNTIME_JAVA_HOME:-$HOME/.java/openjdk11}

JAVA7_HOME=$HOME/.java/java7
Expand Down
2 changes: 1 addition & 1 deletion .ci/java-versions.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# build and test Elasticsearch for this branch. Valid Java versions
# are 'java' or 'openjdk' followed by the major release number.

ES_BUILD_JAVA=openjdk12
ES_BUILD_JAVA=openjdk13
ES_RUNTIME_JAVA=java8
GRADLE_TASK=build
GRADLE_EXTRA_ARGS=
Expand Down
2 changes: 1 addition & 1 deletion .ci/matrix-build-javas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
# or 'openjdk' followed by the major release number.

ES_BUILD_JAVA:
- openjdk12
- openjdk13
3 changes: 0 additions & 3 deletions .ci/matrix-runtime-javas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,10 @@ ES_RUNTIME_JAVA:
- java8
- java8fips
- java11
- java12
- openjdk12
- openjdk13
- openjdk14
- zulu8
- zulu11
- zulu12
- corretto11
- corretto8
- adoptopenjdk11
Expand Down
3 changes: 2 additions & 1 deletion .ci/packer_cache.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export JAVA_HOME="${HOME}"/.java/${ES_BUILD_JAVA}
# We are caching BWC versions too, need these so we can build those
export JAVA8_HOME="${HOME}"/.java/java8
export JAVA11_HOME="${HOME}"/.java/java11
export JAVA12_HOME="${HOME}"/.java/java12
export JAVA12_HOME="${HOME}"/.java/openjdk12
export JAVA13_HOME="${HOME}"/.java/openjdk13
./gradlew --parallel clean --scan -Porg.elasticsearch.acceptScanTOS=true -s resolveAllDependencies

8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,16 +92,16 @@ Contributing to the Elasticsearch codebase

**Repository:** [https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch)

JDK 12 is required to build Elasticsearch. You must have a JDK 12 installation
JDK 13 is required to build Elasticsearch. You must have a JDK 13 installation
with the environment variable `JAVA_HOME` referencing the path to Java home for
your JDK 12 installation. By default, tests use the same runtime as `JAVA_HOME`.
your JDK 13 installation. By default, tests use the same runtime as `JAVA_HOME`.
However, since Elasticsearch supports JDK 8, the build supports compiling with
JDK 12 and testing on a JDK 8 runtime; to do this, set `RUNTIME_JAVA_HOME`
JDK 13 and testing on a JDK 8 runtime; to do this, set `RUNTIME_JAVA_HOME`
pointing to the Java home of a JDK 8 installation. Note that this mechanism can
be used to test against other JDKs as well, this is not only limited to JDK 8.

> Note: It is also required to have `JAVA8_HOME`, `JAVA9_HOME`, `JAVA10_HOME`
and `JAVA11_HOME` available so that the tests can pass.
and `JAVA11_HOME`, and `JAVA12_HOME` available so that the tests can pass.

> Warning: do not use `sdkman` for Java installations which do not have proper
`jrunscript` for jdk distributions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
public class DistroTestPlugin implements Plugin<Project> {
private static final Logger logger = Logging.getLogger(DistroTestPlugin.class);

private static final String GRADLE_JDK_VERSION = "12.0.1+12@69cfe15208a647278a19ef0990eea691";
private static final String GRADLE_JDK_VERSION = "13.0.1+9@cec27d702aa74d5a8630c65ae61e4305";
private static final String GRADLE_JDK_VENDOR = "openjdk";

// all distributions used by distro tests. this is temporary until tests are per distribution
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/resources/minimumCompilerVersion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.12
13

0 comments on commit 23ab9e0

Please sign in to comment.