From ea078f86c4d7fa8d4b69e7c9b873b3387ceb40de Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Thu, 12 May 2022 13:01:00 -0400 Subject: [PATCH] chore: set Java header at native image runtime (#2069) * chore: set Java header during native image runtime --- .../services/AbstractGoogleClientRequest.java | 11 +++++++++++ .../services/AbstractGoogleClientRequestTest.java | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java index 72ab6e937..3b8d3cc3d 100644 --- a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java +++ b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java @@ -37,6 +37,7 @@ import com.google.api.client.http.UriTemplate; import com.google.api.client.util.GenericData; import com.google.api.client.util.Preconditions; +import com.google.common.base.Joiner; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -164,6 +165,16 @@ static class ApiClientVersion { } public String toString() { + // When running the application as a native image, append `-graalvm` to the + // version. + String imageCode = System.getProperty("org.graalvm.nativeimage.imagecode"); + if (imageCode != null && imageCode.equals("runtime")) { + String[] tokens = versionString.split(" "); + if (tokens.length > 0 && tokens[0].startsWith("gl-java")) { + tokens[0] += "-graalvm"; + return Joiner.on(" ").join(tokens); + } + } return versionString; } diff --git a/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequestTest.java b/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequestTest.java index 734e3900b..1eefdb139 100644 --- a/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequestTest.java +++ b/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequestTest.java @@ -261,6 +261,14 @@ public void testSetsApiClientHeaderWithOsVersion() { assertTrue("Api version should contain the os version", version.matches(".* my-os/1.2.3")); } + public void testSetsApiClientHeader_NativeImage() throws IOException { + System.setProperty("org.graalvm.nativeimage.imagecode", "runtime"); + System.setProperty("java.version", "11.0.0"); + String version = new ApiClientVersion().toString(); + assertTrue( + "Api version should contain -graalvm suffix", version.matches("gl-java/11.0.0-graalvm.*")); + } + public void testSetsApiClientHeaderWithoutOsVersion() { System.setProperty("os.name", "My OS"); System.clearProperty("os.version");