Я спросил RedHat Team, кредит, эти парни великолепны!
Я знал, что мы должны реализовать как бины, но, мне нужен синтаксис, не мог найти в сети. так что вот оно ...
В общем, если вы войдете в оболочку karaf и выполните команду:
route-show
Вы получите представление XML (Весной, но близко к синтаксису плана) кода маршрута.
В этом случае он немного усложняется, потому что маршрут использует скомпилированные Predicate и Expresssion (dropNonCoordinatorViews и delayIfContextNotStarted), которые только что отображаютсякак экземпляры объектов (с символом @ для адреса).
Чтобы использовать эти скомпилированные предикаты / выражения в проекте, нам нужно создать их экземпляры как bean-компоненты и затем обратиться к ним.
Мыможно создать их экземпляры, используя статические методы в org.apache.camel.component.jgroups.JGroupsFilters и org.apache.camel.component.jgroups.JGroupsExpressions как фабричные методы, например:
<bean id="dropNonCoordinatorViews" class="org.apache.camel.component.jgroups.JGroupsFilters" factory-method="dropNonCoordinatorViews" scope="prototype"/>
<bean id="delayIfContextNotStarted" class="org.apache.camel.component.jgroups.JGroupsExpressions" factory-method="delayIfContextNotStarted" scope="prototype">
<argument value="5000"/>
</bean>
This gives us the dropNonCoordinatorViews Predicate and delayIfContextNotStarted Expression as beans we can use in the route:
We can use the Predicate as a method directly, like so:
<filter id="filterNonCoordinatorViews">
<method ref="dropNonCoordinatorViews"/>
And the Expression in a <ref> block, like so:
<delay id="delay1">
<ref>delayIfContextNotStarted</ref>