Apache Camel - Endpoints

Aprendemos como os terminais se parecem em nosso código de integração. As expressões que usamos até agora, comofile:/order, jms:orderQueue, direct:distributeOrderDSLsão os pontos finais. Como você pode ver, eles seguem os formatos de especificação de URI. Ao avaliar este URI, oCamelContext cria o Endpointinstância; você não precisa se preocupar em instanciarEndpoint implementação em seu DSL.

Pegando nossos exemplos anteriores, você especifica endpoints em Java DSL como aqui -

from ("file:/order").to("jms:orderQueue");

E na primavera como aqui -

<route>
   <from uri = "file:/order"/>
   <to uri = "jms:orderQueue"/>
</route>

Em ambos os casos, o ponto final é uma string constante. Em certos casos, você pode querer construir esta string em tempo de execução. Você pode fazer isso usando JavaStringmétodos do formatador. Camel fornece outra abordagem mais simples para criar essas strings URI em tempo de execução. Para isso, a Camel fornecefromF e toFmétodos que aceitam os argumentos com os parâmetros especificados pelo usuário. A seguinte declaração ilustra o uso detoF método -

from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);

Por causa desses métodos, a necessidade de usar o Java integrado String métodos do formatador são evitados.

Camel usa a linguagem simples por padrão para calcular a expressão do terminal. oSimple linguagem foi projetada principalmente para avaliar Expressions e Predicatessem se preocupar muito com as complexidades de XPath. Para avaliar predicados, você pode combinar outra linguagem, comoxpath com o padrão Simplelíngua. Isso é feito usando o sinal de mais para separar o outro idioma. O snippet de código aqui mostra como concatenarxpath string para a expressão escrita em Simple.

from("direct:start")
.toD("jms:${orderQueue}+language:xpath:/order/@id");

No Spring, você pode conseguir o mesmo que aqui -

<route>
   <from uri = "direct:start"/>
   <toD uri = "jms:${orderQueue}+language:xpath:/order/@id"/>
</route>

Você pode concatenar quantos idiomas quiser, cada um separado por um sinal de mais do anterior. A lista de idiomas suportados pode ser encontrada aqui .