summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/config.go4
-rw-r--r--java/java.go8
-rw-r--r--java/sdk.go10
3 files changed, 18 insertions, 4 deletions
diff --git a/android/config.go b/android/config.go
index 600fda019..c30511494 100644
--- a/android/config.go
+++ b/android/config.go
@@ -725,6 +725,10 @@ func (c *config) IsEnvFalse(key string) bool {
return value == "0" || value == "n" || value == "no" || value == "off" || value == "false"
}
+func (c *config) TargetsJava17() bool {
+ return c.IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_17")
+}
+
// EnvDeps returns the environment variables this build depends on. The first
// call to this function blocks future reads from the environment.
func (c *config) EnvDeps() map[string]string {
diff --git a/java/java.go b/java/java.go
index 874f93576..659f98a7c 100644
--- a/java/java.go
+++ b/java/java.go
@@ -517,8 +517,14 @@ func getJavaVersion(ctx android.ModuleContext, javaVersion string, sdkContext an
return normalizeJavaVersion(ctx, javaVersion)
} else if ctx.Device() {
return defaultJavaLanguageVersion(ctx, sdkContext.SdkVersion(ctx))
- } else {
+ } else if ctx.Config().TargetsJava17() {
+ // Temporary experimental flag to be able to try and build with
+ // java version 17 options. The flag, if used, just sets Java
+ // 17 as the default version, leaving any components that
+ // target an older version intact.
return JAVA_VERSION_17
+ } else {
+ return JAVA_VERSION_11
}
}
diff --git a/java/sdk.go b/java/sdk.go
index 10ae3f6e8..b0da5afba 100644
--- a/java/sdk.go
+++ b/java/sdk.go
@@ -57,10 +57,14 @@ func defaultJavaLanguageVersion(ctx android.EarlyModuleContext, s android.SdkSpe
return JAVA_VERSION_8
} else if sdk.FinalOrFutureInt() <= 31 {
return JAVA_VERSION_9
- } else if sdk.FinalOrFutureInt() <= 32 {
- return JAVA_VERSION_11
- } else {
+ } else if ctx.Config().TargetsJava17() {
+ // Temporary experimental flag to be able to try and build with
+ // java version 17 options. The flag, if used, just sets Java
+ // 17 as the default version, leaving any components that
+ // target an older version intact.
return JAVA_VERSION_17
+ } else {
+ return JAVA_VERSION_11
}
}