Bump Java language level to Java 17 per default

Note that with this change CI verification takes place on JDK 17 for
both checker environments: Build/Tests and RBE Build/Tests.

Also update eclipse project generation to reference JavaSE-17 per
default.

Also change compatibility mode of Locale Sensitive Service Provider to
COMPAT only, as it also fixed the tests on Mac Os X operating system.

Test Plan:

To build with Remote JDK 17 locally:

  $ bazel build release

To build with Remote JDK 17 on RBE:

  $ bazel build --config=remote --remote_instance_name=<name> release

To build with Remote JDK 11 locally:

  $ bazel build --config java11 release

To build with Remote JDK 11 on RBE:

  $ bazel build --config=remote11 --remote_instance_name=<name> release

Release-Notes: Update Java language level to Java 17 per default
Change-Id: I932527e6036efb1518a31979a22a086e458bbc5c
diff --git a/.bazelrc b/.bazelrc
index 94df44e..6828f9e 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -4,30 +4,30 @@
 build --disk_cache=~/.gerritcodereview/bazel-cache/cas
 
 # Builds using remotejdk_11, executes using remotejdk_11 or local_jdk
-build --java_language_version=11
-build --java_runtime_version=remotejdk_11
-build --tool_java_language_version=11
-build --tool_java_runtime_version=remotejdk_11
+build:java11 --java_language_version=11
+build:java11 --java_runtime_version=remotejdk_11
+build:java11 --tool_java_language_version=11
+build:java11 --tool_java_runtime_version=remotejdk_11
 
 # Builds using remotejdk_17, executes using remotejdk_17 or local_jdk
-build:java17 --java_language_version=17
-build:java17 --java_runtime_version=remotejdk_17
-build:java17 --tool_java_language_version=17
-build:java17 --tool_java_runtime_version=remotejdk_17
+build --java_language_version=17
+build --java_runtime_version=remotejdk_17
+build --tool_java_language_version=17
+build --tool_java_runtime_version=remotejdk_17
 
 # Builds and executes on RBE using remotejdk_11
-build:remote --java_language_version=11
-build:remote --java_runtime_version=remotejdk_11
-build:remote --tool_java_language_version=11
-build:remote --tool_java_runtime_version=remotejdk_11
-build:remote --config=remote_shared
+build:remote11 --java_language_version=11
+build:remote11 --java_runtime_version=remotejdk_11
+build:remote11 --tool_java_language_version=11
+build:remote11 --tool_java_runtime_version=remotejdk_11
+build:remote11 --config=remote_shared
 
 # Builds and executes on RBE using remotejdk_17
-build:remote17 --java_language_version=17
-build:remote17 --java_runtime_version=remotejdk_17
-build:remote17 --tool_java_language_version=17
-build:remote17 --tool_java_runtime_version=remotejdk_17
-build:remote17 --config=remote_shared
+build:remote --java_language_version=17
+build:remote --java_runtime_version=remotejdk_17
+build:remote --tool_java_language_version=17
+build:remote --tool_java_runtime_version=remotejdk_17
+build:remote --config=remote_shared
 
 # Enable strict_action_env flag to. For more information on this feature see
 # https://groups.google.com/forum/#!topic/bazel-discuss/_VmRfMyyHBk.
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index fae2a87..ba37f19 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -11,9 +11,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.compliance=17
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,4 +130,4 @@
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.processAnnotations=enabled
 org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=11
+org.eclipse.jdt.core.compiler.source=17
diff --git a/java/Main.java b/java/Main.java
index c04db2c..e824a95 100644
--- a/java/Main.java
+++ b/java/Main.java
@@ -16,7 +16,7 @@
 public final class Main {
   private static final String FLOGGER_BACKEND_PROPERTY = "flogger.backend_factory";
   private static final String FLOGGER_LOGGING_CONTEXT = "flogger.logging_context";
-  private static final Runtime.Version MIN_JAVA_VERSION = Runtime.Version.parse("11.0.10");
+  private static final Runtime.Version MIN_JAVA_VERSION = Runtime.Version.parse("17.0.5");
 
   // We don't do any real work here because we need to import
   // the archive lookup code and we cannot import a class in
diff --git a/tools/bzl/junit.bzl b/tools/bzl/junit.bzl
index 4659c48..c5951e1 100644
--- a/tools/bzl/junit.bzl
+++ b/tools/bzl/junit.bzl
@@ -70,7 +70,7 @@
 POST_JDK8_OPTS = [
     # Enforce JDK 8 compatibility on Java 9, see
     # https://docs.oracle.com/javase/9/intl/internationalization-enhancements-jdk-9.htm#JSINT-GUID-AF5AECA7-07C1-4E7D-BC10-BC7E73DC6C7F
-    "-Djava.locale.providers=COMPAT,CLDR,SPI",
+    "-Djava.locale.providers=COMPAT",
 ]
 
 POST_JDK17_OPTS = [
diff --git a/tools/eclipse/project.py b/tools/eclipse/project.py
index d574ecf..3ad9e0c 100755
--- a/tools/eclipse/project.py
+++ b/tools/eclipse/project.py
@@ -24,7 +24,7 @@
 MAIN = '//tools/eclipse:classpath'
 AUTO = '//lib/auto:auto-value'
 
-def JRE(java_vers = '11'):
+def JRE(java_vers = '17'):
     return '/'.join([
         'org.eclipse.jdt.launching.JRE_CONTAINER',
         'org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType',