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 2024/04/24 16:42:35 UTC

(camel) 11/11: CAMEL-19041: camel-jbang - Run with runtime for spring-boot and quarkus

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

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

commit 5d3cdf4682c5cb5cd733b3d61eed097ac8587663
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Apr 24 18:40:20 2024 +0200

    CAMEL-19041: camel-jbang - Run with runtime for spring-boot and quarkus
---
 .../modules/ROOT/pages/camel-jbang.adoc            | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index 1a36c8d9ae2..ff04e5be63a 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -2399,6 +2399,54 @@ which is due to invalid configuration: `Invalid url in bootstrap.servers: value`
 
 TIP: Use `camel get health --help` to see all the various options.
 
+
+== Running with Spring Boot or Quarkus
+
+Camel JBang is __primary__ intended to be Camel standalone only. In *Camel 4.6* onwards we added limited
+support for running with Spring Boot or Quarkus, but there are some limitations.
+
+You use the `--runtime` option to specify which platform to use, as shown below:
+
+[source,bash]
+----
+camel run foo.camel.yaml --runtime=spring-boot
+----
+
+And for Quarkus:
+
+[source,bash]
+----
+camel run foo.camel.yaml --runtime=quarkus
+----
+
+When running this way, then Camel JBang is _essentially_ doing an _export_ to a temporary folder,
+and then running Spring Boot or Quarkus using Maven.
+
+You can do changes to the source file and have Quarkus and Spring Boot reload the routes, just as `camel run --dev` can do,
+but uses the natural Spring Boot _dev-tools_ and Quarkus _dev mode_ functionality.
+
+There are several limitations, one would be that Spring Boot and Quarkus cannot automatically detect new components and download JARs.
+(you can stop and run again to update dependencies).
+
+When using Quarkus then you can only select the Quarkus version to run, that are locked to a specific Camel version.
+You can see the versions by `camel version list --runtime=quarkus`. On the other hand Spring Boot is more flexible
+where you can choose different Spring Boot and Camel versions (within reasonable range).
+
+For example:
+
+[source,bash]
+----
+camel run foo.camel.yaml --runtime=spring-boot --spring-boot-version=3.2.3 --camel-version=4.4.1
+----
+
+And for Quarkus:
+
+[source,bash]
+----
+camel run foo.camel.yaml --runtime=quarkus --quarkus-version=3.9.4
+----
+
+
 == Transforming message (data mapping)
 
 When integrating system you often need to transform messages from one system to another. Camel has rich set