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

What's hot

Introduction of Apache Camel
Introduction of Apache CamelIntroduction of Apache Camel
Introduction of Apache Camel
Knoldus Inc.
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Claus Ibsen
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
Knoldus Inc.
 
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
Claus Ibsen
 
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Amazon Web Services
 
Docker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopDocker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshop
Sathish VJ
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
dejanb
 
Spring Boot
Spring BootSpring Boot
Spring Boot
HongSeong Jeon
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips
confluent
 
kafka
kafkakafka
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDS
Doug Gault
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
confluent
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problems
Alexander Korotkov
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
if kakao
 
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
Claus Ibsen
 
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John FallowsEnd-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
HostedbyConfluent
 
Improving Apache Spark for Dynamic Allocation and Spot Instances
Improving Apache Spark for Dynamic Allocation and Spot InstancesImproving Apache Spark for Dynamic Allocation and Spot Instances
Improving Apache Spark for Dynamic Allocation and Spot Instances
Databricks
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
VMware Tanzu Korea
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor Netty
VMware Tanzu
 

What's hot (20)

Introduction of Apache Camel
Introduction of Apache CamelIntroduction of Apache Camel
Introduction of Apache Camel
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
 
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
 
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
 
Docker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopDocker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshop
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips
 
kafka
kafkakafka
kafka
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDS
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problems
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
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
 
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John FallowsEnd-to-end Streaming Between gRPC Services Via Kafka with John Fallows
End-to-end Streaming Between gRPC Services Via Kafka with John Fallows
 
Improving Apache Spark for Dynamic Allocation and Spot Instances
Improving Apache Spark for Dynamic Allocation and Spot InstancesImproving Apache Spark for Dynamic Allocation and Spot Instances
Improving Apache Spark for Dynamic Allocation and Spot Instances
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor Netty
 

Similar to Apache Camel Introduction

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
Claus Ibsen
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01
dheeraj kumar
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-apps
Skills Matter
 
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)
robinzimmermann
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel Components
Christian Posta
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
Patryk Bandurski
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
Bruce Snyder
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
Christian Posta
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Roland Tritsch
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
Nicola Ferraro
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
IBM UrbanCode Products
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
Jean-Sebastien Delfino
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
Byreddy Sravan Kumar Reddy
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
Jeff Potts
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
Rogue Wave Software
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
Brian Christner
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
pruthviraj krishnam
 
São Paulo MuleSoft Meetup #5 - Runtime Fabric
São Paulo MuleSoft Meetup #5 - Runtime FabricSão Paulo MuleSoft Meetup #5 - Runtime Fabric
São Paulo MuleSoft Meetup #5 - Runtime Fabric
Guilherme Pereira Silva
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 

Similar to Apache Camel Introduction (20)

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
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-apps
 
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel Components
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
 
São Paulo MuleSoft Meetup #5 - Runtime Fabric
São Paulo MuleSoft Meetup #5 - Runtime FabricSão Paulo MuleSoft Meetup #5 - Runtime Fabric
São Paulo MuleSoft Meetup #5 - Runtime Fabric
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 

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.pdf
Claus Ibsen
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
Claus 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 3
Claus 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 3
Claus 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 integration
Claus 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
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
Claus Ibsen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
Claus 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 Kubernetes
Claus Ibsen
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloud
Claus 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
 
ApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration libraryApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration library
Claus Ibsen
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
Claus Ibsen
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
Claus Ibsen
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
Claus Ibsen
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
Claus Ibsen
 
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on KubernetesRiga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
Claus Ibsen
 
Apache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the boxApache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the box
Claus 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
 
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
 
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)
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
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...
 
ApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration libraryApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration library
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on KubernetesRiga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
Riga Dev Day 2016 - Microservices with Apache Camel & fabric8 on Kubernetes
 
Apache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the boxApache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the box
 

Recently uploaded

Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 

Recently uploaded (20)

Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
��

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