File Watch

Get notified about file events in a directory using java.nio.file.WatchService.

What’s inside

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

Maven coordinates

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-file-watch-starter</artifactId>
</dependency>

Spring Boot Auto-Configuration

The starter supports 8 options, which are listed below.

Name Description Default Type

camel.component.file-watch.autowired-enabled

Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.

true

Boolean

camel.component.file-watch.bridge-error-handler

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

Boolean

camel.component.file-watch.concurrent-consumers

The number of concurrent consumers. Increase this value, if your route is slow to prevent buffering in queue.

1

Integer

camel.component.file-watch.enabled

Whether to enable auto configuration of the file-watch component. This is enabled by default.

Boolean

camel.component.file-watch.file-hasher

Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple modifications per second per file, use #lastModifiedTimeFileHasher. You can also provide custom implementation in registry. The option is a io.methvin.watcher.hashing.FileHasher type.

FileHasher

camel.component.file-watch.poll-threads

The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log.

1

Integer

camel.component.file-watch.queue-size

Maximum size of queue between WatchService and consumer. Unbounded by default.

2147483647

Integer

camel.component.file-watch.use-file-hashing

Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target platform.

true

Boolean