Apache Camel – Tutorial para iniciantes

apache-camel-logo

Apache Camel é uma implementação open source dos famosos Enterprise Integration Patterns. Camel é um motor de Roteamento e Mediação que facilita o vida dos desenvolvedores na criação e mediação de regras em uma variedade imensa de linguagens (DSL) como Java, Spring/XML, Scala etc.

Neste tutorial pretendo explorar com um exemplo simples o funcionameto do Apache Camel, onde uma classe envia mensagens para uma fila ActiveMQ (origemQueue) e Camel as roteia para outra fila ActiveMQ (destinoQueue).

Rota

Resumidamente uma rota é a ligação entre dois endpoints e um processador.

Como escrever uma rota

Podemos escrever uma rota de duas formas:

  • Código Java (DSL Java) através de API fornecida por Camel
  • XML

Enviando mensagens para uma fila ActiveMQ


 import javax.jms.Connection;
 import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ProducerTeste {
public static void main(String[] args) throws Exception {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("failover:(tcp://localhost:61616)?timeout=1000");
Connection connection = factory.createConnection("admin", "admin");
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 connection.start();
 Queue queue = session.createQueue("origemQueue");
 MessageProducer producer = session.createProducer(queue);
for (int i = 0; i < 100000; i++) {
producer.send(session.createTextMessage(i + " message"));
 System.out.println("Sent message " + i);
 // Thread.sleep(1000);
 }
 producer.close(); session.close(); connection.close();
 }
 }

Roteamento das mensagens com Camel

 import javax.jms.ConnectionFactory;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.impl.DefaultCamelContext;
public final class CamelProducer {
public static void main(String args[]) throws Exception {
 CamelContext context = new DefaultCamelContext();
ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "failover:(tcp://localhost:61616)?timeout=1000");
context.addComponent("test-jms", JmsComponent.jmsComponentAutoAcknowledge(factory));
 context.addRoutes(new RouteBuilder() {
 public void configure() {
 from("test-jms:queue:origemQueue").to("test-jms:queue:destinoQueue");
 }
 });
ProducerTemplate template = context.createProducerTemplate();
 context.start();
 for (int i = 0; i < 1000000; i++) {
 template.sendBody("test-jms:queue:destinoQueue", "Test Message: " + i);
 System.out.println("Sent message " + i);
}
Thread.sleep(1000);
 context.stop();
 }
 }

Projeto

Download do projeto completo >>>aqui<<<


The Developer’s Conference 2008

Rails

Acontecerá nos dias 25 e 26 de julho (sexta e sábado) em São Paulo – SP no Centro Fecomércio de Eventos um dos maiores eventos Java do país, intitulado de The Developer’s Conference.
O evento é voltado para desenvolvedores, arquitetos e gestores, e contará com a presença de Ed Burns, que é um dos maiores especialistas de JavaServer Faces e Ajax do mundo, e de Reza Rahman membro do expert group de EBJ 3.1 e co-autor do livro “EJB3 in Action”.

Mais informações no site do evento.


Instalando o Java 6 no Ubuntu 8.04

Java 6

Neste post vou explicar resumidamente como instalar o Java 6 no Ubuntu 8.04.

Instalação automática:

A maneira menos dolorida é usando o apt-get:
sudo apt-get install sun-java6-jdk
Feito isso, o comando para ver se o kit foi realmente instalado em sua máquina é:
java -version
Algum coisa do tipo será mostrada:

sergio@pc:~$ java -version
java version “1.6.0_06”
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

Instalação manual:

1) Baixar o arquivo no site da SUN.

2) Dar permissão para a execução do arquivo baixado: chmod +x jdk-6u6-linux-i586.bin

3) Executar o arquivo: ./jdk-6u6-linux-i586.bin

4) Editar o arquivo /etc/profile. Para isso, abra o arquivo com seu editor preferido, e cole no final do arquivo os comandos:

JAVA_HOME=/opt/jdk1.6.0_06
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

Feito isso, reinicie a máquina e teste digitando no console o comando: java -version

Instalação do Plugin do Java 6 para o Firefox:

Depois de instalar o Java usando o apt-get ou manualmente, vou ensinar como criar um link para que o Firefox encontre o arquivo que dá o suporte Java para o browser:
ln -s /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/
Pronto.

Espero ter ajudado!