| // Do not edit directly! |
| // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page |
| = Freemarker |
| :linkattrs: |
| :cq-artifact-id: camel-quarkus-freemarker |
| :cq-native-supported: true |
| :cq-status: Stable |
| :cq-status-deprecation: Stable |
| :cq-description: Transform messages using FreeMarker templates. |
| :cq-deprecated: false |
| :cq-jvm-since: 1.1.0 |
| :cq-native-since: 1.8.0 |
| |
| [.badges] |
| [.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##1.8.0## |
| |
| Transform messages using FreeMarker templates. |
| |
| == What's inside |
| |
| * xref:{cq-camel-components}::freemarker-component.adoc[Freemarker component], URI syntax: `freemarker:resourceUri` |
| |
| Please refer to the above link for usage and configuration details. |
| |
| == Maven coordinates |
| |
| https://code.quarkus.io/?extension-search=camel-quarkus-freemarker[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-freemarker</artifactId> |
| </dependency> |
| ---- |
| |
| Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. |
| |
| == 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 |
| |
| == Quarkiverse Freemarker and its configuration |
| |
| Camel Quarkus Freemarker uses dev/index.html[Quarkiverse Freemarker] under the hood. |
| This means in particular, that the `freemarker.template.Configuration` bean produced by Quarkiverse Freemarker |
| is used by Camel Quarkus. |
| The bean can be configured via `quarkus.freemarker.*` properties |
| - check https://quarkiverse.github.io/quarkiverse-docs/quarkus-freemarker/dev/index.html[Freemarker Configuration Reference] |
| for more details. |
| |
| If you wish to use your custom `Configuration` bean instead of the default provided by Quarkiverse Freemarker, |
| you can let CDI to do the required wiring: |
| |
| [source,java] |
| ---- |
| import javax.enterprise.context.ApplicationScoped; |
| import javax.enterprise.inject.Produces; |
| import javax.inject.Named; |
| import freemarker.template.Configuration; |
| import io.quarkus.arc.Unremovable; |
| import org.apache.camel.builder.RouteBuilder; |
| |
| @ApplicationScoped |
| public class MyRoutes extends RouteBuilder { |
| |
| @Produces |
| @ApplicationScoped |
| @Unremovable |
| @Named("myFreemarkerConfig") |
| Configuration produceFreemarkerConfig() { |
| Configuration result = new Configuration(); |
| ... |
| return result; |
| } |
| |
| @Override |
| public void configure() { |
| from("direct:example") |
| .to("freemarker:templates/email.ftl?configuration=myFreemarkerConfig") |
| |
| } |
| } |
| ---- |
| |