SlideShare a Scribd company logo
1 of 86
Download to read offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Q	
  and	
  A




                                                                                             ?
86    Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company

                                                                                                                                                                                                86

More Related Content

Similar to Apache camel community day - october 2010

What Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for youWhat Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for youClaus Ibsen
 
Camels in Berlin
Camels in BerlinCamels in Berlin
Camels in BerlinClaus Ibsen
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemixCharles Moulliard
 
Apache Camel
Apache CamelApache Camel
Apache CamelGenevaJUG
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationClaus Ibsen
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardCharles Moulliard
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardCharles Moulliard
 
Introducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineIntroducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineJames Strachan
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollodejanb
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011Marcelo Jabali
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevOracle Developers
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel IntroductionClaus Ibsen
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevOracle Developers
 
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...Hadoop / Spark Conference Japan
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...vasuballa
 
AskTOM Office Hours on Database Triggers
AskTOM Office Hours on Database TriggersAskTOM Office Hours on Database Triggers
AskTOM Office Hours on Database TriggersSteven Feuerstein
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camelgnanagurus
 
Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEJBUG London
 

Similar to Apache camel community day - october 2010 (20)

What Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for youWhat Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for you
 
Camels in Berlin
Camels in BerlinCamels in Berlin
Camels in Berlin
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentation
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliard
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliard
 
Introducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineIntroducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template Engine
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
APEX Adolescence
APEX AdolescenceAPEX Adolescence
APEX Adolescence
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev
 
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
 
Cloud 101 (Old)
Cloud 101 (Old)Cloud 101 (Old)
Cloud 101 (Old)
 
AskTOM Office Hours on Database Triggers
AskTOM Office Hours on Database TriggersAskTOM Office Hours on Database Triggers
AskTOM Office Hours on Database Triggers
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camel
 
Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE
 

More from Claus Ibsen

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfClaus Ibsen
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfClaus Ibsen
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelClaus Ibsen
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Claus Ibsen
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3Claus Ibsen
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Claus Ibsen
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusClaus Ibsen
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Claus Ibsen
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)Claus Ibsen
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Claus Ibsen
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - CopenhagenClaus Ibsen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - FredericiaClaus Ibsen
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesClaus Ibsen
 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesJEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesClaus Ibsen
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloudClaus Ibsen
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Claus Ibsen
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelClaus Ibsen
 

More from Claus Ibsen (20)

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdf
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetes
 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesJEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloud
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 

Recently uploaded

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Recently uploaded (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

Apache camel community day - october 2010

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Q  and  A ? 86 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company 86