Apache camel community day - october 2010

1,841 views
1,736 views

Published on

Presentation I gave at the Fuse Community Day in Paris on October 2010

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,841
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
77
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Apache camel community day - october 2010

  1. 1. Apache  Camel Claus Ibsen Principal Software Engineer, FuseSource October 2010 A  Progress  So3ware  Company 1 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 1
  2. 2. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 2 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 2
  3. 3. Who  is  Claus  Ibsen?  Principal  SoEware  Engineer  at  FuseSource • Full  Ime  Apache  Camel  hacker  Apache  Camel  commi<er  for  2.5  years • Almost  3  years  working  with  Camel  Co-­‐author  of  Camel  in  AcIon  book • Available  in  late  2010  Contact • claus.ibsen@fusesource.com • h<p://davsclaus.blogspot.com • h<p://twi<er.com/davsclaus http:// www.manning.com/ ibsen 3 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 3
  4. 4. Why  the  name  Camel? Camel is easy to remember and type 4 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 4
  5. 5. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example    The  Camel  Community  Q  and  A 5 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 5
  6. 6. The  birth  of  Apache  Camel • Camel’s  parents 6 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 6
  7. 7. The  birth  of  Apache  Camel  IniIal  Commit  Log r519901  |  jstrachan  |  2007-­‐03-­‐19  11:54:57  +0100 (Mon,  19  Mar  2007)  |  1  line IniGal  checkin  of  Camel  rouGng  library  Apache  Camel  1.0  released  June  2007  Apache  Camel  is  3  years  old 7 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 7
  8. 8. The  birth  of  Apache  Camel  My  iniIal  commit r640963  |  davsclaus  |  2008-­‐03-­‐25  21:07:10  +0100 (Tue,  25  Mar  2008)  |  1  line Added  unit  test  for  mistyped  URI 8 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 8
  9. 9. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 9 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 9
  10. 10. What  is  Apache  Camel  Quote  from  the  web  site  -­‐  h<p://camel.apache.org Apache  Camel  is  a powerful  Open  Source Integra8on  Framework based  on  known Enterprise  Integra8on  Pa?erns 10 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 10
  11. 11. What  is  Apache  Camel  Why  do  we  need  integraIon? • Your  apps  are  build  using  different  tech  stacks • CriIcal  for  your  business  to  integrate  Why  IntegraIon  Framework? • Framework  do  the  heavy  liEing • Focus  on  business  problem • Not  "reinvenIng  the  wheel" 11 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 11
  12. 12. What  is  Apache  Camel  What  is  Enterprise  IntegraIon  Pa<erns? 12 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 12
  13. 13. What  is  Apache  Camel  What  are  Enterprise  IntegraIon  Pa<erns? 13 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 13
  14. 14. What  is  Apache  Camel  What  is  Enterprise  IntegraIon  Pa<erns? Its a book 14 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 14
  15. 15. What  is  Apache  Camel  Lets  look  at  one  of  the  pa<erns 15 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 15
  16. 16. What  is  Apache  Camel  Use  Case ActiveMQ WebSphereMQ 16 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 16
  17. 17. What  is  Apache  Camel  Filter  Pa<ern 17 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 17
  18. 18. What  is  Apache  Camel  Filter  Pa<ern from filter send to A message B 18 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 18
  19. 19. What  is  Apache  Camel  Filter  Pa<ern from(A) filter(predicate) to(B) 19 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 19
  20. 20. What  is  Apache  Camel  Filter  Pa<ern from(A) .filter(isWidget) .to(B) 20 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 20
  21. 21. What  is  Apache  Camel  Filter  Route from(A).filter(isWidget).to(B); 21 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 21
  22. 22. What  is  Apache  Camel  Filter  Route isWidget = xpath(“/quote/product = ‘widget’”); from(A).filter(isWidget).to(B); 22 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 22
  23. 23. What  is  Apache  Camel  Filter  Route Endpoint A = endpoint(“activemq:queue:quote”); Endpoint B = endpoint(“mq:quote”); Predicate isWidget = xpath(“/quote/product = ‘widget’”); from(A).filter(isWidget).to(B); 23 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 23
  24. 24. What  is  Apache  Camel  Filter  Route  -­‐  Java  DSL public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } 24 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 24
  25. 25. What  is  Apache  Camel  Filter  Route  -­‐  Java  DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } } 25 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 25
  26. 26. What  is  Apache  Camel  Filter  Route  -­‐  Java  DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:queue:quote") .filter().xpath("/quote/product =‘widget’") .to("mq:quote"); } } 26 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 26
  27. 27. What  is  Apache  Camel  IDE  Tooling Code Assistance JavaDoc 27 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 27
  28. 28. What  is  Apache  Camel  IDE  Tooling Code Assistance 28 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 28
  29. 29. What  is  Apache  Camel  Lets  look  at  the  most  famous  pa<ern 29 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 29
  30. 30. What  is  Apache  Camel  Content  Based  Router 30 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 30
  31. 31. What  is  Apache  Camel  Content  Based  Router  -­‐  Spring  XML <camelContext> <route> <from uri="activemq:NewOrders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:Orders.Widgets"/> </when> <otherwise> <to uri="activemq:Orders.Gadgets"/> </otherwise> </choice> </route> </camelContext> 31 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 31
  32. 32. What  is  Apache  Camel  Content  Based  Router  -­‐  Java  DSL from("activemq:NewOrders") .choice() .when().xpath(“/order/product = 'widget'”) .to(“activemq:Orders.Widget”) .otherwise() .to(“acitvemq:Orders.Gadget”); 32 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 32
  33. 33. What  is  Apache  Camel  Summary • Camel  is  an  integraIon  framework • Based  on  Enterprise  IntegraIon  Pa<erns • RouIng  and  mediaIon • Easy  to  use  DSL  to  define  routes • No  heavy  specificaIon • No  container  dependency • Payload  agnosIc • ConnecIvity  to  a  great  wealth  of  transports • Apache  licensed 33 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 33
  34. 34. What  is  Apache  Camel  Mission  Statement Making  integra8on  easier  and   more  accessible  to  developers 34 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 34
  35. 35. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  liSle  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 35 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 35
  36. 36. A  li<le  example  Based  on  community  user  (Gunnar  Hillert) • hCp://hillert.blogspot.com/2009/09/camellos-­‐discovering-­‐apache-­‐camel-­‐ii.html  Goals • 1)  Pickup  files  from  a  directory • 2)  Make  sure  we  only  pickup  3  files  per  30  seconds • 3)  Store  into  JMS  queue • 4)  Listen  on  JMS  queue • 5)  And  upload  file  to  FTP  server 36 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 36
  37. 37. A  li<le  example  Goals  using  Enterprise  IntegraIon  Pa<erns 1 2 3 4 5  Goals • 1)  Pickup  files  from  a  directory • 2)  Make  sure  we  only  pickup  3  files  per  30  seconds • 3)  Store  into  JMS  queue • 4)  Listen  on  JMS  queue • 5)  And  upload  file  to  FTP  server 37 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 37
  38. 38. A  li<le  example  Goals  using  Enterprise  IntegraIon  Pa<erns from throttle to from to  Goals • 1)  Pickup  files  from  a  directory • 2)  Make  sure  we  only  pickup  3  files  per  30  seconds • 3)  Store  into  JMS  queue • 4)  Listen  on  JMS  queue • 5)  And  upload  file  to  FTP  server 38 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 38
  39. 39. A  li<le  example  Camel  DSL  in  XML <camelContext> <route> <from uri="file:camellos/inbox?move=.done"/> <throttle maximumRequestsPerPeriod="3” timePeriodMillis="30000”> <to uri="activemq:queue:camellos"/> </throttle> </route> <route> <from uri="activemq:queue:camellos"/> <to uri="ftp://admin:secret@localhost:3333"/> </route> </camelContext> 39 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 39
  40. 40. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 40 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 40
  41. 41. Whats  included  in  the  box?  Highlights  of  whats  included  in  Camel 41 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 41
  42. 42. Whats  included  in  the  box?  50+  Enterprise  IntegraIon  Pa<erns http://camel.apache.org/enterprise-integration-patterns.html 42 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 42
  43. 43. Whats  included  in  the  box?  70+  Components   activemq crypto flatpack irc ldap activemq-journal cxf freemarker javaspace mail/imap/pop3 amqp cxfrs ftp/ftps/sftp jbi mina atom dataset gae jcr mock bean direct hdfs jdbc msv bean validation esper hibernate jetty nagios browse event hl7 jms netty cache exec http jpa nmr cometd file ibatis jt/400 printer http://camel.apache.org/components.html 43 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 43
  44. 44. Whats  included  in  the  box?  70+  Components   properties scalate stream xslt quartz seda string-template ejb quickfix servlet test jasypt ref smooks timer sip restlet smpp validation db4o rmi snmp velocity language rnc spring-integration vm rng spring-security xmpp rss sql xquery http://camel.apache.org/components.html 44 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 44
  45. 45. Whats  included  in  the  box?  18  Data  Formats   bindy protobuf castor serialization csv soap crypto tidy markup flatpack xml beans gzip xml security hl7 xstream jaxb zip json dozer http://camel.apache.org/data-format.html 45 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 45
  46. 46. Whats  included  in  the  box?  Data  Format from("activemq:QueueWithJavaObjects”) .marshal().jaxb() .to("mq:QueueWithXmlMessages"); 46 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 46
  47. 47. Whats  included  in  the  box?  Predicates  &  Expressions BeanShell PHP EL Python Groovy Ruby JavaScript Simple JSR 223 SQL OGNL XPath MVEL XQuery http://camel.apache.org/languages.html 47 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 47
  48. 48. Whats  included  in  the  box?  DSL  in  3  programming  languages Java XML from(A).filter(isWidget).to(B); <route> <from ref="A"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to ref="B"/> </filter> </route> from(A) filter(isWidget) --> B Scala 48 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 48
  49. 49. Whats  included  in  the  box?  Type  Converters INFO DefaultTypeConverter - Loaded 148 type converters 49 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 49
  50. 50. Whats  included  in  the  box?  Custom  Type  Converters @Converter public class MyTypeConverter { @Converter public String toString(MyOrder order) { StringBuilder sb = new StringBuilder(); ... return sb.toString(); } } # META-INF/services/org/apache/camel/TypeConverter com.acme.converters META-INF file in the JAR 50 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 50
  51. 51. Whats  included  in  the  box?  Powerful  bean  integraIon • Adapt  to  your  beans • EIP  as  @annotaIons – @Produce – @Consume – @RecipientList – @Rou6ngSlip – @DynamicRouter 51 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 51
  52. 52. Whats  included  in  the  box?  Bean  as  Message  Translator 52 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 52
  53. 53. Whats  included  in  the  box?  Bean  as  Message  Translator from("activemq:Incoming”). beanRef("myBeanName”, “someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 53 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 53
  54. 54. Whats  included  in  the  box?  Bean  Parameter  Binding public class Foo { public String processOrder( String orderAsXml, @XPath(”/order/@id”) String oid, @Header(”JMSCorrelationID”) String cid) { ... } } 54 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 54
  55. 55. Whats  included  in  the  box?  Sending  message public class Foo { @Produce(uri="activemq:foo.bar") ProducerTemplate producer; public void doSomething() { if (whatever) { producer.sendBody("<hello>world!</hello>"); } } } 55 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 55
  56. 56. Whats  included  in  the  box?  Receiving  message public class Foo { @Consume(uri="activemq:cheese") public void onCheese(String name) { ... } } 56 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 56
  57. 57. Whats  included  in  the  box?  Test  Kit • camel-­‐test.jar • JUnit  based  (3.x  and  4.x) • Supports  Spring • Easy  to  test • Quick  prototyping 57 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 57
  58. 58. Whats  included  in  the  box? extend CamelTestSupport  Test  Kit  from  IDE Right Click -> Run Debug Inline RouteBuilder 58 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 58
  59. 59. Whats  included  in  the  box?  Managed • JMX  API • REST  API 59 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 59
  60. 60. Whats  included  in  the  box?  Web  Console • REST  API 60 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 60
  61. 61. Whats  included  in  the  box?  FuseSource  Rider 61 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 61
  62. 62. Whats  included  in  the  box?  Summary • 50+  EIP  pa<erns • 70+  ConnecIvity  components • 18+  Data  formats • 14+  Languages • DSL  in  mulIple  flavors  (Java,  XML,  Scala,  Groovy) • AutomaIc  type  conversion • Strong  bean  support • Test  Kit • Management  (JMX,  REST) • Web  console 62 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 62
  63. 63. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 63 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 63
  64. 64. Running  Camel  Riding  the  Camel 64 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 64
  65. 65. Running  Camel  Lightweight  and  embeddable  Known  Deployment  OpIons • Standalone  Java  ApplicaIon • Web  ApplicaIon Known Containers • J2EE  ApplicaIon Apache ServiceMix • JBI Apache ActiveMQ Apache Tomcat • OSGi Jetty • Google  App  Engine JBoss IBM WebSphere • Java  Web  Start BEA WebLogic • Spring  ApplicaIon Oracle OC4j GAE ... others 65 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 65
  66. 66. Running  Camel  Java  ApplicaIon CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start();  Spring  ApplicaIon <camelContext> <package>com.acme</package> </camelContext> 66 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 66
  67. 67. Running  Camel !"#$%&"'%()*+,!-%./01"2+%34"5#04%63 OSGi  -­‐  FUSE  ESB  56 67 !"#$$%"&'()'*++",(-./0'*"1('2('0.3(4Progress  So3ware  Company A   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   67
  68. 68. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 68 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 68
  69. 69. Another  Example  Rider  Auto  Parts  Example  by  Jonathan  Anstey http://architects.dzone.com/articles/apache-camel-integration 69 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 69
  70. 70. Another  Example  Rider  Auto  Parts  Example  -­‐  3  Routes 1 70 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 70
  71. 71. Another  Example  Rider  Auto  Parts  Example  -­‐  3  Routes 1 2 71 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 71
  72. 72. Another  Example  Rider  Auto  Parts  Example  -­‐  3  Routes 1 3 2 72 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 72
  73. 73. Another  Example  Rider  Auto  Parts  Example  -­‐  1st  Route from 1 to public class Route1 extends RouteBuilder { public void configure() throws Exception { from("ftp:user@rider.com?password=secret") .to("activemq:queue:incoming"); } } 73 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 73
  74. 74. Another  Example  Rider  Auto  Parts  Example  -­‐  2nd  Route 2 from to public class Route2 extends RouteBuilder { public void configure() throws Exception { from("jetty:http://localhost:8080/orders") .inOnly("activemq:queue:incoming") .transform().constant("OK"); } } 74 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 74
  75. 75. Another  Example  Rider  Auto  Parts  Example  -­‐  3rd  Route 3 from to choice route on next slide 75 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 75
  76. 76. Another  Example  Rider  Auto  Parts  Example  -­‐  3rd  Route public class Route3 extends RouteBuilder { public void configure() throws Exception { JaxbDataFormat jaxb = new JaxbDataFormat("com.rider"); BindyDataFormat bindy = new BindyDataFormat("com.rider"); from("activemq:queue:incoming") .convertBodyTo(String.class) .choice() .when().method("helper”, "isXml") .unmarshal(jaxb) .to("activemq:queue:order") .when().method("helper”, "isCsv") .unmarshal(bindy) .to("activemq:queue:order") } } 76 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 76
  77. 77. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 77 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 77
  78. 78. The  Camel  Community  Camel  website • 52%  increase  (2010  over  2009) • Average  2200  visits  per  weekday  (2000  -­‐  2500)  High  acIvity  on  mailing  list 78 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 78
  79. 79. The  Camel  Community  20  commi<ers  High  commit  acIvity 79 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 79
  80. 80. The  Camel  Community  Books • Manning  top-­‐15  year  to  date  (2010) #10 80 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 80
  81. 81. The  Camel  Community  Issue  Tracker Total 3215 Open 145 (5%) Resolved 3070 (95%) Bugs 4 (3% open) Oldest Bug Dec 2009 Oct 11th 2010 81 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 81
  82. 82. The  Camel  Community  A  lot  in  each  new  release Release Date Tickets Camel 2.0 Aug 2009 760 Camel 2.1 Dec 2009 303 Camel 2.2 Feb 2010 180 Camel 2.3 May 2010 273 Camel 2.4 July 2010 182 Camel 2.5 Oct 2010 270+ 82 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 82
  83. 83. The  Camel  Community  3rd  party  integraIng  Camel • Apache  ServiceMix • Apache  AcIveMQ • Apache  James In Progress • OpenESB Smooks • Progress  AcIonal  DiagnosIcs Doozer • FuseHQ • Open  eHealth  IntegraIon  Plaqorm • Grails  Camel  Plugin • Play  Framework • Akka • Scalate • JBoss  Drools • JBoss  ESB 83 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 83
  84. 84. Agenda  Who  is  Claus  Ibsen?  The  birth  of  Apache  Camel  What  is  Apache  Camel  A  li<le  example  Whats  included  in  the  box?  Running  Camel  Another  Example  The  Camel  Community  Q  and  A 84 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 84
  85. 85. Q  and  A  Where  do  I  get  more  informaIon? – Camel  website:  hCp://camel.apache.org – Camel  ar6cle:  hCp://architects.dzone.com/ar6cles/apache-­‐camel-­‐integra6on – FUSE  website:  hCp://fusesource.com – Camel  in  Ac6on  book:  hCp://manning.com/ibsen 85 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 85
  86. 86. Q  and  A ? 86 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 86

×