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 488672ae636 CAMEL-21990: camel-jbang: Fix findPids to support --name 
option.
488672ae636 is described below

commit 488672ae63662890a5c87e26c4e0d74a46baa4e0
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 d6b347e5a00..1274c448d33 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
@@ -66,6 +66,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