Как найти все конечные точки маршрута (Apache Camel, Java) - PullRequest
0 голосов
/ 24 августа 2018

У меня есть несколько маршрутов и много конечных точек в контексте Camel. Поэтому необходимо получить все конечные точки, созданные одним маршрутом:

    CamelContext context = new DefaultCamelContext();
    RouteBuilder route1 = new RouteBuilder() {
        public void configure() {
            from("file:data/inbox?noop=true")
                    .routeId("myRoute1")
                    .enrich("http://website.com/file.txt")
                    .to("file:data/outbox")
                    .to("mock:someway");
        }
    };

    RouteBuilder route2 = new RouteBuilder() {
        public void configure() {
            from("file:data/outbox?noop=true")
                    .routeId("myRoute2")
                    .to("mock:myMom");
        }
    };

    context.addRoutes(route1);
    context.addRoutes(route2);

    context.start();

    // TODO 

    context.stop();

А перед остановкой мне нужно получить все конечные точки, созданные myRoute1 ??? например:

1.file: // данные / исходящие 2.mock: // некоторым образом 3. http://website.com/file.txt 4.file: // data / inbox? Noop = true

Я могу получить только все конечные точки контекста Camel как: context.getEndpoints ()

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вы можете попробовать следующее:

  1. Дайте вашему маршруту идентификатор маршрута, чтобы позже его можно было идентифицировать.
  2. Получите RouteDefinition из маршрута из CamelContext и отфильтруйте список выходов для объектов ToDefinition.

     List<ProcessorDefinition> outputProcessorDefs = exchange.getContext().getRouteDefinition("[routeId]").getOutputs();
     // Iterate and get all ProcessorDefinition objects which inherit from the ToDefinition
    
0 голосов
/ 24 августа 2018

Конечная точка не связана с одним маршрутом, так как она может быть повторно использована для нескольких маршрутов.Таким образом, вы не можете действительно узнать с самой конечной точкиНо вы можете сохранить все конечные точки в локальном списке, прежде чем добавить маршрут, а затем снова получить все конечные точки, а затем diff эти 2 списка конечных точек.все новые конечные точки были добавлены новым маршрутом.

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