Я бы использовал конечную точку конечного пользователя.
Что-то вроде этого:
file:c:/foldername?delay=5000
Это будет сканировать папку, каждые 5 секунд для файлов и для каждого файла отправить сообщение на маршруте.
Возможно, вам потребуется сохранить предыдущие временные файлы где-нибудь, например текстовый файл или базу данных, а затем сравнить измененную переменную, переданную в сообщении, с измененной, сохраненной в базе данных или файле.
Грубый пример этого будет выглядеть следующим образом:
<route id="CheckFileRoute">
<from uri="file:d:/RMSInbox?delay=5000&readLock=changed/>
<log message="${ file:modified }/>
<bean ref="CompareDates"/>
</route>
Файл потребитель будет разместить много информации относительно файла в заголовке, такие как дата изменения. Перейти прочитать по этой ссылке для получения более подробной информации о переменных в заголовке http://camel.apache.org/file2.html
Сравнения даты боб будет Java класс, который действует как процессор, который будет иметь структуру, как это:
public class CompareDates {
@Handler
public void CheckDates
(
@Body Object msgbody
, @Headers Map hdr
)
{
Date newDate = (Date)hdr.get("CamelFileLastModified");
Date oldDate = readfromfileorDatabase
if(newDate>oldDate)
{
//the date has changed look busy
}
}
Надежда это получает вас собирается.