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;
+ }
+
}