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 47fadeaee18 CAMEL-18092: Route reload to better match changed files 
from sub dirs. camel-jbang now also works reloading changed files in sub dirs.
47fadeaee18 is described below

commit 47fadeaee18f733528da1e16e3b76ed82b6fd074
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue May 24 10:41:01 2022 +0200

    CAMEL-18092: Route reload to better match changed files from sub dirs. 
camel-jbang now also works reloading changed files in sub dirs.
---
 .../apache/camel/support/RouteWatcherReloadStrategy.java  |  4 +++-
 .../org/apache/camel/dsl/jbang/core/commands/Run.java     | 15 +++++++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
index 0570defbef4..c4c663a1a7e 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
@@ -125,7 +125,9 @@ public class RouteWatcherReloadStrategy extends 
FileWatcherResourceReloadStrateg
                         path = FileUtil.stripPath(path);
                     }
 
-                    boolean result = matcher.match(part, path, false);
+                    String name = FileUtil.compactPath(f.getPath());
+                    boolean exact = name.equals(part);
+                    boolean result = exact || matcher.match(part, path, false);
                     LOG.trace("Accepting file pattern:{} path:{} -> {}", part, 
path, result);
 
                     if (result) {
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 cb8a66d406c..d0166dc8457 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
@@ -493,10 +493,11 @@ class Run extends CamelCommand {
 
         // we can only reload if file based
         if (dev && sjReload.length() > 0) {
+            String reload = sjReload.toString();
             main.addInitialProperty("camel.main.routesReloadEnabled", "true");
             main.addInitialProperty("camel.main.routesReloadDirectory", ".");
-            // skip file: as prefix
-            main.addInitialProperty("camel.main.routesReloadPattern", 
sjReload.toString());
+            main.addInitialProperty("camel.main.routesReloadPattern", reload);
+            
main.addInitialProperty("camel.main.routesReloadDirectoryRecursive", 
isReloadRecursive(reload) ? "true" : "false");
             // do not shutdown the JVM but stop routes when max duration is 
triggered
             main.addInitialProperty("camel.main.durationMaxAction", "stop");
         }
@@ -793,4 +794,14 @@ class Run extends CamelCommand {
         return fqn;
     }
 
+    private static boolean isReloadRecursive(String reload) {
+        for (String part : reload.split(",")) {
+            String dir = FileUtil.onlyPath(part);
+            if (dir != null) {
+                return true;
+            }
+        }
+        return false;
+    }
+
 }

Reply via email to