SlideShare a Scribd company logo
Introduction to Apache Camel




Claus Ibsen
Principal Software Engineer, FuseSource
September 2010




              1
When you joined today‟s session …

       Audio is broadcast from your computer




                               Submit your questions
                                via the Chat Window

                                Contact today‟s Host
                                via the Chat Window
Today's speaker - Claus Ibsen



 Principal Software Engineer at FuseSource
     • Full time Apache Camel hacker
 Apache Camel committer
 Co-author of Camel in Action book
     • Available in late 2010
 Contact
     • claus.ibsen@fusesource.com
     • http://davsclaus.blogspot.com/
     • http://twitter.com/davsclaus

                                              http://www.manning.com/ibsen




 3     © 2010 Progress Software Corporation
Why the name Camel?




                                Camel is easy to remember and type




 4   © 2010 Progress Software Corporation
Agenda



    The birth of Apache Camel
    What is Apache Camel
    A little example
    What's included in the box?
    Running Camel
    Another Example
    The Camel Community
    Q and A




 5     © 2010 Progress Software Corporation
The birth of Apache Camel



     • Camel’s parents




 6     © 2010 Progress Software Corporation
The birth of Apache Camel



 Initial Commit Log
  r519901 | jstrachan | 2007-03-19 11:54:57 +0100
  (Mon, 19 Mar 2007) | 1 line

     Initial checkin of Camel routing library




 Apache Camel 1.0 released June 2007

 Apache Camel is 3 years old

 7     © 2010 Progress Software Corporation
The birth of Apache Camel



 My initial commit

     r640963 | davsclaus | 2008-03-25 21:07:10 +0100
     (Tue, 25 Mar 2008) | 1 line

     Added unit test for mistyped URI




 8     © 2010 Progress Software Corporation
Agenda



    The birth of Apache Camel
    What is Apache Camel
    A little example
    What's included in the box?
    Running Camel
    Another Example
    The Camel Community
    Q and A




 9     © 2010 Progress Software Corporation
What is Apache Camel



 Quote from the web site


                         Apache Camel is a
                      Powerful Open Source
                       Integration Framework
                          based on known
                   Enterprise Integration Patterns



 10   © 2010 Progress Software Corporation
What is Apache Camel



 Why do we need Integration?
      • Your apps are build using different tech stacks
      • Critical for your business to integrate
 Why Integration Framework?
      • Framework do the heavy lifting
      • Focus on business problem
      • Not "reinventing the wheel"




 11     © 2010 Progress Software Corporation
What is Apache Camel



 What is Enterprise Integration Patterns?




 12   © 2010 Progress Software Corporation
What is Apache Camel



 What is Enterprise Integration Patterns?




 13   © 2010 Progress Software Corporation
What is Apache Camel



 What is Enterprise Integration Patterns?




                                             Its a book
 14   © 2010 Progress Software Corporation
What is Apache Camel



 Lets look at one of the patterns




 15   © 2010 Progress Software Corporation
What is Apache Camel



 Use Case




      ActiveMQ                               WebSphereMQ




 16   © 2010 Progress Software Corporation
What is Apache Camel



 Filter Pattern




 17   © 2010 Progress Software Corporation
What is Apache Camel



 Filter Pattern




      from                                    filter   send to
        A                                    message     B




 18   © 2010 Progress Software Corporation
What is Apache Camel



 Filter Pattern




      from(A)                            filter(predicate)   to(B)




 19    © 2010 Progress Software Corporation
What is Apache Camel



 Filter Pattern




      from(A)                            .filter(isWidget)   .to(B)




 20    © 2010 Progress Software Corporation
What is Apache Camel



 Filter Route




                 from(A).filter(isWidget).to(B);




 21   © 2010 Progress Software Corporation
What is Apache Camel



 Filter Route




      isWidget = xpath(“/quote/product = „widget‟”);

                      from(A).filter(isWidget).to(B);


 22    © 2010 Progress Software Corporation
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   © 2010 Progress Software Corporation
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   © 2010 Progress Software Corporation
What is Apache Camel



 Filter Route - Java DSL

 import org.apache.camel.builder.RouteBuilder;
 import static org.apache.camel.builder.xml.XPathBuilder.xpath;

 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         © 2010 Progress Software Corporation
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     © 2010 Progress Software Corporation
What is Apache Camel



 IDE Tooling
                                                       Code
                                                       Assistance




                                             JavaDoc




 27   © 2010 Progress Software Corporation
What is Apache Camel



 IDE Tooling




                                             Code
                                             Assistance




 28   © 2010 Progress Software Corporation
What is Apache Camel



 Lets look at the most famous pattern




 29   © 2010 Progress Software Corporation
What is Apache Camel



 Content Based Router




 30   © 2010 Progress Software Corporation
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   © 2010 Progress Software Corporation
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     © 2010 Progress Software Corporation
What is Apache Camel



 Summary
      •   Camel is an integration framework
      •   Based on Enterprise Integration Patterns
      •   Routing and mediation
      •   Easy to use DSL to define routes
      •   No heavy specification
      •   No container dependency
      •   Payload agnostic
      •   Connectivity to a great wealth of transports




 33       © 2010 Progress Software Corporation
What is Apache Camel



 Mission Statement




                   Making integration easier and
                   more accessible to developers




 34   © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 35     © 2010 Progress Software Corporation
A little example



 Based on community user (Gunnar Hillert)
      • http://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       © 2010 Progress Software Corporation
A little example



 Goals using Enterprise Integration Patterns




          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       © 2010 Progress Software Corporation
A little example



 Goals using Enterprise Integration Patterns




 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       © 2010 Progress Software Corporation
A little 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   © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 40     © 2010 Progress Software Corporation
What's included in the box?



 Highlights of whats included in Camel




 41   © 2010 Progress Software Corporation
What's included in the box?



 50+ EIP patterns




  http://camel.apache.org/enterprise-integration-patterns.html

 42   © 2010 Progress Software Corporation
What's 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   © 2010 Progress Software Corporation
What's included in the box?



 70+ Components
          properties              scalate             stream        xslt

             quartz                 seda          string-template   ejb

            quickfix               servlet             test

               ref                smooks              timer

             restlet               smpp             validation

              rmi                  snmp              velocity

              rnc            spring-integration        vm

               rng            spring-security         xmpp

               rss                   sql              xquery


                       http://camel.apache.org/components.html

 44   © 2010 Progress Software Corporation
What's 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   © 2010 Progress Software Corporation
What's included in the box?



 Data Format




            from("activemq:QueueWithJavaObjects”)
               .marshal().jaxb()
               .to("mq:QueueWithXmlMessages");




 46   © 2010 Progress Software Corporation
What's 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   © 2010 Progress Software Corporation
What's 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    © 2010 Progress Software Corporation
What's included in the box?



 Type Converters




                         INFO DefaultTypeConverter
                         - Loaded 148 type converters

 49   © 2010 Progress Software Corporation
What's 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   © 2010 Progress Software Corporation
What's included in the box?



 Powerful bean integration
      • Adapt to your beans
      • EIP as @annotations
         -   @Produce
         -   @Consume
         -   @DynamicRouter
         -   @RecipientList
         -   @RoutingSlip

       more to come in future releases ...




 51     © 2010 Progress Software Corporation
What's included in the box?



 Bean as Message Translator




 52   © 2010 Progress Software Corporation
What's 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     © 2010 Progress Software Corporation
What's included in the box?


  Bean Parameter Binding with XPath


      public class Foo {
        public String processOrder(
          String orderAsXml,
          @XPath(“/order/@id") String oid,
          @Header("JMSCorrelationID") String cid) {
              ...
        }
      }




 54    © 2010 Progress Software Corporation
What's 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");
              }
            }

        }



 55   © 2010 Progress Software Corporation
What's included in the box?



 Receiving message


         public class Foo {

             @Consume(uri = "activemq:cheese")
             public void onCheese(String name) {
               ...
             }

         }




 56   © 2010 Progress Software Corporation
What's included in the box?



 Test Kit
      •   camel-test.jar
      •   JUnit based (3.x and 4.x)
      •   Supports Spring
      •   Easy to test
      •   Quick prototyping




 57       © 2010 Progress Software Corporation
What's included in the box?


                                         extend CamelTestSupport
 Test Kit from IDE
                                                                   Right Click ->
                                                                    Run
                                                                    Debug




                           Inline RouteBuilder




 58   © 2010 Progress Software Corporation
What's included in the box?



 Managed
      • JMX API
      • REST API




 59    © 2010 Progress Software Corporation
What's included in the box?



 Web console
      • REST API




 60    © 2010 Progress Software Corporation
What's included in the box?



 FuseSource Rider
      •




 61       © 2010 Progress Software Corporation
What's included in the box?



 Summary
      •   50+ EIP patterns
      •   70+ Connectivity components
      •   15+ Data formats
      •   10+ Languages
      •   DSL in multiple flavors (Java, XML, Scala, Groovy)
      •   Automatic type conversion
      •   Strong bean support
      •   Test Kit
      •   Management (JMX, REST)
      •   Web console




 62       © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 63     © 2010 Progress Software Corporation
Running Camel



 Riding the Camel




 64   © 2010 Progress Software Corporation
Running Camel



 Camel is not a server
 Camel is lightweight and embeddable
 Known Deployment Options
      •   Standalone Java Application            Known Containers
                                                 Apache ServiceMix
      •   Web Application
                                                 Apache ActiveMQ
      •   J2EE Application                       Apache Tomcat
      •   JBI                                    Jetty
                                                 JBoss
      •   OSGi                                   IBM WebSphere
      •   Google App Engine                      BEA WebLogic
                                                 Oracle OC4j
      •   Java Web Start
                                                 GAE
      •   Spring Application                     ... others




 65       © 2010 Progress Software Corporation
Running Camel



 Java Application

      CamelContext context = new DefaultCamelContext();
      context.addRoutes(new MyRouteBuilder());
      context.start();



 Spring Application
       <camelContext>
        <package>com.acme.quotes</package>
       </camelContext>




 66     © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 67     © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example by Jonathan Anstey
        http://architects.dzone.com/articles/apache-camel-integration




 68   © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 3 Routes

                                             1




 69   © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 3 Routes

                                             1




          2




 70   © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 3 Routes

                                             1




                                                 3
          2




 71   © 2010 Progress Software Corporation
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");
     }
 }
  72    © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 2nd Route

                                from                      to
                                                     2

       public class Route2 extends RouteBuilder {

           public void configure() throws Exception {
             from("jetty:http://localhost:8080/orders")
               .inOnly("activemq:queue:incoming")
               .transform().constant("OK");
           }
       }



  73       © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 3rd Route

                                                              3
                      from                               to


                         choice

                                       route on next slide



  74   © 2010 Progress Software Corporation
Another Example



 Rider Auto Parts Example - 3rd Route
       public class Route3 extends RouteBuilder {
        public void configure() throws Exception {
         JaxbDataFormat jaxb = new JaxbDataFormat("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().csv()
                    .beanRef("orderService”, "csvToXml")
                    .to("activemq:queue:order")
           }
       }



  75       © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 76     © 2010 Progress Software Corporation
The Camel Community



 Camel website
      • 52% increase (2010 over 2009)
      • Average 2200 visits per weekday (2000 - 2500)

 High activity on mailing list




 77     © 2010 Progress Software Corporation
The Camel Community



 20 committers

 High commit activity




                                             http://markmail.org/


 78   © 2010 Progress Software Corporation
The Camel Community



 Books - Bestseller
      • Manning top-15 year to date (2010)




                                #10


 79     © 2010 Progress Software Corporation
The Camel Community



 JIRA tickets

                                        Total           3106

                                        Open          136 (4%)

                                    Resolved        2970 (96%)

                                        Bugs        2 (2% open)

                                  Oldest Bug          Dec 2009

                                             Sep 6th 2010



 80   © 2010 Progress Software Corporation
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     278
                 Camel 2.4                   July 2010    182
                 Camel 2.5                   Sep 2010     170+



 81   © 2010 Progress Software Corporation
The Camel Community



 3rd party integrating Camel
      •   Apache ServiceMix
      •   Apache ActiveMQ
      •   Apache James                           In Progress
      •   OpenESB                                • Smooks
      •   Progress Actional Diagnostics          • Doozer
      •   FuseHQ
      •   Open eHealth Integration Platform
      •   Grails Camel Plugin
      •   Play Framework
      •   Akka
      •   Scalate
      •   JBoss Drools
      •   JBoss ESB
 82       © 2010 Progress Software Corporation
Agenda



     The birth of Apache Camel
     What is Apache Camel
     A little example
     What's included in the box?
     Running Camel
     Another Example
     The Camel Community
     Q and A




 83     © 2010 Progress Software Corporation
Q and A



 Where do I get more information?
       Camel website: http://camel.apache.org
       Camel article: http://architects.dzone.com/articles/apache-camel-integration
       FuseSource website: http://fusesource.com
       Camel in Action book: http://manning.com/ibsen




 84   © 2010 Progress Software Corporation
Q and A




 85   © 2010 Progress Software Corporation

More Related Content

PPTX
Introduction to Apache Camel
ODP
Microservices with Apache Camel
PDF
Apache Camel with Spring boot
PPTX
Microservices Part 3 Service Mesh and Kafka
PPTX
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
ODP
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
PPTX
Spark introduction and architecture
PPTX
Elastic - ELK, Logstash & Kibana
Introduction to Apache Camel
Microservices with Apache Camel
Apache Camel with Spring boot
Microservices Part 3 Service Mesh and Kafka
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Spark introduction and architecture
Elastic - ELK, Logstash & Kibana

What's hot (20)

PPTX
Introduction to Azure Functions
PDF
Apache Kafka Architecture & Fundamentals Explained
PPTX
An Introduction to Elastic Search.
PPTX
Apache Spark Core
PDF
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
PDF
Introduction to Apache Camel.pdf
PDF
Performance Tuning RocksDB for Kafka Streams’ State Stores
PDF
Prometheus Overview
PPTX
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
PDF
The "Big Data" Ecosystem at LinkedIn
PDF
AWS EMR Cost optimization
PDF
Introduction to Spark Streaming
PPTX
Elastic Stack Introduction
PDF
Kafka Streams: What it is, and how to use it?
ODP
Deep Dive Into Elasticsearch
PPTX
OLTP+OLAP=HTAP
 
PPT
Apache Spark Introduction and Resilient Distributed Dataset basics and deep dive
PPTX
Data Center Migration to the AWS Cloud
PPTX
Apache Tez - A New Chapter in Hadoop Data Processing
PPTX
Elastic Compute Cloud (EC2) on AWS Presentation
Introduction to Azure Functions
Apache Kafka Architecture & Fundamentals Explained
An Introduction to Elastic Search.
Apache Spark Core
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Introduction to Apache Camel.pdf
Performance Tuning RocksDB for Kafka Streams’ State Stores
Prometheus Overview
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
The "Big Data" Ecosystem at LinkedIn
AWS EMR Cost optimization
Introduction to Spark Streaming
Elastic Stack Introduction
Kafka Streams: What it is, and how to use it?
Deep Dive Into Elasticsearch
OLTP+OLAP=HTAP
 
Apache Spark Introduction and Resilient Distributed Dataset basics and deep dive
Data Center Migration to the AWS Cloud
Apache Tez - A New Chapter in Hadoop Data Processing
Elastic Compute Cloud (EC2) on AWS Presentation
Ad

Similar to Apache Camel Introduction (20)

PDF
Apache Camel - FUSE community day London 2010 presentation
PDF
Introductiontoapachecamel 110131060022-phpapp01
PPTX
Peter lubbers-html5-offline-web-apps
PDF
HTML5 Offline Web Applications (Silicon Valley User Group)
PPTX
Essential Camel Components
PPTX
Warsaw MuleSoft Meetup - Runtime Fabric
PDF
Best Practices for Middleware and Integration Architecture Modernization with...
PDF
EIP In Practice
PDF
Solving Enterprise Integration with Apache Camel
PDF
RESTful Services and Distributed OSGi - 04/2009
PDF
ApacheCon NA - Apache Camel K: a cloud-native integration platform
PPTX
Extending uBuild and uDeploy with Plugins
PDF
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
PPTX
Mulesoft Connections to different companies, and different services
PPT
ECM and Open Source Software: A Disruptive Force in ECM Solutions
PPTX
Making Apache Camel work for you
PDF
56k.cloud training
PPTX
Mule meetup 25thjan
PPTX
São Paulo MuleSoft Meetup #5 - Runtime Fabric
PDF
Spring boot microservice metrics monitoring
Apache Camel - FUSE community day London 2010 presentation
Introductiontoapachecamel 110131060022-phpapp01
Peter lubbers-html5-offline-web-apps
HTML5 Offline Web Applications (Silicon Valley User Group)
Essential Camel Components
Warsaw MuleSoft Meetup - Runtime Fabric
Best Practices for Middleware and Integration Architecture Modernization with...
EIP In Practice
Solving Enterprise Integration with Apache Camel
RESTful Services and Distributed OSGi - 04/2009
ApacheCon NA - Apache Camel K: a cloud-native integration platform
Extending uBuild and uDeploy with Plugins
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
Mulesoft Connections to different companies, and different services
ECM and Open Source Software: A Disruptive Force in ECM Solutions
Making Apache Camel work for you
56k.cloud training
Mule meetup 25thjan
São Paulo MuleSoft Meetup #5 - Runtime Fabric
Spring boot microservice metrics monitoring
Ad

More from Claus Ibsen (20)

PDF
Low Code Integration with Apache Camel.pdf
PDF
Camel JBang - Quarkus Insights.pdf
PDF
Integrating systems in the age of Quarkus and Camel
PDF
Camel Day Italy 2021 - What's new in Camel 3
PDF
DevNation Live 2020 - What's new with Apache Camel 3
PDF
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
PDF
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
PDF
Apache Camel v3, Camel K and Camel Quarkus
PDF
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
PDF
State of integration with Apache Camel (ApacheCon 2019)
PPTX
Serverless integration with Knative and Apache Camel on Kubernetes
PPTX
Apache Camel K - Copenhagen v2
PPTX
Apache Camel K - Copenhagen
PPTX
Apache Camel K - Fredericia
PPTX
Integrating microservices with apache camel on kubernetes
PDF
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
PPTX
Camel riders in the cloud
PDF
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
PPTX
ApacheCon EU 2016 - Apache Camel the integration library
PDF
Developing Java based microservices ready for the world of containers
Low Code Integration with Apache Camel.pdf
Camel JBang - Quarkus Insights.pdf
Integrating systems in the age of Quarkus and Camel
Camel Day Italy 2021 - What's new in 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...
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
Apache Camel v3, Camel K and Camel Quarkus
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
State of integration with Apache Camel (ApacheCon 2019)
Serverless integration with Knative and Apache Camel on Kubernetes
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen
Apache Camel K - Fredericia
Integrating microservices with apache camel on kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
Camel riders in the cloud
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
ApacheCon EU 2016 - Apache Camel the integration library
Developing Java based microservices ready for the world of containers

Recently uploaded (20)

PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Approach and Philosophy of On baking technology
PDF
KodekX | Application Modernization Development
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
Spectral efficient network and resource selection model in 5G networks
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm

Apache Camel Introduction

  • 1. Introduction to Apache Camel Claus Ibsen Principal Software Engineer, FuseSource September 2010 1
  • 2. When you joined today‟s session … Audio is broadcast from your computer Submit your questions via the Chat Window Contact today‟s Host via the Chat Window
  • 3. Today's speaker - Claus Ibsen  Principal Software Engineer at FuseSource • Full time Apache Camel hacker  Apache Camel committer  Co-author of Camel in Action book • Available in late 2010  Contact • claus.ibsen@fusesource.com • http://davsclaus.blogspot.com/ • http://twitter.com/davsclaus http://www.manning.com/ibsen 3 © 2010 Progress Software Corporation
  • 4. Why the name Camel? Camel is easy to remember and type 4 © 2010 Progress Software Corporation
  • 5. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 5 © 2010 Progress Software Corporation
  • 6. The birth of Apache Camel • Camel’s parents 6 © 2010 Progress Software Corporation
  • 7. The birth of Apache Camel  Initial Commit Log r519901 | jstrachan | 2007-03-19 11:54:57 +0100 (Mon, 19 Mar 2007) | 1 line Initial checkin of Camel routing library  Apache Camel 1.0 released June 2007  Apache Camel is 3 years old 7 © 2010 Progress Software Corporation
  • 8. The birth of Apache Camel  My initial commit r640963 | davsclaus | 2008-03-25 21:07:10 +0100 (Tue, 25 Mar 2008) | 1 line Added unit test for mistyped URI 8 © 2010 Progress Software Corporation
  • 9. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 9 © 2010 Progress Software Corporation
  • 10. What is Apache Camel  Quote from the web site Apache Camel is a Powerful Open Source Integration Framework based on known Enterprise Integration Patterns 10 © 2010 Progress Software Corporation
  • 11. What is Apache Camel  Why do we need Integration? • Your apps are build using different tech stacks • Critical for your business to integrate  Why Integration Framework? • Framework do the heavy lifting • Focus on business problem • Not "reinventing the wheel" 11 © 2010 Progress Software Corporation
  • 12. What is Apache Camel  What is Enterprise Integration Patterns? 12 © 2010 Progress Software Corporation
  • 13. What is Apache Camel  What is Enterprise Integration Patterns? 13 © 2010 Progress Software Corporation
  • 14. What is Apache Camel  What is Enterprise Integration Patterns? Its a book 14 © 2010 Progress Software Corporation
  • 15. What is Apache Camel  Lets look at one of the patterns 15 © 2010 Progress Software Corporation
  • 16. What is Apache Camel  Use Case ActiveMQ WebSphereMQ 16 © 2010 Progress Software Corporation
  • 17. What is Apache Camel  Filter Pattern 17 © 2010 Progress Software Corporation
  • 18. What is Apache Camel  Filter Pattern from filter send to A message B 18 © 2010 Progress Software Corporation
  • 19. What is Apache Camel  Filter Pattern from(A) filter(predicate) to(B) 19 © 2010 Progress Software Corporation
  • 20. What is Apache Camel  Filter Pattern from(A) .filter(isWidget) .to(B) 20 © 2010 Progress Software Corporation
  • 21. What is Apache Camel  Filter Route from(A).filter(isWidget).to(B); 21 © 2010 Progress Software Corporation
  • 22. What is Apache Camel  Filter Route isWidget = xpath(“/quote/product = „widget‟”); from(A).filter(isWidget).to(B); 22 © 2010 Progress Software Corporation
  • 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 © 2010 Progress Software Corporation
  • 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 © 2010 Progress Software Corporation
  • 25. What is Apache Camel  Filter Route - Java DSL import org.apache.camel.builder.RouteBuilder; import static org.apache.camel.builder.xml.XPathBuilder.xpath; 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 © 2010 Progress Software Corporation
  • 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 © 2010 Progress Software Corporation
  • 27. What is Apache Camel  IDE Tooling Code Assistance JavaDoc 27 © 2010 Progress Software Corporation
  • 28. What is Apache Camel  IDE Tooling Code Assistance 28 © 2010 Progress Software Corporation
  • 29. What is Apache Camel  Lets look at the most famous pattern 29 © 2010 Progress Software Corporation
  • 30. What is Apache Camel  Content Based Router 30 © 2010 Progress Software Corporation
  • 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 © 2010 Progress Software Corporation
  • 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 © 2010 Progress Software Corporation
  • 33. What is Apache Camel  Summary • Camel is an integration framework • Based on Enterprise Integration Patterns • Routing and mediation • Easy to use DSL to define routes • No heavy specification • No container dependency • Payload agnostic • Connectivity to a great wealth of transports 33 © 2010 Progress Software Corporation
  • 34. What is Apache Camel  Mission Statement Making integration easier and more accessible to developers 34 © 2010 Progress Software Corporation
  • 35. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 35 © 2010 Progress Software Corporation
  • 36. A little example  Based on community user (Gunnar Hillert) • http://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 © 2010 Progress Software Corporation
  • 37. A little example  Goals using Enterprise Integration Patterns 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 © 2010 Progress Software Corporation
  • 38. A little example  Goals using Enterprise Integration Patterns 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 © 2010 Progress Software Corporation
  • 39. A little 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 © 2010 Progress Software Corporation
  • 40. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 40 © 2010 Progress Software Corporation
  • 41. What's included in the box?  Highlights of whats included in Camel 41 © 2010 Progress Software Corporation
  • 42. What's included in the box?  50+ EIP patterns http://camel.apache.org/enterprise-integration-patterns.html 42 © 2010 Progress Software Corporation
  • 43. What's 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 © 2010 Progress Software Corporation
  • 44. What's included in the box?  70+ Components properties scalate stream xslt quartz seda string-template ejb quickfix servlet test ref smooks timer restlet smpp validation rmi snmp velocity rnc spring-integration vm rng spring-security xmpp rss sql xquery http://camel.apache.org/components.html 44 © 2010 Progress Software Corporation
  • 45. What's 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 © 2010 Progress Software Corporation
  • 46. What's included in the box?  Data Format from("activemq:QueueWithJavaObjects”) .marshal().jaxb() .to("mq:QueueWithXmlMessages"); 46 © 2010 Progress Software Corporation
  • 47. What's 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 © 2010 Progress Software Corporation
  • 48. What's 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 © 2010 Progress Software Corporation
  • 49. What's included in the box?  Type Converters INFO DefaultTypeConverter - Loaded 148 type converters 49 © 2010 Progress Software Corporation
  • 50. What's 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 © 2010 Progress Software Corporation
  • 51. What's included in the box?  Powerful bean integration • Adapt to your beans • EIP as @annotations - @Produce - @Consume - @DynamicRouter - @RecipientList - @RoutingSlip more to come in future releases ... 51 © 2010 Progress Software Corporation
  • 52. What's included in the box?  Bean as Message Translator 52 © 2010 Progress Software Corporation
  • 53. What's 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 © 2010 Progress Software Corporation
  • 54. What's included in the box?  Bean Parameter Binding with XPath public class Foo { public String processOrder( String orderAsXml, @XPath(“/order/@id") String oid, @Header("JMSCorrelationID") String cid) { ... } } 54 © 2010 Progress Software Corporation
  • 55. What's 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"); } } } 55 © 2010 Progress Software Corporation
  • 56. What's included in the box?  Receiving message public class Foo { @Consume(uri = "activemq:cheese") public void onCheese(String name) { ... } } 56 © 2010 Progress Software Corporation
  • 57. What's included in the box?  Test Kit • camel-test.jar • JUnit based (3.x and 4.x) • Supports Spring • Easy to test • Quick prototyping 57 © 2010 Progress Software Corporation
  • 58. What's included in the box? extend CamelTestSupport  Test Kit from IDE Right Click -> Run Debug Inline RouteBuilder 58 © 2010 Progress Software Corporation
  • 59. What's included in the box?  Managed • JMX API • REST API 59 © 2010 Progress Software Corporation
  • 60. What's included in the box?  Web console • REST API 60 © 2010 Progress Software Corporation
  • 61. What's included in the box?  FuseSource Rider • 61 © 2010 Progress Software Corporation
  • 62. What's included in the box?  Summary • 50+ EIP patterns • 70+ Connectivity components • 15+ Data formats • 10+ Languages • DSL in multiple flavors (Java, XML, Scala, Groovy) • Automatic type conversion • Strong bean support • Test Kit • Management (JMX, REST) • Web console 62 © 2010 Progress Software Corporation
  • 63. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 63 © 2010 Progress Software Corporation
  • 64. Running Camel  Riding the Camel 64 © 2010 Progress Software Corporation
  • 65. Running Camel  Camel is not a server  Camel is lightweight and embeddable  Known Deployment Options • Standalone Java Application Known Containers Apache ServiceMix • Web Application Apache ActiveMQ • J2EE Application Apache Tomcat • JBI Jetty JBoss • OSGi IBM WebSphere • Google App Engine BEA WebLogic Oracle OC4j • Java Web Start GAE • Spring Application ... others 65 © 2010 Progress Software Corporation
  • 66. Running Camel  Java Application CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start();  Spring Application <camelContext> <package>com.acme.quotes</package> </camelContext> 66 © 2010 Progress Software Corporation
  • 67. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 67 © 2010 Progress Software Corporation
  • 68. Another Example  Rider Auto Parts Example by Jonathan Anstey http://architects.dzone.com/articles/apache-camel-integration 68 © 2010 Progress Software Corporation
  • 69. Another Example  Rider Auto Parts Example - 3 Routes 1 69 © 2010 Progress Software Corporation
  • 70. Another Example  Rider Auto Parts Example - 3 Routes 1 2 70 © 2010 Progress Software Corporation
  • 71. Another Example  Rider Auto Parts Example - 3 Routes 1 3 2 71 © 2010 Progress Software Corporation
  • 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"); } } 72 © 2010 Progress Software Corporation
  • 73. Another Example  Rider Auto Parts Example - 2nd Route from to 2 public class Route2 extends RouteBuilder { public void configure() throws Exception { from("jetty:http://localhost:8080/orders") .inOnly("activemq:queue:incoming") .transform().constant("OK"); } } 73 © 2010 Progress Software Corporation
  • 74. Another Example  Rider Auto Parts Example - 3rd Route 3 from to choice route on next slide 74 © 2010 Progress Software Corporation
  • 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"); from("activemq:queue:incoming") .convertBodyTo(String.class) .choice() .when().method("helper”, "isXml") .unmarshal(jaxb) .to("activemq:queue:order") .when().method("helper”, "isCsv") .unmarshal().csv() .beanRef("orderService”, "csvToXml") .to("activemq:queue:order") } } 75 © 2010 Progress Software Corporation
  • 76. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 76 © 2010 Progress Software Corporation
  • 77. The Camel Community  Camel website • 52% increase (2010 over 2009) • Average 2200 visits per weekday (2000 - 2500)  High activity on mailing list 77 © 2010 Progress Software Corporation
  • 78. The Camel Community  20 committers  High commit activity http://markmail.org/ 78 © 2010 Progress Software Corporation
  • 79. The Camel Community  Books - Bestseller • Manning top-15 year to date (2010) #10 79 © 2010 Progress Software Corporation
  • 80. The Camel Community  JIRA tickets Total 3106 Open 136 (4%) Resolved 2970 (96%) Bugs 2 (2% open) Oldest Bug Dec 2009 Sep 6th 2010 80 © 2010 Progress Software Corporation
  • 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 278 Camel 2.4 July 2010 182 Camel 2.5 Sep 2010 170+ 81 © 2010 Progress Software Corporation
  • 82. The Camel Community  3rd party integrating Camel • Apache ServiceMix • Apache ActiveMQ • Apache James In Progress • OpenESB • Smooks • Progress Actional Diagnostics • Doozer • FuseHQ • Open eHealth Integration Platform • Grails Camel Plugin • Play Framework • Akka • Scalate • JBoss Drools • JBoss ESB 82 © 2010 Progress Software Corporation
  • 83. Agenda  The birth of Apache Camel  What is Apache Camel  A little example  What's included in the box?  Running Camel  Another Example  The Camel Community  Q and A 83 © 2010 Progress Software Corporation
  • 84. Q and A  Where do I get more information? Camel website: http://camel.apache.org Camel article: http://architects.dzone.com/articles/apache-camel-integration FuseSource website: http://fusesource.com Camel in Action book: http://manning.com/ibsen 84 © 2010 Progress Software Corporation
  • 85. Q and A 85 © 2010 Progress Software Corporation