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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 5d4c6cbf0746 CAMEL-22667: camel-jbang - Using --stub with none 
existing may cause timer to not trigger
5d4c6cbf0746 is described below

commit 5d4c6cbf07460608e7653b3bfd6729ebf3e23122
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Nov 6 10:12:43 2025 +0100

    CAMEL-22667: camel-jbang - Using --stub with none existing may cause timer 
to not trigger
---
 .../org/apache/camel/dsl/jbang/core/commands/Run.java  |  4 ++--
 .../camel/main/download/KameletMainInjector.java       | 18 ++++++++++++------
 .../main/download/StubComponentAutowireStrategy.java   | 12 +++++++++++-
 3 files changed, 25 insertions(+), 9 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 1abbae530a77..8e6330f37322 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -596,10 +596,10 @@ public class Run extends CamelCommand {
             StringJoiner sj = new StringJoiner(",");
             for (String n : stub.split(",")) {
                 // you can either refer to a name or a specific endpoint
-                // if there is a colon then we assume its a specific endpoint 
then we should not add wildcard
+                // if there is a colon then we assume it's a specific endpoint 
then we should not add wildcard
                 boolean colon = n.contains(":");
                 if (!colon && !n.endsWith("*")) {
-                    n = n + "*";
+                    n = "component:" + n + "*";
                 }
                 sj.add(n);
             }
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletMainInjector.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletMainInjector.java
index 742a92d7b7de..94277558399a 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletMainInjector.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletMainInjector.java
@@ -81,21 +81,27 @@ public class KameletMainInjector implements Injector {
         boolean accept = true;
         if (stubPattern != null && Component.class.isAssignableFrom(type)) {
             accept = accept(type);
-            if (!accept && !"*".equals(stubPattern)) {
+            if (!accept && !("*".equals(stubPattern) || 
"component:*".equals(stubPattern))) {
                 // grab component name via annotation trick!
                 org.apache.camel.spi.annotations.Component ann
                         = ObjectHelper.getAnnotation(this, 
org.apache.camel.spi.annotations.Component.class);
                 if (ann != null) {
-                    boolean found = false;
+                    boolean stubbed = false;
                     String name = ann.value();
                     for (String n : name.split(",")) {
-                        if (PatternHelper.matchPatterns(n, 
stubPattern.split(","))) {
-                            found = true;
-                            break;
+                        for (String p : stubPattern.split(",")) {
+                            if (p.startsWith("component:")) {
+                                p = p.substring(10);
+                            }
+                            stubbed |= PatternHelper.matchPattern(n, p);
                         }
                     }
-                    accept = !found;
+                    accept = !stubbed;
+                } else {
+                    accept = true;
                 }
+            } else {
+                accept = true;
             }
         }
         return accept;
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubComponentAutowireStrategy.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubComponentAutowireStrategy.java
index c0c013a36471..caabce1ee1e1 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubComponentAutowireStrategy.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubComponentAutowireStrategy.java
@@ -80,7 +80,17 @@ public class StubComponentAutowireStrategy extends 
LifecycleStrategySupport impl
     }
 
     private void autowire(String name, String kind, Object target) {
-        boolean stubbed = PatternHelper.matchPatterns(name, 
pattern.split(","));
+        boolean stubbed = false;
+        for (String n : pattern.split(",")) {
+            if ("component".equals(kind) && n.startsWith("component:")) {
+                n = n.substring(10);
+            } else if ("dataformat".equals(kind) && 
n.startsWith("dataformat:")) {
+                n = n.substring(11);
+            } else if ("language".equals(kind) && n.startsWith("language:")) {
+                n = n.substring(9);
+            }
+            stubbed |= PatternHelper.matchPattern(name, n);
+        }
         if (stubbed) {
             // do not autowire
         } else {

Reply via email to