| // Do not edit directly! |
| // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page |
| = Velocity |
| :linkattrs: |
| :cq-artifact-id: camel-quarkus-velocity |
| :cq-native-supported: true |
| :cq-status: Stable |
| :cq-status-deprecation: Stable |
| :cq-description: Transform messages using a Velocity template. |
| :cq-deprecated: false |
| :cq-jvm-since: 1.1.0 |
| :cq-native-since: 1.2.0 |
| |
| [.badges] |
| [.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##1.2.0## |
| |
| Transform messages using a Velocity template. |
| |
| == What's inside |
| |
| * xref:{cq-camel-components}::velocity-component.adoc[Velocity component], URI syntax: `velocity:resourceUri` |
| |
| Please refer to the above link for usage and configuration details. |
| |
| == Maven coordinates |
| |
| https://code.quarkus.io/?extension-search=camel-quarkus-velocity[Create a new project with this extension on code.quarkus.io, window="_blank"] |
| |
| Or add the coordinates to your existing project: |
| |
| [source,xml] |
| ---- |
| <dependency> |
| <groupId>org.apache.camel.quarkus</groupId> |
| <artifactId>camel-quarkus-velocity</artifactId> |
| </dependency> |
| ---- |
| |
| Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. |
| |
| == Usage |
| |
| === Custom body as domain object in the native mode |
| |
| 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 https://quarkus.io/guides/writing-native-applications-tips#register-reflection[documentation]). |
| |
| |
| Example: |
| [source,java] |
| ---- |
| @RegisterForReflection |
| public interface CustomBody { |
| } |
| ---- |
| |
| |
| == allowContextMapAll option in native mode |
| |
| 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. |
| |
| == Additional Camel Quarkus configuration |
| |
| 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`: |
| |
| [source,java] |
| ---- |
| 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: |
| |
| [source,properties] |
| ---- |
| quarkus.native.resources.includes = template/*.vm |
| ---- |
| |
| More information about selecting resources for inclusion in the native executable can be found at xref:user-guide/native-mode.adoc#embedding-resource-in-native-executable[Embedding resource in native executable]. |
| |