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 d8a6eb5a9e8 Create group.adoc (#19000)
d8a6eb5a9e8 is described below
commit d8a6eb5a9e8f715c2f99391d18937603986a8476
Author: Raymond Meester <[email protected]>
AuthorDate: Wed Aug 27 11:40:07 2025 +0200
Create group.adoc (#19000)
* Create group.adoc
Camel 4.14.0 enhanced the Core API and MBean to allow more actions by
group. This adds the documentation to the user manual.
* Update and rename group.adoc to route-group.adoc
* Update route-group.adoc
* Update nav.adoc
---
docs/user-manual/modules/ROOT/nav.adoc | 1 +
.../modules/ROOT/pages/route-group.adoc | 126 +++++++++++++++++++++
2 files changed, 127 insertions(+)
diff --git a/docs/user-manual/modules/ROOT/nav.adoc
b/docs/user-manual/modules/ROOT/nav.adoc
index 4fa8c1b0964..ba1f60db286 100644
--- a/docs/user-manual/modules/ROOT/nav.adoc
+++ b/docs/user-manual/modules/ROOT/nav.adoc
@@ -81,6 +81,7 @@
** xref:route-controller.adoc[RouteController]
** xref:route-policy.adoc[RoutePolicy]
** xref:route-configuration.adoc[RouteConfiguration]
+** xref:route-group.adoc[RouteGroup]
** xref:context-reload.adoc[ContextReload]
** xref:route-reload.adoc[RouteReload]
** xref:route-template.adoc[RouteTemplate]
diff --git a/docs/user-manual/modules/ROOT/pages/route-group.adoc
b/docs/user-manual/modules/ROOT/pages/route-group.adoc
new file mode 100644
index 00000000000..d92a71bc7ba
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/route-group.adoc
@@ -0,0 +1,126 @@
+= Route Group
+
+A group is an identifier for multiple routes that belong together. For
example, an order integration that consists of 2 different routes can be
identified by the group name "order". A route group can either be used purely
as a label, or to perform tasks or monitor a whole group at once.
+
+== Examples
+
+In the route below, we use the group name to identify two routes:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("activemq:queue:order.in")
+ .routeId("validate")
+ .group("order")
+ .to("bean:orderServer?method=validate")
+ .to("direct:processOrder");
+
+from("direct:processOrder")
+ .routeId("process")
+ .group("order")
+ .to("bean:orderService?method=process")
+ .to("activemq:queue:order.out");
+----
+
+XML::
++
+[source,xml]
+----
+<route id="validate" group="order">
+ <from uri="activemq:queue:order.in"/>
+ <to uri="bean:orderService?method=validate"/>
+ <to uri="direct:processOrder"/>
+</route>
+
+<route id="process" group="order">
+ <from uri="direct:processOrder"/>
+ <to uri="bean:orderService?method=process"/>
+ <to uri="activemq:queue:order.out"/>
+</route>
+----
+====
+
+== Creating a route from a route template
+
+It's also possible to call a route template and add the created route to a
group.
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+templatedRoute("myTemplate")
+ .group("greetings")
+ .parameter("name", "one")
+ .parameter("greeting", "Hello");
+templatedRoute("myTemplate")
+ .group("greetings")
+ .parameter("name", "two")
+ .parameter("greeting", "Bonjour")
+ .parameter("myPeriod", "5s");
+----
+
+XML::
++
+[source,xml]
+----
+<templatedRoutes xmlns="http://camel.apache.org/schema/spring">
+ <templatedRoute routeTemplateRef="myTemplate" group="greetings">
+ <parameter name="name" value="one"/>
+ <parameter name="greeting" value="Hello"/>
+ </templatedRoute>
+ <templatedRoute routeTemplateRef="myTemplate" group="greetings">
+ <parameter name="name" value="two"/>
+ <parameter name="greeting" value="Bonjour"/>
+ <parameter name="myPeriod" value="5s"/>
+ </templatedRoute>
+</templatedRoutes>
+----
+====
+
+== Performing Tasks
+
+The camel API allows to retrieve all routes of a group and then perform
various tasks.
+
+Here is an example to suspend all routes of a group:
+
+```java
+List<Route> routes = context.getRoutesByGroup("order");
+
+for (Route route : routes) {
+ System.out.println("Suspend routeId=" + route.getId() + " for group=" +
route.getGroup());
+ route.getRouteController().suspendRoute(route.getId());
+}
+```
+
+
+== Monitoring
+
+Camel has optional support for xref:jmx.adoc[JMX management]. This includes
management of groups.
+
+To get all failed changes for a group:
+
+```java
+ManagedCamelContext managedContext =
context.getCamelContextExtension().getContextPlugin(ManagedCamelContext.class);
+ManagedRouteGroupMBean managedRouteGroup =
managedContext.getManagedRouteGroup("order");
+
+if(managedRouteGroup!=null){
+ System.out.println("Group order has " +
managedRouteGroup.getExchangesFailed() + " failed exchanges");
+}
+```
+
+To get all failed changes for every route in a group:
+
+```java
+ManagedCamelContext managedContext =
context.getCamelContextExtension().getContextPlugin(ManagedCamelContext.class);
+
+List<ManagedRouteMBean> routes =
managedContext.getManagedRoutesByGroup(flowId);
+
+for (ManagedRouteMBean route : routes) {
+ System.out.println("RouteId=" + route.getRouteId() + " has " +
route.getExchangesFailed() + " failed exchanges");
+}
+```