Enable testing against JDK 13 EA builds (#40829)

This commit adds JDK 13 to the CI rotation for testing. For now, we will
be testing against JDK 13 EA builds.
This commit is contained in:
Jason Tedor 2019-06-04 20:51:58 -04:00
parent 117df87b2b
commit 78be3dde25
No known key found for this signature in database
GPG Key ID: FA89F05560F16BC5
10 changed files with 20 additions and 15 deletions

View File

@ -8,3 +8,4 @@ ES_BUILD_JAVA=openjdk12
ES_RUNTIME_JAVA=java8 ES_RUNTIME_JAVA=java8
GRADLE_TASK=build GRADLE_TASK=build

View File

@ -7,3 +7,4 @@
ES_BUILD_JAVA: ES_BUILD_JAVA:
- openjdk12 - openjdk12
- openjdk13

View File

@ -11,6 +11,7 @@ ES_RUNTIME_JAVA:
- java11 - java11
- java12 - java12
- openjdk12 - openjdk12
- openjdk13
- zulu8 - zulu8
- zulu11 - zulu11
- zulu12 - zulu12

View File

@ -61,7 +61,7 @@ import static org.elasticsearch.bootstrap.FilePermissionUtils.addSingleFilePath;
/** /**
* Initializes SecurityManager with necessary permissions. * Initializes SecurityManager with necessary permissions.
* <br> * <br>
* <h1>Initialization</h1> * <h2>Initialization</h2>
* The JVM is not initially started with security manager enabled, * The JVM is not initially started with security manager enabled,
* instead we turn it on early in the startup process. This is a tradeoff * instead we turn it on early in the startup process. This is a tradeoff
* between security and ease of use: * between security and ease of use:
@ -72,7 +72,7 @@ import static org.elasticsearch.bootstrap.FilePermissionUtils.addSingleFilePath;
* otherwise be permitted.</li> * otherwise be permitted.</li>
* </ul> * </ul>
* <br> * <br>
* <h1>Permissions</h1> * <h2>Permissions</h2>
* Permissions use a policy file packaged as a resource, this file is * Permissions use a policy file packaged as a resource, this file is
* also used in tests. File permissions are generated dynamically and * also used in tests. File permissions are generated dynamically and
* combined with this policy file. * combined with this policy file.
@ -92,7 +92,7 @@ import static org.elasticsearch.bootstrap.FilePermissionUtils.addSingleFilePath;
* cleanups to the scripting apis). But still it can provide some defense for users * cleanups to the scripting apis). But still it can provide some defense for users
* that enable dynamic scripting without being fully aware of the consequences. * that enable dynamic scripting without being fully aware of the consequences.
* <br> * <br>
* <h1>Debugging Security</h1> * <h2>Debugging Security</h2>
* A good place to start when there is a problem is to turn on security debugging: * A good place to start when there is a problem is to turn on security debugging:
* <pre> * <pre>
* ES_JAVA_OPTS="-Djava.security.debug=access,failure" bin/elasticsearch * ES_JAVA_OPTS="-Djava.security.debug=access,failure" bin/elasticsearch

View File

@ -31,7 +31,7 @@ import java.lang.annotation.Annotation;
* used to create an {@link Injector}. Guice provides this object to your * used to create an {@link Injector}. Guice provides this object to your
* application's {@link Module} implementors so they may each contribute * application's {@link Module} implementors so they may each contribute
* their own bindings and other registrations. * their own bindings and other registrations.
* <h3>The Guice Binding EDSL</h3> * <h2>The Guice Binding EDSL</h2>
* <p> * <p>
* Guice uses an <i>embedded domain-specific language</i>, or EDSL, to help you * Guice uses an <i>embedded domain-specific language</i>, or EDSL, to help you
* create bindings simply and readably. This approach is great for overall * create bindings simply and readably. This approach is great for overall

View File

@ -39,7 +39,7 @@ import static java.util.Collections.unmodifiableSet;
/** /**
* Provides a factory that combines the caller's arguments with injector-supplied values to * Provides a factory that combines the caller's arguments with injector-supplied values to
* construct objects. * construct objects.
* <h3>Defining a factory</h3> * <h2>Defining a factory</h2>
* Create an interface whose methods return the constructed type, or any of its supertypes. The * Create an interface whose methods return the constructed type, or any of its supertypes. The
* method's parameters are the arguments required to build the constructed type. * method's parameters are the arguments required to build the constructed type.
* <pre>public interface PaymentFactory { * <pre>public interface PaymentFactory {

View File

@ -97,7 +97,7 @@ import java.util.Set;
* above. The frequency and length thresholds could be parameters, etc. * above. The frequency and length thresholds could be parameters, etc.
* Doug * Doug
* </pre> * </pre>
* <h3>Initial Usage</h3> * <h2>Initial Usage</h2>
* <p> * <p>
* This class has lots of options to try to make it efficient and flexible. * This class has lots of options to try to make it efficient and flexible.
* The simplest possible usage is as follows. The bold * The simplest possible usage is as follows. The bold

View File

@ -20,7 +20,7 @@
/** /**
* <p>This package exposes the Elasticsearch Snapshot functionality.</p> * <p>This package exposes the Elasticsearch Snapshot functionality.</p>
* *
* <h1>Preliminaries</h1> * <h2>Preliminaries</h2>
* *
* <p>There are two communication channels between all nodes and master in the snapshot functionality:</p> * <p>There are two communication channels between all nodes and master in the snapshot functionality:</p>
* <ul> * <ul>
@ -32,7 +32,7 @@
* snapshot's entry in the cluster state accordingly.</li> * snapshot's entry in the cluster state accordingly.</li>
* </ul> * </ul>
* *
* <h1>Snapshot Creation</h1> * <h2>Snapshot Creation</h2>
* <p>Snapshots are created by the following sequence of events:</p> * <p>Snapshots are created by the following sequence of events:</p>
* <ol> * <ol>
* <li>An invocation of {@link org.elasticsearch.snapshots.SnapshotsService#createSnapshot} enqueues a cluster state update to create * <li>An invocation of {@link org.elasticsearch.snapshots.SnapshotsService#createSnapshot} enqueues a cluster state update to create
@ -68,7 +68,7 @@
* </li> * </li>
* </ol> * </ol>
* *
* <h1>Deleting a Snapshot</h1> * <h2>Deleting a Snapshot</h2>
* *
* <p>Deleting a snapshot can take the form of either simply deleting it from the repository or (if it has not completed yet) aborting it * <p>Deleting a snapshot can take the form of either simply deleting it from the repository or (if it has not completed yet) aborting it
* and subsequently deleting it from the repository.</p> * and subsequently deleting it from the repository.</p>

View File

@ -55,6 +55,8 @@ grant codeBase "${codebase.elasticsearch-plugin-classloader}" {
//// Everything else: //// Everything else:
grant { grant {
// needed by vendored Guice
permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.vm.annotation";
// checked by scripting engines, and before hacks and other issues in // checked by scripting engines, and before hacks and other issues in
// third party code, to safeguard these against unprivileged code like scripts. // third party code, to safeguard these against unprivileged code like scripts.

View File

@ -13,14 +13,14 @@
* if possible, to one (at the moment) query DSL. Of course, this means * if possible, to one (at the moment) query DSL. Of course, this means
* not all SQL queries are supported.<br> * not all SQL queries are supported.<br>
* *
* <h3>Premise</h3> * <h2>Premise</h2>
* Since Elasticsearch is not a database nor does it supports arbitrary * Since Elasticsearch is not a database nor does it supports arbitrary
* {@code JOIN}s (a cornerstone of SQL), SQL module is built from the * {@code JOIN}s (a cornerstone of SQL), SQL module is built from the
* ground-up with Elasticsearch in mind first and SQL second. In fact, * ground-up with Elasticsearch in mind first and SQL second. In fact,
* even the grammar introduces Elasticsearch specific components that * even the grammar introduces Elasticsearch specific components that
* have no concept in ANSI SQL. * have no concept in ANSI SQL.
* *
* <h3>Architecture</h3> * <h2>Architecture</h2>
* SQL module is roughly based on the Volcano project (by Graefe * SQL module is roughly based on the Volcano project (by Graefe
* {@code &} co) * {@code &} co)
* <a href="http://ieeexplore.ieee.org/document/344061">[1]</a> * <a href="http://ieeexplore.ieee.org/document/344061">[1]</a>
@ -53,7 +53,7 @@
* (to different degrees) by the majority of SQL engines out there such * (to different degrees) by the majority of SQL engines out there such
* as Apache Calcite, Apache Impala, Apache Spark and Facebook Presto. * as Apache Calcite, Apache Impala, Apache Spark and Facebook Presto.
* *
* <h3>Concepts</h3> * <h2>Concepts</h2>
* *
* The building operation of the SQL engine is defined by an action, * The building operation of the SQL engine is defined by an action,
* namely a rule (defined in {@link org.elasticsearch.xpack.sql.rule rule} * namely a rule (defined in {@link org.elasticsearch.xpack.sql.rule rule}
@ -112,8 +112,8 @@
* <li>The Elasticsearch query gets executed</li> * <li>The Elasticsearch query gets executed</li>
* </ol> * </ol>
* *
* <h4>Digression - Visitors, pattern matching, {@code instanceof} and * <h3>Digression - Visitors, pattern matching, {@code instanceof} and
* Java 10/11/12</h4> * Java 10/11/12</h3>
* *
* To implement the above concepts, several choices have been made in the * To implement the above concepts, several choices have been made in the
* engine (which are not common in the rest of the XPack code base). In * engine (which are not common in the rest of the XPack code base). In
@ -146,7 +146,7 @@
* {@link org.elasticsearch.xpack.sql.tree.Node#transformDown(java.util.function.Function, Class) * {@link org.elasticsearch.xpack.sql.tree.Node#transformDown(java.util.function.Function, Class)
* pre-order transformation}). * pre-order transformation}).
* *
* <h3>Components</h3> * <h2>Components</h2>
* *
* The SQL engine is made up of the following components: * The SQL engine is made up of the following components:
* <dl> * <dl>