DEV Community

Guilherme Manzano
Guilherme Manzano

Posted on

Framework Apache Camel

Neste artigo, irei fazer um breve recurso do framework Java chamado de Apache Camel e falarei sobre alguns dos métodos mais utilizados no desenvolvimento.

Alt Text

O Apache Camel é um framework que ajuda o desenvolvedor a lidar com a integração entre todos os formatos (xml, json, csv, http, SOAP, AMQP, SQL, Jax-RS, etc) utilizando boas práticas de integração. Basicamente, o apache Camel é um routing-engine (máquina de roteamento) e que utiliza uma linguagem de alto nível (Camel DSL). Vamos criar nosso primeiro projeto com o Camel, começando criando a classe principal:

Alt Text

O método from() indica de onde os arquivos estão saindo, com um intervalo de 5 segundos entre eles (delay = 5s). O método to() indica o local-alvo para onde os arquivos estão indo. O método log() exibe no console as mensagens do processo, baseados em seus ids. O métodos context.start() é o responsável por iniciar o processo do Camel. O método sleep() mantém o projeto "ligado" durante mais 20 segundos após a finalização da execução de todos os processos. E, por fim, o método context.stop() é o responsável por finalizar o processo do Camel, após executar todas as suas tarefas.

O método .marshal().xmljson() é utilizado para transformar um arquivo do tipo XML em um arquivo JSON. O método .setHeader("CamelFileName", constant("pedidos.json")) cria um novo arquivo com o nome de pedido, do tipo JSON, com as informações do arquivo. O método .filter().xpath("/pedido/itens/item/formato[text()='EBOOK']") irá filtrar informações de algum lugar e xpath é uma linguagem que se comunica com arquivos do tipo XML. O método .split() é utilizado para se dividir alguma informação. O método .log("{body}") mostra o conteúdo de alguma mensagem.

O método .setHeader(Exchange.HTTP_METHOD, HttpMethod.GET) está realizando uma requisição do tipo GET. O método .to("direct:http") é utilizado para melhorar a organização de rotas muito grandes, redirecionando o Camel para trechos específicos do código, conforme o exemplo:

Alt Text

O atributo mock:soap é utilizado para criar uma requisição de testes. O método multicast() vai pegar informações de uma rota e fazer um multicasting, espalhando as informações para as sub-rotas, conforme o exemplo:

Alt Text

O método .routeId("rota-pedidos") cria um nome para uma rota, facilitando a organização do código. O método .to("xlst:pedido-para-soap") converte um arquivo do tipo XML para XLS.

Oldest comments (0)