JVM since0.4.0 Native since0.4.0
Read and write files.
File component, URI syntax:
Please refer to the above link for usage and configuration details.
Or add the coordinates to your existing project:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-file</artifactId> </dependency>
Check the User guide for more information about writing Camel Quarkus applications.
Additional Camel Quarkus configuration
Having only a single consumer in a cluster consuming from a given endpoint
When the same route is deployed on multiple JVMs, it could be interesting to use this extension in conjunction with the Master one. In such a setup, a single consumer will be active at a time across the whole camel master namespace.
For instance, having the route below deployed on multiple JVMs:
from("master:ns:timer:test?period=100").log("Timer invoked on a single JVM at a time");
It’s possible to enable the file cluster service with a property like below:
quarkus.camel.cluster.file.enabled = true quarkus.camel.cluster.file.root = target/cluster-folder-where-lock-file-will-be-held
As a result, a single consumer will be active across the
ns camel master namespace. It means that, at a given time, only a single timer will generate exchanges across all JVMs. In other words, messages will be logged every 100ms on a single JVM at a time.
The file cluster service could further be tuned by tweaking
Whether a File Lock Cluster Service should be automatically configured according to 'quarkus.camel.cluster.file.*' configurations.
| || |
The cluster service ID (defaults to null).
The root path (defaults to null).
The service lookup order/priority (defaults to 2147482647).
The time to wait before starting to try to acquire lock (defaults to 1000ms).
The time to wait between attempts to try to acquire lock (defaults to 10000ms).
The custom attributes associated to the service (defaults to empty map).
Configuration property fixed at build time. All other configuration properties are overridable at runtime.