Тест верблюда замените седу с прямой в оригинальном маршруте

Верблюжий тест, замени седу с прямой.

В моем тесте маршрута верблюда я хочу заменить вызов седы прямым, например

вместо "seda:Second_route_id" мой потребитель должен быть "direct:Second_route_id" для теста

Ниже мой оригинальный маршрут

from("direct:First_route_id").id("First_route_id")
.process() // bla bla
.multicast()
.to("Second_route_id");

---
from("seda:Second_route_id").id("Second_route_id")
.proces() // save data
.end()

я пытался сделать что-то вроде

    context.getRouteDefination("First_route_id").adviceWith(context, new AdviceWithoutRouteBuilder(){
    public void configure(){
// but it gave me error no consumer found for "direct: Second_route_id"
    weaveById("Second_route_id").before().to("direct: Second_route_id "); 
    }
    })

2 ответа

Решение

Существует replaceFromWith метод, который вы можете использовать для смены seda на direct при использовании совета.

replaceFromWith это один из возможных способов:

    camelContext.getRouteDefinition("Second_route_id").adviceWith(camelContext, new AdviceWithRouteBuilder() {

        @Override
        public void configure() throws Exception {
            replaceFromWith("direct:Second_route_id");
        }
    });
Другие вопросы по тегам