You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2020/03/23 19:49:53 UTC

[camel-quarkus] branch master updated: Fix #936 Warn if JVM only extensions are used in native mode

This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/master by this push:
     new e690a09  Fix #936 Warn if JVM only extensions are used in native mode
e690a09 is described below

commit e690a091bd81f93bc8e900cb1e2e6cd6e69e2a1d
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 18:21:54 2020 +0100

    Fix #936 Warn if JVM only extensions are used in native mode
---
 .../apache/camel/quarkus/core/JvmOnlyRecorder.java | 22 ++++++++++++++--------
 .../aws2/cw/deployment/Aws2CwProcessor.java        | 16 ++++++++++++++++
 .../aws2/ddb/deployment/Aws2DdbProcessor.java      | 16 ++++++++++++++++
 .../aws2/ec2/deployment/Aws2Ec2Processor.java      | 16 ++++++++++++++++
 .../aws2/ecs/deployment/Aws2EcsProcessor.java      | 16 ++++++++++++++++
 .../aws2/eks/deployment/Aws2EksProcessor.java      | 16 ++++++++++++++++
 .../aws2/iam/deployment/Aws2IamProcessor.java      | 16 ++++++++++++++++
 .../aws2/kms/deployment/Aws2KmsProcessor.java      | 16 ++++++++++++++++
 .../aws2/mq/deployment/Aws2MqProcessor.java        | 16 ++++++++++++++++
 .../aws2/msk/deployment/Aws2MskProcessor.java      | 16 ++++++++++++++++
 .../aws2/ses/deployment/Aws2SesProcessor.java      | 16 ++++++++++++++++
 .../aws2/sns/deployment/Aws2SnsProcessor.java      | 16 ++++++++++++++++
 .../aws2/sqs/deployment/Aws2SqsProcessor.java      | 16 ++++++++++++++++
 .../deployment/Aws2TranslateProcessor.java         | 16 ++++++++++++++++
 .../deployment/CassandraqlProcessor.java           | 16 ++++++++++++++++
 .../couchbase/deployment/CouchbaseProcessor.java   | 16 ++++++++++++++++
 .../couchdb/deployment/CouchdbProcessor.java       | 16 ++++++++++++++++
 .../deployment/DebeziumMongodbProcessor.java       | 16 ++++++++++++++++
 .../mysql/deployment/DebeziumMysqlProcessor.java   | 16 ++++++++++++++++
 .../deployment/DebeziumPostgresProcessor.java      | 16 ++++++++++++++++
 .../deployment/DebeziumSqlserverProcessor.java     | 16 ++++++++++++++++
 .../deployment/ElasticsearchRestProcessor.java     | 16 ++++++++++++++++
 .../deployment/GoogleBigqueryProcessor.java        | 16 ++++++++++++++++
 .../groovy/deployment/GroovyProcessor.java         | 16 ++++++++++++++++
 .../influxdb/deployment/InfluxdbProcessor.java     | 16 ++++++++++++++++
 .../component/kudu/deployment/KuduProcessor.java   | 16 ++++++++++++++++
 .../gridfs/deployment/MongodbGridfsProcessor.java  | 16 ++++++++++++++++
 .../nitrite/deployment/NitriteProcessor.java       | 16 ++++++++++++++++
 .../component/ognl/deployment/OgnlProcessor.java   | 16 ++++++++++++++++
 .../openstack/deployment/OpenstackProcessor.java   | 16 ++++++++++++++++
 .../pubnub/deployment/PubnubProcessor.java         | 16 ++++++++++++++++
 .../rabbitmq/deployment/RabbitmqProcessor.java     | 16 ++++++++++++++++
 .../deployment/SapNetweaverProcessor.java          | 16 ++++++++++++++++
 tooling/create-extension-templates/Processor.java  | 17 +++++++++++++++++
 34 files changed, 543 insertions(+), 8 deletions(-)

diff --git a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/JvmOnlyRecorder.java
similarity index 53%
copy from extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
copy to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/JvmOnlyRecorder.java
index 9ea26cc..fe19c02 100644
--- a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/JvmOnlyRecorder.java
@@ -14,18 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.aws2.cw.deployment;
+package org.apache.camel.quarkus.core;
 
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.runtime.annotations.Recorder;
+import org.jboss.logging.Logger;
 
-class Aws2CwProcessor {
+@Recorder
+public class JvmOnlyRecorder {
+    private static final Logger LOG = Logger.getLogger(JvmOnlyRecorder.class);
 
-    private static final String FEATURE = "camel-aws2-cw";
+    public static void warnJvmInNative(Logger log, String feature) {
+        log.warnf(
+                "The %s extension was not tested in native mode."
+                        + " You may want to report about the success or failure running it in native mode on https://github.com/apache/camel-quarkus/issues?q=is%%3Aissue+%s",
+                feature, feature.replace('-', '+'));
+    }
 
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
+    public void warnJvmInNative(String feature) {
+        warnJvmInNative(LOG, feature);
     }
 
 }
diff --git a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java b/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
index 9ea26cc..b9b8ebe 100644
--- a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
+++ b/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.cw.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2CwProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2CwProcessor.class);
 
     private static final String FEATURE = "camel-aws2-cw";
 
@@ -28,4 +34,14 @@ class Aws2CwProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java b/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
index ae0cea0..f57dc0d 100644
--- a/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
+++ b/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.ddb.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2DdbProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2DdbProcessor.class);
 
     private static final String FEATURE = "camel-aws2-ddb";
 
@@ -28,4 +34,14 @@ class Aws2DdbProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java b/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
index 792317f..0ab3987 100644
--- a/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
+++ b/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.ec2.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2Ec2Processor {
+    private static final Logger LOG = Logger.getLogger(Aws2Ec2Processor.class);
 
     private static final String FEATURE = "camel-aws2-ec2";
 
@@ -28,4 +34,14 @@ class Aws2Ec2Processor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java b/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
index 8fb0795..6acc3bf 100644
--- a/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
+++ b/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.ecs.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2EcsProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2EcsProcessor.class);
 
     private static final String FEATURE = "camel-aws2-ecs";
 
@@ -28,4 +34,14 @@ class Aws2EcsProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java b/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
index a94ca1b..14e0894 100644
--- a/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
+++ b/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.eks.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2EksProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2EksProcessor.class);
 
     private static final String FEATURE = "camel-aws2-eks";
 
@@ -28,4 +34,14 @@ class Aws2EksProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java b/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
index 97a63c8..2ed4a5c 100644
--- a/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
+++ b/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.iam.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2IamProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2IamProcessor.class);
 
     private static final String FEATURE = "camel-aws2-iam";
 
@@ -28,4 +34,14 @@ class Aws2IamProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java b/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
index 41c6c9b..dadbea6 100644
--- a/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
+++ b/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.kms.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2KmsProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2KmsProcessor.class);
 
     private static final String FEATURE = "camel-aws2-kms";
 
@@ -28,4 +34,14 @@ class Aws2KmsProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java b/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
index b351f57..32d2df7 100644
--- a/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
+++ b/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.mq.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2MqProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2MqProcessor.class);
 
     private static final String FEATURE = "camel-aws2-mq";
 
@@ -28,4 +34,14 @@ class Aws2MqProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java b/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
index 90c875d..b39c654 100644
--- a/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
+++ b/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.msk.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2MskProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2MskProcessor.class);
 
     private static final String FEATURE = "camel-aws2-msk";
 
@@ -28,4 +34,14 @@ class Aws2MskProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java b/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
index b166791..804c049 100644
--- a/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
+++ b/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.ses.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2SesProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2SesProcessor.class);
 
     private static final String FEATURE = "camel-aws2-ses";
 
@@ -28,4 +34,14 @@ class Aws2SesProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java b/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
index a0fac4a..a583b97 100644
--- a/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
+++ b/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.sns.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2SnsProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2SnsProcessor.class);
 
     private static final String FEATURE = "camel-aws2-sns";
 
@@ -28,4 +34,14 @@ class Aws2SnsProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java b/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
index 90b948c..5d19de2 100644
--- a/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
+++ b/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.sqs.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2SqsProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2SqsProcessor.class);
 
     private static final String FEATURE = "camel-aws2-sqs";
 
@@ -28,4 +34,14 @@ class Aws2SqsProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java b/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
index 63b42c4..72f2f2f 100644
--- a/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
+++ b/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.aws2.translate.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class Aws2TranslateProcessor {
+    private static final Logger LOG = Logger.getLogger(Aws2TranslateProcessor.class);
 
     private static final String FEATURE = "camel-aws2-translate";
 
@@ -28,4 +34,14 @@ class Aws2TranslateProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/cassandraql/deployment/src/main/java/org/apache/camel/quarkus/component/cassandraql/deployment/CassandraqlProcessor.java b/extensions-jvm/cassandraql/deployment/src/main/java/org/apache/camel/quarkus/component/cassandraql/deployment/CassandraqlProcessor.java
index 7f8ef12..8a85d68 100644
--- a/extensions-jvm/cassandraql/deployment/src/main/java/org/apache/camel/quarkus/component/cassandraql/deployment/CassandraqlProcessor.java
+++ b/extensions-jvm/cassandraql/deployment/src/main/java/org/apache/camel/quarkus/component/cassandraql/deployment/CassandraqlProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.cassandraql.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class CassandraqlProcessor {
+    private static final Logger LOG = Logger.getLogger(CassandraqlProcessor.class);
 
     private static final String FEATURE = "camel-cassandraql";
 
@@ -28,4 +34,14 @@ class CassandraqlProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/couchbase/deployment/src/main/java/org/apache/camel/quarkus/component/couchbase/deployment/CouchbaseProcessor.java b/extensions-jvm/couchbase/deployment/src/main/java/org/apache/camel/quarkus/component/couchbase/deployment/CouchbaseProcessor.java
index d47dc4b..0ada884 100644
--- a/extensions-jvm/couchbase/deployment/src/main/java/org/apache/camel/quarkus/component/couchbase/deployment/CouchbaseProcessor.java
+++ b/extensions-jvm/couchbase/deployment/src/main/java/org/apache/camel/quarkus/component/couchbase/deployment/CouchbaseProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.couchbase.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class CouchbaseProcessor {
+    private static final Logger LOG = Logger.getLogger(CouchbaseProcessor.class);
 
     private static final String FEATURE = "camel-couchbase";
 
@@ -28,4 +34,14 @@ class CouchbaseProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java b/extensions-jvm/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java
index 3e505ee..17cebc3 100644
--- a/extensions-jvm/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java
+++ b/extensions-jvm/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.couchdb.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class CouchdbProcessor {
+    private static final Logger LOG = Logger.getLogger(CouchdbProcessor.class);
 
     private static final String FEATURE = "camel-couchdb";
 
@@ -28,4 +34,14 @@ class CouchdbProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java b/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java
index 0545c2c..2231405 100644
--- a/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java
+++ b/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.debezium.mongodb.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class DebeziumMongodbProcessor {
+    private static final Logger LOG = Logger.getLogger(DebeziumMongodbProcessor.class);
 
     private static final String FEATURE = "camel-debezium-mongodb";
 
@@ -28,4 +34,14 @@ class DebeziumMongodbProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java b/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java
index 9afc894..1d913d8 100644
--- a/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java
+++ b/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.debezium.mysql.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class DebeziumMysqlProcessor {
+    private static final Logger LOG = Logger.getLogger(DebeziumMysqlProcessor.class);
 
     private static final String FEATURE = "camel-debezium-mysql";
 
@@ -28,4 +34,14 @@ class DebeziumMysqlProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java b/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
index 083a7e3..932b16b 100644
--- a/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
+++ b/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.debezium.postgres.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class DebeziumPostgresProcessor {
+    private static final Logger LOG = Logger.getLogger(DebeziumPostgresProcessor.class);
 
     private static final String FEATURE = "camel-debezium-postgres";
 
@@ -28,4 +34,14 @@ class DebeziumPostgresProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java b/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java
index 908de57..30cccb9 100644
--- a/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java
+++ b/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.debezium.sqlserver.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class DebeziumSqlserverProcessor {
+    private static final Logger LOG = Logger.getLogger(DebeziumSqlserverProcessor.class);
 
     private static final String FEATURE = "camel-debezium-sqlserver";
 
@@ -28,4 +34,14 @@ class DebeziumSqlserverProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/elasticsearch-rest/deployment/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/deployment/ElasticsearchRestProcessor.java b/extensions-jvm/elasticsearch-rest/deployment/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/deployment/ElasticsearchRestProcessor.java
index 43de652..95ea08a 100644
--- a/extensions-jvm/elasticsearch-rest/deployment/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/deployment/ElasticsearchRestProcessor.java
+++ b/extensions-jvm/elasticsearch-rest/deployment/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/deployment/ElasticsearchRestProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.elasticsearch.rest.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class ElasticsearchRestProcessor {
+    private static final Logger LOG = Logger.getLogger(ElasticsearchRestProcessor.class);
 
     private static final String FEATURE = "camel-elasticsearch-rest";
 
@@ -28,4 +34,14 @@ class ElasticsearchRestProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java b/extensions-jvm/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
index 645a276..dda4b60 100644
--- a/extensions-jvm/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
+++ b/extensions-jvm/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.google.bigquery.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class GoogleBigqueryProcessor {
+    private static final Logger LOG = Logger.getLogger(GoogleBigqueryProcessor.class);
 
     private static final String FEATURE = "camel-google-bigquery";
 
@@ -28,4 +34,14 @@ class GoogleBigqueryProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/groovy/deployment/src/main/java/org/apache/camel/quarkus/component/groovy/deployment/GroovyProcessor.java b/extensions-jvm/groovy/deployment/src/main/java/org/apache/camel/quarkus/component/groovy/deployment/GroovyProcessor.java
index 123fc0a..3b8716a 100644
--- a/extensions-jvm/groovy/deployment/src/main/java/org/apache/camel/quarkus/component/groovy/deployment/GroovyProcessor.java
+++ b/extensions-jvm/groovy/deployment/src/main/java/org/apache/camel/quarkus/component/groovy/deployment/GroovyProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.groovy.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class GroovyProcessor {
+    private static final Logger LOG = Logger.getLogger(GroovyProcessor.class);
 
     private static final String FEATURE = "camel-groovy";
 
@@ -28,4 +34,14 @@ class GroovyProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java b/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java
index bb359aa..6af0084 100644
--- a/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java
+++ b/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.influxdb.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class InfluxdbProcessor {
+    private static final Logger LOG = Logger.getLogger(InfluxdbProcessor.class);
 
     private static final String FEATURE = "camel-influxdb";
 
@@ -28,4 +34,14 @@ class InfluxdbProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java b/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
index 831b9ca..5678d54 100644
--- a/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
+++ b/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.kudu.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class KuduProcessor {
+    private static final Logger LOG = Logger.getLogger(KuduProcessor.class);
 
     private static final String FEATURE = "camel-kudu";
 
@@ -28,4 +34,14 @@ class KuduProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java b/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java
index 6a33f5c..c8fa728 100644
--- a/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java
+++ b/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.mongodb.gridfs.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class MongodbGridfsProcessor {
+    private static final Logger LOG = Logger.getLogger(MongodbGridfsProcessor.class);
 
     private static final String FEATURE = "camel-mongodb-gridfs";
 
@@ -28,4 +34,14 @@ class MongodbGridfsProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java b/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java
index 3c0aa21..1aba65b 100644
--- a/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java
+++ b/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.nitrite.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class NitriteProcessor {
+    private static final Logger LOG = Logger.getLogger(NitriteProcessor.class);
 
     private static final String FEATURE = "camel-nitrite";
 
@@ -28,4 +34,14 @@ class NitriteProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/ognl/deployment/src/main/java/org/apache/camel/quarkus/component/ognl/deployment/OgnlProcessor.java b/extensions-jvm/ognl/deployment/src/main/java/org/apache/camel/quarkus/component/ognl/deployment/OgnlProcessor.java
index 7018d41..a63294a 100644
--- a/extensions-jvm/ognl/deployment/src/main/java/org/apache/camel/quarkus/component/ognl/deployment/OgnlProcessor.java
+++ b/extensions-jvm/ognl/deployment/src/main/java/org/apache/camel/quarkus/component/ognl/deployment/OgnlProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.ognl.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class OgnlProcessor {
+    private static final Logger LOG = Logger.getLogger(OgnlProcessor.class);
 
     private static final String FEATURE = "camel-ognl";
 
@@ -28,4 +34,14 @@ class OgnlProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java b/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java
index e9f57bc..338dc8d 100644
--- a/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java
+++ b/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.openstack.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class OpenstackProcessor {
+    private static final Logger LOG = Logger.getLogger(OpenstackProcessor.class);
 
     private static final String FEATURE = "camel-openstack";
 
@@ -28,4 +34,14 @@ class OpenstackProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java b/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java
index 6a43482..3613364 100644
--- a/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java
+++ b/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.pubnub.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class PubnubProcessor {
+    private static final Logger LOG = Logger.getLogger(PubnubProcessor.class);
 
     private static final String FEATURE = "camel-pubnub";
 
@@ -28,4 +34,14 @@ class PubnubProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java b/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java
index 3a4e54a..b5775fa 100644
--- a/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java
+++ b/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.rabbitmq.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class RabbitmqProcessor {
+    private static final Logger LOG = Logger.getLogger(RabbitmqProcessor.class);
 
     private static final String FEATURE = "camel-rabbitmq";
 
@@ -28,4 +34,14 @@ class RabbitmqProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/extensions-jvm/sap-netweaver/deployment/src/main/java/org/apache/camel/quarkus/component/sap/netweaver/deployment/SapNetweaverProcessor.java b/extensions-jvm/sap-netweaver/deployment/src/main/java/org/apache/camel/quarkus/component/sap/netweaver/deployment/SapNetweaverProcessor.java
index 62596dd..360dda4 100644
--- a/extensions-jvm/sap-netweaver/deployment/src/main/java/org/apache/camel/quarkus/component/sap/netweaver/deployment/SapNetweaverProcessor.java
+++ b/extensions-jvm/sap-netweaver/deployment/src/main/java/org/apache/camel/quarkus/component/sap/netweaver/deployment/SapNetweaverProcessor.java
@@ -17,9 +17,15 @@
 package org.apache.camel.quarkus.component.sap.netweaver.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class SapNetweaverProcessor {
+    private static final Logger LOG = Logger.getLogger(SapNetweaverProcessor.class);
 
     private static final String FEATURE = "camel-sap-netweaver";
 
@@ -28,4 +34,14 @@ class SapNetweaverProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+
 }
diff --git a/tooling/create-extension-templates/Processor.java b/tooling/create-extension-templates/Processor.java
index 03753fc..14166c8 100644
--- a/tooling/create-extension-templates/Processor.java
+++ b/tooling/create-extension-templates/Processor.java
@@ -17,15 +17,32 @@
 package [=javaPackageBase].deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
 
 class [=toCapCamelCase(artifactIdBase)]Processor {
 
+    private static final Logger LOG = Logger.getLogger([=toCapCamelCase(artifactIdBase)]Processor.class);
     private static final String FEATURE = "camel-[=artifactIdBase]";
 
     @BuildStep
     FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
+[#if !nativeSupported ]
 
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+[/#if]
 }