11. Apache Camel
● Muito
mais padrões
www.eaipatterns.com
camel.apache.org
12. Camel Twitter: a ideia inicial– Março 2009
http://blog.brunoborges.com.br/2009/03/leverage-eip-with-apache-camel-and.html
13. Camel Twitter: proposto para a ASF em
2009
● CAMEL-1520
● https://issues.apache.org/jira/browse/CAMEL-1520
● Apresentei no BarCamp da ApacheCon NA 2009
● Conversas com committers do Camel na
ApacheCon, me induziram a tentar fazer um
componente mais abrangente p/ outras redes
sociais
● Desafio: mesmo formato Endpoint URI e features
de diferentes Redes Sociais (“social data
providers”). Oferecer Facebook, Twitter, LinkedIn,
Foursquare, e (o já morto) Google Buzz
14. Camel Social: tentativa mal sucedida
● Iniciado en 2010
● Objetivo
● O objetivo do componente Camel Social era obter
dados sociais de diferentes redes de uma forma
padronizada para serem processados através de
uma rota do Apache Camel
● Problema
● Dados Sociais são difíceis de serem padronizados
● Apesar de o Spring Social fazer um bom trabalho,
não é uma API só para todas as redes
● http://code.google.com/p/camel-social
● Died in 2010
15. Camel Twitter: obrigado GitHub!
● Maio 2011 – Projeto reiniciado no GitHub
● http://github.com/brunoborges/camel-twitter
● Colaboração do Brett Meyer, o cara que finalizou o
serviço
● @brettemeyer
● Foco somente no Twitter
● Brett adicionou suporte também para a API de
Streaming do Twitter
● E muito mais
19. Camel Twitter
● Features
● Enviar e ler DMs
● Tuitar (óbvio!)
● Pesquisar
● REST ou Streaming
● Timeline
● Home
* a partir da versão 2.10.0
● Mentions
● Public
● Retweets for me
● User timeline
20. Camel Twitter
"jms:queue:tweetingQueue0" to """twitter://timeline/user?
Criar um consumerKey=[s]&
consumerSecret=[s]&
Status Update accessToken=[s]&
accessTokenSecret=[s]"""
"jms:queue:tweetingQueue1" to "twitter://timeline/user”
Ler uma "twitter://timeline/home?type=polling&delay=5" ==> {
Timeline to("log:homeTweets")
}
"direct:doSearch" to "twitter://search?keywords=TDC2012"
Fazer buscas
"direct:doSearch" ==> {
fixas ou setHeader("CamelTwitterKeywords", "TDC2012")
dinâmicas to("twitter://search")
}
21. Camel CDI
Java EE 6
* a partir da versão 2.10.0
22. Camel CDI
● Features
● Permite usar o contexto CDI para injeção de
dependências
● Não é mais necessário usar o Spring (exceto se
quiser usar o XML DSL)
● Não é mais necessário usar um módulo Web (WAR)
para inicializar o contexto do Camel (independente
se usa ou não, Spring)
● Inicialização com @Singleton @Startup
● Ainda em “beta”, apesar de estar no 2.10.0
23. Obrigado
Bruno Borges
bruno.borges@oracle.com
brunoborges.com
@brunoborges