Este conteúdo não está disponível no idioma selecionado.
Chapter 17. Control Bus
Manage and monitor Camel routes.
17.1. What’s inside Copiar o linkLink copiado para a área de transferência!
-
Control Bus component, URI syntax:
controlbus:command:language
Please refer to the above link for usage and configuration details.
17.2. Maven coordinates Copiar o linkLink copiado para a área de transferência!
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 o linkLink copiado para a área de transferência!
17.3.1. Statistics Copiar o linkLink copiado para a área de transferência!
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 o linkLink copiado para a área de transferência!
The following languages are supported for use in the Control Bus extension in Camel Extensions for Quarkus:
17.3.2.1. Bean Copiar o linkLink copiado para a área de transferência!
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 o linkLink copiado para a área de transferência!
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 o linkLink copiado para a área de transferência!
17.4.1. Statistics Copiar o linkLink copiado para a área de transferência!
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.