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

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


The following commit(s) were added to refs/heads/camel-4.10.x by this push:
     new 8f343348b26 CAMEL-21990: camel-jbang: Fix findPids to support --name 
option.
8f343348b26 is described below

commit 8f343348b264c76cea568a9a1f1fd4436ce0cc41
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Apr 18 10:15:33 2025 +0200

    CAMEL-21990: camel-jbang: Fix findPids to support --name option.
---
 .../jbang/core/commands/action/ActionBaseCommand.java | 19 +++++++++++++++++--
 .../core/commands/process/ProcessBaseCommand.java     | 12 ++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/ActionBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/ActionBaseCommand.java
index 7520e89cd47..36632f43ea4 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/ActionBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/ActionBaseCommand.java
@@ -66,8 +66,11 @@ abstract class ActionBaseCommand extends CamelCommand {
         if (name.matches("\\d+")) {
             return List.of(Long.parseLong(name));
         } else {
-            // lets be open and match all that starts with this pattern
-            if (!name.endsWith("*")) {
+            if (name.endsWith("!")) {
+                // exclusive this name only
+                name = name.substring(0, name.length() - 1);
+            } else if (!name.endsWith("*")) {
+                // lets be open and match all that starts with this pattern
                 name = name + "*";
             }
         }
@@ -85,6 +88,18 @@ abstract class ActionBaseCommand extends CamelCommand {
                         pName = FileUtil.onlyName(pName);
                         if (pName != null && !pName.isEmpty() && 
PatternHelper.matchPattern(pName, pattern)) {
                             pids.add(ph.pid());
+                        } else {
+                            // try camel context name
+                            JsonObject context = (JsonObject) 
root.get("context");
+                            if (context != null) {
+                                pName = context.getString("name");
+                                if ("CamelJBang".equals(pName)) {
+                                    pName = null;
+                                }
+                                if (pName != null && !pName.isEmpty() && 
PatternHelper.matchPattern(pName, pattern)) {
+                                    pids.add(ph.pid());
+                                }
+                            }
                         }
                     }
                 });
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
index 408e6d103b1..5a1beb1277d 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
@@ -63,6 +63,18 @@ abstract class ProcessBaseCommand extends CamelCommand {
                         pName = FileUtil.onlyName(pName);
                         if (pName != null && !pName.isEmpty() && 
PatternHelper.matchPattern(pName, pattern)) {
                             pids.add(ph.pid());
+                        } else {
+                            // try camel context name
+                            JsonObject context = (JsonObject) 
root.get("context");
+                            if (context != null) {
+                                pName = context.getString("name");
+                                if ("CamelJBang".equals(pName)) {
+                                    pName = null;
+                                }
+                                if (pName != null && !pName.isEmpty() && 
PatternHelper.matchPattern(pName, pattern)) {
+                                    pids.add(ph.pid());
+                                }
+                            }
                         }
                     }
                 });

Reply via email to