This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new a8cab5bbaf Configure com.google.protobuf.JavaFeaturesProto for runtime
initialization in native mode
a8cab5bbaf is described below
commit a8cab5bbaf1a0fbbfeab86ad8c1b8485ba2015b0
Author: James Netherton <[email protected]>
AuthorDate: Thu Oct 23 07:30:22 2025 +0100
Configure com.google.protobuf.JavaFeaturesProto for runtime initialization
in native mode
---
.../component/aws2/kinesis/deployment/Aws2KinesisProcessor.java | 4 +++-
.../debezium/oracle/deployment/DebeziumOracleProcessor.java | 6 ++++++
.../camel/quarkus/component/fhir/deployment/FhirProcessor.java | 6 ++++++
.../google/bigquery/deployment/GoogleBigqueryProcessor.java | 1 +
.../component/google/pubsub/deployment/GooglePubsubProcessor.java | 1 +
.../secret/manager/deployment/GoogleSecretManagerProcessor.java | 6 ++++++
.../component/google/storage/deployment/GoogleStorageProcessor.java | 6 ++++++
.../camel/quarkus/component/kudu/deployment/KuduProcessor.java | 6 ++++++
.../quarkus/component/pinecone/deployment/PineconeProcessor.java | 1 +
.../quarkus/component/protobuf/deployment/ProtobufProcessor.java | 5 +++++
.../camel/quarkus/component/qdrant/deployment/QdrantProcessor.java | 6 ++++++
.../quarkus/component/weaviate/deployment/WeaviateProcessor.java | 6 ++++++
12 files changed, 53 insertions(+), 1 deletion(-)
diff --git
a/extensions/aws2-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kinesis/deployment/Aws2KinesisProcessor.java
b/extensions/aws2-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kinesis/deployment/Aws2KinesisProcessor.java
index 038270fb19..ac118db0f2 100644
---
a/extensions/aws2-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kinesis/deployment/Aws2KinesisProcessor.java
+++
b/extensions/aws2-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kinesis/deployment/Aws2KinesisProcessor.java
@@ -36,7 +36,9 @@ class Aws2KinesisProcessor {
@BuildStep
void
runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem>
runtimeInitializedClass) {
-
Stream.of("software.amazon.awssdk.services.dynamodb.DynamoDbRetryPolicy",
+ Stream.of(
+ "com.google.protobuf.JavaFeaturesProto",
+ "software.amazon.awssdk.services.dynamodb.DynamoDbRetryPolicy",
"software.amazon.kinesis.lifecycle.ShutdownTask")
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClass::produce);
diff --git
a/extensions/debezium-oracle/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/oracle/deployment/DebeziumOracleProcessor.java
b/extensions/debezium-oracle/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/oracle/deployment/DebeziumOracleProcessor.java
index 64a0345916..bab4e3ae75 100644
---
a/extensions/debezium-oracle/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/oracle/deployment/DebeziumOracleProcessor.java
+++
b/extensions/debezium-oracle/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/oracle/deployment/DebeziumOracleProcessor.java
@@ -27,6 +27,7 @@ import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import oracle.jdbc.driver.OracleDriver;
class DebeziumOracleProcessor {
@@ -55,4 +56,9 @@ class DebeziumOracleProcessor {
void addDependencies(BuildProducer<IndexDependencyBuildItem>
indexDependency) {
indexDependency.produce(new IndexDependencyBuildItem("io.debezium",
"debezium-connector-oracle"));
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
index 917dcaa883..439ffd8847 100644
---
a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
+++
b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
@@ -34,6 +34,7 @@ import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
import
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import io.quarkus.deployment.pkg.steps.NativeOrNativeSourcesBuild;
import io.quarkus.gizmo.ClassCreator;
import io.quarkus.gizmo.Gizmo;
@@ -136,6 +137,11 @@ final class FhirProcessor {
}
}
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
+
static final class IsFhirServerAbsent implements BooleanSupplier {
@Override
public boolean getAsBoolean() {
diff --git
a/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
b/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
index f1392401c4..51a93827ee 100644
---
a/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
+++
b/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
@@ -33,6 +33,7 @@ class GoogleBigqueryProcessor {
@BuildStep
public List<RuntimeInitializedClassBuildItem> runtimeInitializedClass() {
return List.of(
+ new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto"),
new
RuntimeInitializedClassBuildItem("org.apache.arrow.memory.BaseAllocator"),
new
RuntimeInitializedClassBuildItem("org.apache.arrow.memory.DefaultAllocationManagerFactory"),
new
RuntimeInitializedClassBuildItem("org.apache.arrow.memory.NettyAllocationManager"));
diff --git
a/extensions/google-pubsub/deployment/src/main/java/org/apache/camel/quarkus/component/google/pubsub/deployment/GooglePubsubProcessor.java
b/extensions/google-pubsub/deployment/src/main/java/org/apache/camel/quarkus/component/google/pubsub/deployment/GooglePubsubProcessor.java
index 9f4ef850aa..5c4e9a9992 100644
---
a/extensions/google-pubsub/deployment/src/main/java/org/apache/camel/quarkus/component/google/pubsub/deployment/GooglePubsubProcessor.java
+++
b/extensions/google-pubsub/deployment/src/main/java/org/apache/camel/quarkus/component/google/pubsub/deployment/GooglePubsubProcessor.java
@@ -58,6 +58,7 @@ class GooglePubsubProcessor {
@BuildStep
void
runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem>
runtimeInitializedClass) {
Stream.of(
+ "com.google.protobuf.JavaFeaturesProto",
"io.grpc.internal.RetriableStream" // Consider moving this to
a separate support extension if we need this in multiple top level extensions
)
.map(RuntimeInitializedClassBuildItem::new)
diff --git
a/extensions/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java
b/extensions/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java
index 6cbd9bd4f4..85e230cd23 100644
---
a/extensions/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java
+++
b/extensions/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java
@@ -18,6 +18,7 @@ package
org.apache.camel.quarkus.component.google.secret.manager.deployment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.logging.Logger;
class GoogleSecretManagerProcessor {
@@ -29,4 +30,9 @@ class GoogleSecretManagerProcessor {
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java
b/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java
index 347f9fc5c6..aecf90f3de 100644
---
a/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java
+++
b/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java
@@ -19,6 +19,7 @@ package
org.apache.camel.quarkus.component.google.storage.deployment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
class GoogleStorageProcessor {
@@ -33,4 +34,9 @@ class GoogleStorageProcessor {
ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
return new ExtensionSslNativeSupportBuildItem(FEATURE);
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
index 53a37a54b9..fc42fe5569 100644
---
a/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
+++
b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
@@ -30,6 +30,7 @@ import
io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import
io.quarkus.deployment.builditem.nativeimage.NativeImageSecurityProviderBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import
io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
class KuduProcessor {
@@ -82,4 +83,9 @@ class KuduProcessor {
.map(RuntimeReinitializedClassBuildItem::new)
.forEach(runtimeReinitializedClass::produce);
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/pinecone/deployment/src/main/java/org/apache/camel/quarkus/component/pinecone/deployment/PineconeProcessor.java
b/extensions/pinecone/deployment/src/main/java/org/apache/camel/quarkus/component/pinecone/deployment/PineconeProcessor.java
index b43da48454..bf22f477b1 100644
---
a/extensions/pinecone/deployment/src/main/java/org/apache/camel/quarkus/component/pinecone/deployment/PineconeProcessor.java
+++
b/extensions/pinecone/deployment/src/main/java/org/apache/camel/quarkus/component/pinecone/deployment/PineconeProcessor.java
@@ -62,5 +62,6 @@ class PineconeProcessor {
@BuildStep
void
runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem>
runtimeInitializedClass) {
runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(Configuration.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto"));
}
}
diff --git
a/extensions/protobuf/deployment/src/main/java/org/apache/camel/quarkus/component/protobuf/deployment/ProtobufProcessor.java
b/extensions/protobuf/deployment/src/main/java/org/apache/camel/quarkus/component/protobuf/deployment/ProtobufProcessor.java
index 95725b08fe..a3f6594b9a 100644
---
a/extensions/protobuf/deployment/src/main/java/org/apache/camel/quarkus/component/protobuf/deployment/ProtobufProcessor.java
+++
b/extensions/protobuf/deployment/src/main/java/org/apache/camel/quarkus/component/protobuf/deployment/ProtobufProcessor.java
@@ -23,6 +23,7 @@ import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.jandex.DotName;
import org.jboss.jandex.IndexView;
import org.jboss.logging.Logger;
@@ -55,4 +56,8 @@ class ProtobufProcessor {
}
}
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/qdrant/deployment/src/main/java/org/apache/camel/quarkus/component/qdrant/deployment/QdrantProcessor.java
b/extensions/qdrant/deployment/src/main/java/org/apache/camel/quarkus/component/qdrant/deployment/QdrantProcessor.java
index f54188a0d3..1473927f7d 100644
---
a/extensions/qdrant/deployment/src/main/java/org/apache/camel/quarkus/component/qdrant/deployment/QdrantProcessor.java
+++
b/extensions/qdrant/deployment/src/main/java/org/apache/camel/quarkus/component/qdrant/deployment/QdrantProcessor.java
@@ -18,6 +18,7 @@ package org.apache.camel.quarkus.component.qdrant.deployment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.logging.Logger;
class QdrantProcessor {
@@ -29,4 +30,9 @@ class QdrantProcessor {
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}
diff --git
a/extensions/weaviate/deployment/src/main/java/org/apache/camel/quarkus/component/weaviate/deployment/WeaviateProcessor.java
b/extensions/weaviate/deployment/src/main/java/org/apache/camel/quarkus/component/weaviate/deployment/WeaviateProcessor.java
index fcbc8d12ba..ae80b9d8b0 100644
---
a/extensions/weaviate/deployment/src/main/java/org/apache/camel/quarkus/component/weaviate/deployment/WeaviateProcessor.java
+++
b/extensions/weaviate/deployment/src/main/java/org/apache/camel/quarkus/component/weaviate/deployment/WeaviateProcessor.java
@@ -21,6 +21,7 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.jandex.IndexView;
class WeaviateProcessor {
@@ -50,4 +51,9 @@ class WeaviateProcessor {
IndexDependencyBuildItem registerDependencyForIndex() {
return new IndexDependencyBuildItem("io.weaviate", "client");
}
+
+ @BuildStep
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+ return new
RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+ }
}