КАК: файлы Apache Camel, Regex - PullRequest
       14

КАК: файлы Apache Camel, Regex

8 голосов
/ 01 марта 2012

Я экспериментирую с тем, чтобы заставить верблюда выполнять некоторые файловые операции и передавать их через брокера activeMQ. Я взял этот проект у парня, который недавно вышел из системы.*

он работает до точки, где проходит маршрут без каких-либо ошибок, но все равно не копирует файл в локальный файл.

Есть идеи?.

Ответы [ 4 ]

21 голосов
/ 01 марта 2012

Да, вам нужно использовать опцию include / exclude / filter, если вы хотите отфильтровать файлы по шаблонам.Параметр fileName предназначен для одного файла.

Так что в вашем случае удалите параметр fileName и замените его на include=.*2280.xsl.Имейте в виду, что включение основано на регулярных выражениях Java, поэтому мы используем точка-звезда для обозначения подстановочного знака.Подробнее здесь: http://camel.apache.org/file2. Компонент ftp наследует 99% параметров файлового компонента, поэтому я ссылаюсь на вики-страницу файла.

7 голосов
/ 14 ноября 2014

Используйте параметр include, который использует регулярное выражение Java:

include=.*2280\\.xsl

Пожалуйста, обратите внимание на \\ перед точкой .

В качестве альтернативы используйте antInclude:

antInclude=*2280.xsl
1 голос
/ 30 октября 2015

В реализации сопоставления имен используется следующий код:

if (ObjectHelper.isNotEmpty(endpoint.getInclude())) {
    if (!name.matches(endpoint.getInclude())) {
        return false;
    }
}

Таким образом, вы можете проверить, какое регулярное выражение вам следует использовать. В вашем случае, я думаю, .*2280\\.xsl - это то, что вы должны использовать.

1 голос
/ 01 марта 2012

Для такого рода фильтрации я рекомендую использовать GenericFileFilter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...