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 2021/11/18 10:48:19 UTC
[camel] 02/02: CAMEL-17206: camel-jbang - Add reload option to enable live reload of routes when updated/saved.
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
commit a41b6ae1491e18e1e0775c06e3abda7c72014f06
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Nov 18 11:46:27 2021 +0100
CAMEL-17206: camel-jbang - Add reload option to enable live reload of routes when updated/saved.
---
.../modules/ROOT/pages/camel-jbang.adoc | 24 +++++++++++++++++++++-
.../apache/camel/dsl/jbang/core/commands/Run.java | 6 ++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index b26f7ad..d85cdaa 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -12,13 +12,22 @@ The CamelJBang supports multiple commands. Running the command below, will print
[source,bash]
----
-jbang -Dcamel.jbang.version=3.13.0 CamelJBang@apache/camel [command]
+jbang CamelJBang@apache/camel [command]
----
*Note*: the first time you run this command, it may cause dependencies to be cached, therefore taking a few extra seconds to run.
All the commands support the `--help` and will display the appropriate help if that flag is provided.
+=== Using a specific Camel version
+
+You can specify which Camel version to run as shown:
+
+[source,bash]
+----
+jbang -Dcamel.jbang.version=3.13.0 CamelJBang@apache/camel [command]
+----
+
=== Search
You can use the CLI to search for kamelets, components, languages and miscelaneous components (others). Running the following command will present a list of items that can be searched:
@@ -120,6 +129,7 @@ In order to do so, write a YAML-based file with the `route`, the `steps` and the
[source,yaml]
----
- route:
+ id: "hello"
from:
uri: "kamelet:timer-source"
parameters:
@@ -143,6 +153,18 @@ jbang -Dcamel.jbang.version=3.13.0 CamelJBang@apache/camel run jms-amqp-10-sink-
NOTE: it is necessary to have a AMQP 1.0 broker, such as Apache Artemis, running locally and listening on port 61616. Adjust the route accordingly if using a different address for the broker.
+=== Live reload
+
+You can enable live reload of the route(s) when the source file is updated (saved),
+using the `--reload` options as shown:
+
+[source,bash]
+----
+jbang -Dcamel.jbang.version=3.13.0 CamelJBang@apache/camel run jms-amqp-10-sink-binding.yaml --reload
+----
+
+Then while the Camel application is running, you can update the YAML route and update when saving.
+
== Installation
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 b8c3a0b..1330c3f 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
@@ -50,6 +50,9 @@ class Run implements Callable<Integer> {
@Option(names = { "--max-messages" }, defaultValue = "0", description = "Max number of messages to process before stopping")
private int maxMessages;
+ @Option(names = { "--reload" }, description = "Enables live reload when source file is changed (saved)")
+ private boolean reload;
+
class ShutdownRoute extends RouteBuilder {
private File lockFile;
@@ -97,6 +100,9 @@ class Run implements Callable<Integer> {
}
System.setProperty("camel.main.routes-include-pattern", "file:" + binding);
+ System.setProperty("camel.main.routes-reload-enabled", reload ? "true" : "false");
+ System.setProperty("camel.main.routes-reload-directory", ".");
+ System.setProperty("camel.main.routes-reload-pattern", binding);
RuntimeUtil.configureLog(debugLevel);