File

JVM since0.4.0 Native since0.4.0

Read and write files.

What’s inside

Please refer to the above link for usage and configuration details.

Maven coordinates

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 quarkus.camel.cluster.file.* properties.

Configuration property Type Default

quarkus.camel.cluster.file.enabled

Whether a File Lock Cluster Service should be automatically configured according to 'quarkus.camel.cluster.file.*' configurations.

boolean

false

quarkus.camel.cluster.file.id

The cluster service ID (defaults to null).

string

quarkus.camel.cluster.file.root

The root path (defaults to null).

string

quarkus.camel.cluster.file.order

The service lookup order/priority (defaults to 2147482647).

java.lang.Integer

quarkus.camel.cluster.file.acquire-lock-delay

The time to wait before starting to try to acquire lock (defaults to 1000ms).

string

quarkus.camel.cluster.file.acquire-lock-interval

The time to wait between attempts to try to acquire lock (defaults to 10000ms).

string

quarkus.camel.cluster.file.attributes

The custom attributes associated to the service (defaults to empty map).

Map<String,String>

Configuration property fixed at build time. All other configuration properties are overridable at runtime.