Apache Camel Context Удалить методы определения маршрута - PullRequest
0 голосов
/ 05 июля 2018

Как часть требований моего проекта, я проходил Apache Camel Docs для удаления Маршрутов из контекста верблюда перед его обновлением.

Здесь я запутался с removeRouteDefinition , который удаляет определение маршрута из CamelContext - остановка всех ранее запущенных маршрутов и removeRoute , stopRoute , который выполняет ту же работу как прежний.

В чем именно разница между этими методами?

Ответы [ 2 ]

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

Основное отличие состоит в том, что CamelContext#removeRouteDefinition изящно останавливает маршрут, а затем удаляет его из Context.

Метод CamelContext#removeRoute позволяет удалить только остановленный маршрут. Если вы попытаетесь удалить текущий маршрут, метод вернет false и ничего не произойдет.

Итак, эти два фрагмента являются эквивалентами:

removeRouteDefinition

getContext().removeRouteDefinition(getContext().getRouteDefinition("routeId"));

removeRoute

getContext().stopRoute("routeId");
getContext().removeRoute("routeId");
0 голосов
/ 05 июля 2018

Как видно из документации

void removeRouteDefinition(RouteDefinition routeDefinition)

принимает объект RouteDefinition в качестве аргумента. Где, как

boolean removeRoute(String routeId) throws Exception

принимает идентификатор маршрута.

Также еще одна важная вещь: removeRouteDefinition устарела.

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