You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/11/05 08:51:33 UTC

(camel) 01/01: CAMEL-22651: camel-jbang - Fix --stub to handle multiple names seperated by comma and some wrong pattern logic.

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

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

commit 1502bc5437556bb2bb83e62112f7c4fa24df2d01
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Nov 5 09:51:16 2025 +0100

    CAMEL-22651: camel-jbang - Fix --stub to handle multiple names seperated by comma and some wrong pattern logic.
---
 .../download/DependencyDownloaderComponentResolver.java    | 10 ++++++++--
 .../download/DependencyDownloaderDataFormatResolver.java   |  5 ++++-
 .../download/DependencyDownloaderLanguageResolver.java     | 14 +++++++++++---
 .../download/DependencyDownloaderTransformerResolver.java  |  6 ++++--
 .../main/download/KameletAutowiredLifecycleStrategy.java   |  6 ++----
 .../apache/camel/main/download/KameletMainInjector.java    |  2 +-
 .../camel/main/download/StubComponentAutowireStrategy.java |  4 +++-
 7 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
index b4c636f21834..9fc30b8ebd43 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.platform.http.PlatformHttpComponent;
 import org.apache.camel.component.stub.StubComponent;
 import org.apache.camel.impl.engine.DefaultComponentResolver;
 import org.apache.camel.main.util.SuggestSimilarHelper;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.OtherModel;
 
@@ -134,14 +135,19 @@ public final class DependencyDownloaderComponentResolver extends DefaultComponen
 
     private boolean accept(String name) {
         if (transform) {
-            return Arrays.stream(ACCEPTED_TRANSFORM_NAMES).anyMatch(n -> n.equals(name));
+            return Arrays.asList(ACCEPTED_TRANSFORM_NAMES).contains(name);
         }
         if (stubPattern == null) {
             return true;
         }
 
         // we are stubbing but need to accept the following
-        return Arrays.stream(ACCEPTED_STUB_NAMES).anyMatch(n -> n.equals(name));
+        if (Arrays.asList(ACCEPTED_STUB_NAMES).contains(name)) {
+            return true;
+        }
+
+        boolean stubbed = PatternHelper.matchPatterns(name, stubPattern.split(","));
+        return !stubbed;
     }
 
 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
index 20e6506fd6f5..7bdc85280ec0 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
@@ -25,6 +25,7 @@ import org.apache.camel.impl.engine.DefaultDataFormatResolver;
 import org.apache.camel.main.stub.StubDataFormat;
 import org.apache.camel.main.util.SuggestSimilarHelper;
 import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.tooling.model.DataFormatModel;
 
 /**
@@ -78,7 +79,9 @@ public final class DependencyDownloaderDataFormatResolver extends DefaultDataFor
         if (stubPattern == null) {
             return true;
         }
-        return false;
+
+        boolean stubbed = PatternHelper.matchPatterns(name, stubPattern.split(","));
+        return !stubbed;
     }
 
 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
index 5dfe06305e35..b15eaab6f94e 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.main.download;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
@@ -25,6 +26,7 @@ import org.apache.camel.impl.engine.DefaultLanguageResolver;
 import org.apache.camel.main.stub.StubLanguage;
 import org.apache.camel.main.util.SuggestSimilarHelper;
 import org.apache.camel.spi.Language;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.tooling.model.LanguageModel;
 
 /**
@@ -32,8 +34,9 @@ import org.apache.camel.tooling.model.LanguageModel;
  */
 public final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver {
 
-    private static final String ACCEPTED_STUB_NAMES
-            = "constant,exchangeProperty,header,ref,simple,variable";
+    private static final String[] ACCEPTED_STUB_NAMES = new String[] {
+            "constant", "exchangeProperty", "header", "ref", "simple", "variable"
+    };
 
     private final CamelCatalog catalog = new DefaultCamelCatalog();
     private final DependencyDownloader downloader;
@@ -87,7 +90,12 @@ public final class DependencyDownloaderLanguageResolver extends DefaultLanguageR
         }
 
         // we are stubbing but need to accept the following
-        return ACCEPTED_STUB_NAMES.contains(name);
+        if (Arrays.asList(ACCEPTED_STUB_NAMES).contains(name)) {
+            return true;
+        }
+
+        boolean stubbed = PatternHelper.matchPatterns(name, stubPattern.split(","));
+        return !stubbed;
     }
 
 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderTransformerResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderTransformerResolver.java
index 2cdc7159085c..5cbc444094ee 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderTransformerResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderTransformerResolver.java
@@ -26,6 +26,7 @@ import org.apache.camel.main.stub.StubTransformer;
 import org.apache.camel.main.util.SuggestSimilarHelper;
 import org.apache.camel.spi.Transformer;
 import org.apache.camel.spi.TransformerKey;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.tooling.model.TransformerModel;
 
 /**
@@ -80,8 +81,9 @@ public final class DependencyDownloaderTransformerResolver extends DefaultTransf
         if (stubPattern == null) {
             return true;
         }
-        // we are stubbing
-        return false;
+
+        boolean stubbed = PatternHelper.matchPatterns(name, stubPattern.split(","));
+        return !stubbed;
     }
 
 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletAutowiredLifecycleStrategy.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletAutowiredLifecycleStrategy.java
index de853e834c10..bc886a9f8137 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletAutowiredLifecycleStrategy.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KameletAutowiredLifecycleStrategy.java
@@ -74,10 +74,8 @@ public class KameletAutowiredLifecycleStrategy extends MainAutowiredLifecycleStr
             return false;
         } else {
             // is the component stubbed, then it should not autowire
-            for (String n : stubPattern.split(",")) {
-                if (PatternHelper.matchPattern(n, stubPattern)) {
-                    return false;
-                }
+            if (PatternHelper.matchPatterns(name, stubPattern.split(","))) {
+                return false;
             }
         }
         return true;
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 2a2817cae6d6..742a92d7b7de 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
@@ -89,7 +89,7 @@ public class KameletMainInjector implements Injector {
                     boolean found = false;
                     String name = ann.value();
                     for (String n : name.split(",")) {
-                        if (PatternHelper.matchPattern(n, stubPattern)) {
+                        if (PatternHelper.matchPatterns(n, stubPattern.split(","))) {
                             found = true;
                             break;
                         }
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 50ddf0da72e4..c0c013a36471 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
@@ -23,6 +23,7 @@ import org.apache.camel.spi.AutowiredLifecycleStrategy;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Language;
 import org.apache.camel.support.LifecycleStrategySupport;
+import org.apache.camel.support.PatternHelper;
 
 public class StubComponentAutowireStrategy extends LifecycleStrategySupport implements AutowiredLifecycleStrategy, Ordered {
     private final CamelContext camelContext;
@@ -79,7 +80,8 @@ public class StubComponentAutowireStrategy extends LifecycleStrategySupport impl
     }
 
     private void autowire(String name, String kind, Object target) {
-        if (pattern.contains(name)) {
+        boolean stubbed = PatternHelper.matchPatterns(name, pattern.split(","));
+        if (stubbed) {
             // do not autowire
         } else {
             doAutoWire(name, kind, target, camelContext);