Потребитель файла Camel, когда папка недоступна - PullRequest
0 голосов
/ 30 апреля 2019

Hy all,

при использовании потребителя файла в папке, к которой у верблюжьего контекста нет доступа (например, с использованием chmod a-rwx test/locked), контекст запускается как обычно (даже не предупреждения), но также не получает никаких файлов в папке (ну как это надо).

Есть ли способ заставить файловый компонент выдавать ошибку при запуске (или, по крайней мере, при опросе папки), когда он не может получить доступ к папке?

В противном случае мне придется проверять его с помощью ручного кода Java перед настройкой маршрута, которого я хотел бы избежать.

Спасибо и приветствуем
Chris

Ответы [ 2 ]

1 голос
/ 01 мая 2019

В противном случае мне придется проверить его с помощью ручного кода Java перед настройкой маршрута, которого я хотел бы избежать.

Вы можете использовать PollingConsumerPollStrategy с конечной точкой, чтобы проверить,путь имеет проблемы с доступом, а затем вызвать ошибку

public class FileAccessPollingConsumerPollStrategy extends DefaultPollingConsumerPollStrategy{
   public boolean begin(Consumer consumer, Endpoint endpoint) {

File pollingDirectory = ((FileEndpoint) endpoint).getFile();

//check your access with poillingDirectory and raise any error.

        return true;
    }
}

Затем настройте конечную точку верблюда - from("file://inbox/?pollStrategy=#fileAccessPollingConsumerPollStrategy")

0 голосов
/ 06 мая 2019

Я решил выполнить следующий код перед настройкой маршрута и тем самым убедиться, что к нему можно получить доступ:

Path path = Paths.get(folderPath);
// The only case we do not allow is when the folder exists and is not readable
boolean canAccess = !Files.exists(path) || Files.isReadable(path);
if (!canAccess) {
  throw new IllegalArgumentException("Could not initialize route, because folder \""
      + baseFolder + "\" can not be accessed. This might happen when it does not exist "
      + "or there are no read permission for the current user");
}

Я также создал проблему в apache jira, чтобы добавить эту функцию в будущем:
https://issues.apache.org/jira/browse/CAMEL-13483

Спасибо всем за предложения
Chris

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