Как вы можете установить ProcessStrategy для конечной точки File или RemoteFile без использования реестра - PullRequest
0 голосов
/ 02 июля 2018

У меня есть класс Routebuilder с конечной точкой PollEnrich, который устанавливается через поле String. В routbuilder я хочу добавить пользовательский файл, FTP или SFTP ProcessStrategy к конечной точке без использования реестра, то есть путем добавления &processStrategy=#customProcessStrategyName к строковому URI. Это потребовало бы, чтобы вызывающий класс Routebuilder заранее настроил Стратегию, и я хочу сделать это в самом классе.

Было бы легко, если бы у меня была конечная точка в качестве объекта конечной точки, в этом случае я мог бы вызвать метод setProcessStrategy.

Как получить или создать объект Endpoint до того, как он будет использован в pollenrich или из него, использовать объект Endpoint для setProcessStrategy, а затем использовать только объект Endpoint в pollenrich или from вместо более обычной строки.

1 Ответ

0 голосов
/ 02 июля 2018

Вы можете получить конечную точку программно с помощью метода CamelContext#getEndpoint, который повторно использует или создает новую конечную точку.

См. CamelContext # getEndpoint javadoc

Разрешает данное имя для конечной точки указанного типа. Если имя имеет зарегистрированную конечную точку синглтона, то возвращается синглтон. В противном случае новая конечная точка создается и регистрируется в EndpointRegistry.

А затем используйте эту созданную конечную точку с .pollEnrich().constant(endpoint)

FileEndpoint fileEndpoint = getContext().getEndpoint("file://somewhere", FileEndpoint.class);
fileEndpoint.setProcessStrategy(new Something<>());
from("direct:input")
        .pollEnrich().constant(fileEndpoint)
        .to("log:output");

Использовать конечную точку в from () просто, как from(fileEndpoint), используя RouteBuilder # from (конечная точка)

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