Este contenido no está disponible en el idioma seleccionado.
Chapter 79. Velocity
Transform messages using a Velocity template.
79.1. What’s inside Copiar enlaceEnlace copiado en el portapapeles!
-
Velocity component, URI syntax:
velocity:resourceUri
Please refer to the above link for usage and configuration details.
79.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-velocity</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-velocity</artifactId>
</dependency>
79.3. Usage Copiar enlaceEnlace copiado en el portapapeles!
79.3.1. Custom body as domain object in the native mode Copiar enlaceEnlace copiado en el portapapeles!
When using a custom object as message body and referencing its properties in the template in the native mode, all the classes need to be registered for reflection (see the documentation).
Example:
@RegisterForReflection public interface CustomBody { }
@RegisterForReflection
public interface CustomBody {
}
79.4. allowContextMapAll option in native mode Copiar enlaceEnlace copiado en el portapapeles!
The allowContextMapAll
option is not supported in native mode as it requires reflective access to security sensitive camel core classes such as CamelContext
& Exchange
. This is considered a security risk and thus access to the feature is not provided by default.
79.5. Additional Camel Quarkus configuration Copiar enlaceEnlace copiado en el portapapeles!
This component typically loads Velocity templates from classpath. To make it work also in native mode, you need to explicitly embed the templates in the native executable by using the quarkus.native.resources.includes
property.
For instance, the route below would load the Velocity template from a classpath resource named template/simple.vm
:
from("direct:start").to("velocity://template/simple.vm");
from("direct:start").to("velocity://template/simple.vm");
To include this (an possibly other templates stored in .vm
files in the template
directory) in the native image, you would have to add something like the following to your application.properties
file:
quarkus.native.resources.includes = template/*.vm
quarkus.native.resources.includes = template/*.vm