如何查找路线的所有端点(Apache Camel,Java)

Sit*_*tem 2 java apache-camel

我在 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();
Run Code Online (Sandbox Code Playgroud)

在停止之前,我需要获取 myRoute1 创建的所有端点???例如:

1.file://data/outbox 2.mock://someway 3.http: //website.com/file.txt 4.file://data/inbox?noop=true

我只能获取 Camel 上下文的所有端点: context.getEndpoints()

Cla*_*sen 5

端点不与单个路由关联,因为它可以在多个路由之间重用。所以你无法真正从端点本身找出答案。但是您可以做的是在添加路由之前将所有端点存储在本地列表中,然后再次获取所有端点,然后比较这两个端点列表。然后,所有新端点都由新路由添加。

  • 哇!克劳斯!谢谢你的回答!我想过这个问题。你的书太棒了!谢谢你! (2认同)