From fddce0335c6fff925979a1f51682be2f65a83d82 Mon Sep 17 00:00:00 2001 From: Mridula Peddada Date: Mon, 28 Mar 2022 20:04:34 -0400 Subject: [PATCH 1/3] fix(java): initialize classes at build-time to Native Image support issues --- .../google-cloud-nio/native-image.properties | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties diff --git a/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties new file mode 100644 index 00000000..afce15de --- /dev/null +++ b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties @@ -0,0 +1,36 @@ +# Using META-INF/services with Native Image compilation results in +# FileSystemProvider being initialized at build time. This results +# CloudStorageFileSystemProvider and all the sub-classes referenced by +# this class also being initialized at build time. +Args = --initialize-at-build-time=com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider,\ + com.google.cloud.storage.contrib.nio.CloudStorageConfiguration,\ + com.google.cloud.storage.contrib.nio.CloudStorageFileSystem,\ + com.google.cloud.storage.contrib.nio.StorageOptionsUtil,\ + com.google.cloud.storage.StorageException,\ + com.google.cloud.storage.StorageOptions,\ + com.google.cloud.storage.DefaultStorageRetryStrategy,\ + com.google.api.client.http.OpenCensusUtils,\ + com.google.api.client.http.GenericUrl,\ + com.google.api.client.http.HttpRequest,\ + com.google.api.client.http.HttpMediaType,\ + com.google.api.client.http.javanet.NetHttpTransport,\ + com.google.api.client.util.Data,\ + com.google.api.client.util.DateTime,\ + com.google.auth.oauth2,\ + io.opencensus.trace,\ + com.google.api.client.util.escape.CharEscapers,\ + com.google.api.client.util.escape.PercentEscaper,\ + io.opencensus.contrib.http.util.CloudTraceFormat,\ + io.grpc.Context,\ + io.grpc.Context$LazyStorage,\ + io.grpc.ThreadLocalContextStorage,\ + com.google.common.cache.LocalCache,\ + com.google.common.cache.CacheBuilder,\ + com.google.common.math.IntMath$1,\ + com.google.common.collect.RegularImmutableMap,\ + com.google.gson.stream.JsonReader,\ + com.google.api.client.json.gson.GsonParser$1,\ + com.google.api.client.json.JsonParser$1,\ + com.google.cloud.PlatformInformation,\ + com.google.cloud.ExceptionHandler,\ + org.threeten.bp.Duration \ No newline at end of file From fe9fd7b1c4c4e7f3822f0391b956af1ace88bcb5 Mon Sep 17 00:00:00 2001 From: Mridula Peddada Date: Wed, 30 Mar 2022 11:27:39 -0400 Subject: [PATCH 2/3] update comment in native-image.properties --- .../google/cloud/google-cloud-nio/native-image.properties | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties index afce15de..15363fc3 100644 --- a/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties +++ b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties @@ -1,7 +1,9 @@ # Using META-INF/services with Native Image compilation results in # FileSystemProvider being initialized at build time. This results -# CloudStorageFileSystemProvider and all the sub-classes referenced by -# this class also being initialized at build time. +# CloudStorageFileSystemProvider and some classes referenced by +# this class (for example, StorageOptions, StorageOptionsUtil, +# DefaultStorageRetryStrategy) being unexpectedly and recursively initialized at +# build time. Args = --initialize-at-build-time=com.google.cloud.storage.contrib.nio.CloudStorageFileSystemProvider,\ com.google.cloud.storage.contrib.nio.CloudStorageConfiguration,\ com.google.cloud.storage.contrib.nio.CloudStorageFileSystem,\ From 3ac88f08ba0b5da86c30d81933e92c7307af1adb Mon Sep 17 00:00:00 2001 From: Mridula Peddada Date: Wed, 30 Mar 2022 15:48:20 -0400 Subject: [PATCH 3/3] add missing classes --- .../google/cloud/google-cloud-nio/native-image.properties | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties index 15363fc3..538e25bb 100644 --- a/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties +++ b/google-cloud-nio/src/main/resources/META-INF/native-image/com/google/cloud/google-cloud-nio/native-image.properties @@ -35,4 +35,9 @@ Args = --initialize-at-build-time=com.google.cloud.storage.contrib.nio.CloudStor com.google.api.client.json.JsonParser$1,\ com.google.cloud.PlatformInformation,\ com.google.cloud.ExceptionHandler,\ - org.threeten.bp.Duration \ No newline at end of file + org.threeten.bp.Duration,\ + com.google.common.io.BaseEncoding$Base16Encoding,\ + com.google.common.io.BaseEncoding$Base64Encoding,\ + com.google.common.io.BaseEncoding,\ + com.google.common.io.BaseEncoding$StandardBaseEncoding,\ + com.google.api.client.util.PemReader