Este contenido no está disponible en el idioma seleccionado.
Chapter 17. Control Bus
Manage and monitor Camel routes.
17.1. What’s inside Copiar enlaceEnlace copiado en el portapapeles!
-
Control Bus component, URI syntax:
controlbus:command:language
Please refer to the above link for usage and configuration details.
17.2. Maven coordinates Copiar enlaceEnlace copiado en el portapapeles!
Create a new project with this extension on code.quarkus.redhat.com
Or add the coordinates to your existing project:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-controlbus</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-controlbus</artifactId>
</dependency>
17.3. Usage Copiar enlaceEnlace copiado en el portapapeles!
17.3.1. Statistics Copiar enlaceEnlace copiado en el portapapeles!
When using the stats
command endpoint, the camel-quarkus-management
extension must be added as a project dependency to enable JMX. Maven users will have to add the following to their pom.xml
:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-management</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-management</artifactId>
</dependency>
17.3.2. Languages Copiar enlaceEnlace copiado en el portapapeles!
The following languages are supported for use in the Control Bus extension in Camel Extensions for Quarkus:
17.3.2.1. Bean Copiar enlaceEnlace copiado en el portapapeles!
The Bean language can be used to invoke a method on a bean to control the state of routes. The org.apache.camel.quarkus:camel-quarkus-bean
extension must be added to the classpath. Maven users must add the following dependency to the POM:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-bean</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean</artifactId>
</dependency>
In native mode, the bean class must be annotated with @RegisterForReflection
.
17.3.2.2. Simple Copiar enlaceEnlace copiado en el portapapeles!
The Simple language can be used to control the state of routes. The following example uses a ProducerTemplate
to stop a route with the id foo
:
template.sendBody( "controlbus:language:simple", "${camelContext.getRouteController().stopRoute('foo')}" );
template.sendBody(
"controlbus:language:simple",
"${camelContext.getRouteController().stopRoute('foo')}"
);
To use the OGNL notation, the org.apache.camel.quarkus:camel-quarkus-bean
extension must be added as a dependency.
In native mode, the classes used in the OGNL notation must be registered for reflection. In the above code snippet, the org.apache.camel.spi.RouteController
class returned from camelContext.getRouteController()
must be registered. As this is a third-party class, it cannot be annotated with @RegisterForReflection
directly - instead you can annotate a different class and specifying the target classes to register. For example, the class defining the Camel routes could be annotated with @RegisterForReflection(targets = { org.apache.camel.spi.RouteController.class })
.
Alternatively, add the following line to your src/main/resources/application.properties
:
quarkus.camel.native.reflection.include-patterns = org.apache.camel.spi.RouteController
quarkus.camel.native.reflection.include-patterns = org.apache.camel.spi.RouteController
17.4. Camel Quarkus limitations Copiar enlaceEnlace copiado en el portapapeles!
17.4.1. Statistics Copiar enlaceEnlace copiado en el portapapeles!
The stats
action is not available in native mode as JMX is not supported on GraalVM. Therefore, attempting to build a native image with the camel-quarkus-management
extension on the classpath will result in a build failure.
This feature is not supported in Camel Extensions for Quarkus.