Тест верблюда замените седу с прямой в оригинальном маршруте
Верблюжий тест, замени седу с прямой.
В моем тесте маршрута верблюда я хочу заменить вызов седы прямым, например
вместо "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");
}
});