SlideShare a Scribd company logo
Getting Started with Apache Camel



    Claus Ibsen (@davsclaus)
    Principal Software Engineer, Red Hat
    Javagruppen Copenhagen, april 2013




1                 PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

    ●   History of Camel
    ●   What is Apache Camel?
    ●   A little Example
    ●   Riding Camel
    ●   What's in the Camel box?
    ●   Deploying Camel
    ●   Creating new Camel Projects
    ●   Q and A



2                          PUBLIC PRESENTATION | CLAUS IBSEN
Your Speaker

    ●   Principal Software Engineer at Red Hat
    ●   Apache Camel
         ●   5 years working with Camel
    ●   Author of Camel in Action book
    ●   Contact
         ●   EMail: cibsen@redhat.com
         ●   Twitter: @davsclaus
         ●   Blog: http://davsclaus.com
         ●   Linkedin: http://www.linkedin.com/in/davsclaus


3                             PUBLIC PRESENTATION | CLAUS IBSEN
Why the name Camel?




4               PUBLIC PRESENTATION | CLAUS IBSEN
Why the name Camel?




                Because Camel is
          easy to remember and type ...


5                PUBLIC PRESENTATION | CLAUS IBSEN
Why the name Camel?




      … or the creator used to smoke cigarets!

         http://camel.apache.org/why-the-name-camel.html


6                    PUBLIC PRESENTATION | CLAUS IBSEN
Camel's parents




7                 PUBLIC PRESENTATION | CLAUS IBSEN
Camel's parents




         James Strachan (creator of Camel)
         Gregor Hohpe (author of EIP book)


8                 PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel

    ●   First Commit




9                      PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel

 ●   My first Commit




10                     PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel

 ●   First Release
      ●   Apache Camel 1.0
          June 2007




      http://www.davsclaus.com/2012/05/looking-at-impressive-first-apache.html


11                               PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Q and A



12                      PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Quote from the website




13                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Why do we need integration?
      ●   Critical for your business to integrate
 ●   Why Integration Framework?
      ●   Framework do the heavy lifting
      ●   You can focus on business problem
      ●   Not "reinventing the wheel"




14                           PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   What is Enterprise Integration Patterns?




                       It's a book

15                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Enterprise Integration Patterns




                http://camel.apache.org/eip

16                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   EIP - Content Based Router




17                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder




18                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice




19                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice
         when isWidget to widget




20                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice
         when isWidget to widget
         otherwise to gadget




21                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from(newOrder)
       choice
         when(isWidget) to(widget)
         otherwise to(gadget)




22                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from(newOrder)
       .choice()
         .when(isWidget).to(widget)
         .otherwise().to(gadget);




23                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     Endpoint newOrder = endpoint("activemq:queue:newOrder");




     from(newOrder)
       .choice()
         .when(isWidget).to(widget)
         .otherwise().to(gadget);




24                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     Endpoint newOrder = endpoint("activemq:queue:newOrder");
     Predicate isWidget = xpath("/order/product = 'widget'");



     from(newOrder)
       .choice()
         .when(isWidget).to(widget)
         .otherwise().to(gadget);




25                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     Endpoint newOrder = endpoint("activemq:queue:newOrder");
     Predicate isWidget = xpath("/order/product = 'widget'");
     Endpoint widget = endpoint("activemq:queue:widget");
     Endpoint gadget = endpoint("activemq:queue:gadget");

     from(newOrder)
       .choice()
         .when(isWidget).to(widget)
         .otherwise().to(gadget);




26                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Java Code




        public void configure() throws Exception {
          Endpoint newOrder = endpoint("activemq:queue:newOrder");
          Predicate isWidget = xpath("/order/product = 'widget'");
          Endpoint widget = endpoint("activemq:queue:widget");
          Endpoint gadget = endpoint("activemq:queue:gadget");

            from(newOrder)
              .choice()
                .when(isWidget).to(widget)
                .otherwise().to(gadget)
              .end();
        }

27                           PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Java Code
       import org.apache.camel.Endpoint;
       import org.apache.camel.Predicate;
       import org.apache.camel.builder.RouteBuilder;

       public class MyRoute extends RouteBuilder {

           public void configure() throws Exception {
             Endpoint newOrder = endpoint("activemq:queue:newOrder");
             Predicate isWidget = xpath("/order/product = 'widget'");
             Endpoint widget = endpoint("activemq:queue:widget");
             Endpoint gadget = endpoint("activemq:queue:gadget");

               from(newOrder)
                 .choice()
                   .when(isWidget).to(widget)
                   .otherwise().to(gadget)
                 .end();
           }
       }
28                              PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Camel Java DSL

       import org.apache.camel.builder.RouteBuilder;

       public class MyRoute extends RouteBuilder {

           public void configure() throws Exception {
             from("activemq:queue:newOrder")
               .choice()
                 .when(xpath("/order/product = 'widget'"))
                   .to("activemq:queue:widget")
                 .otherwise()
                   .to("activemq:queue:gadget")
               .end();
           }
       }



29                            PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Camel XML DSL
        <route>
          <from uri="activemq:queue:newOrder"/>
          <choice>
            <when>
              <xpath>/order/product = 'widget'</xpath>
              <to uri="activemq:queue:widget"/>
            </when>
            <otherwise>
              <to uri="activemq:queue:gadget"/>
            </otherwise>
          </choice>
        </route>




30                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
                                          use file instead
 ●   Endpoint as URIs
        <route>
          <from uri="file:inbox/orders"/>
          <choice>
            <when>
              <xpath>/order/product = 'widget'</xpath>
              <to uri="activemq:queue:widget"/>
            </when>
            <otherwise>
              <to uri="activemq:queue:gadget"/>
            </otherwise>
          </choice>
        </route>




31                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
                                                               parameters
 ●   Endpoint as URIs
        <route>
          <from uri="file:inbox/orders?delete=true"/>
          <choice>
            <when>
              <xpath>/order/product = 'widget'</xpath>
              <to uri="activemq:queue:widget"/>
            </when>
            <otherwise>
              <to uri="activemq:queue:gadget"/>
            </otherwise>
          </choice>
        </route>




32                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Camel's Architecture




33                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




34                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




35                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Summary
     ●   Integration Framework
     ●   Enterprise Integration Patterns (EIP)
     ●   Routing (using DSL)
     ●   Easy Configuration (endpoint as uri's)
     ●   Payload Agnostic
     ●   No Container Dependency
     ●   A lot of components




36                          PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Extending Camel
 ●   Q and A

37                      PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




38                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




39                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




40                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




41                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




42                     PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Q and A



43                      PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Downloading Apache Camel
     ●   zip/tarball (approx 14mb)




                                                      http://camel.apache.org




44                        PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Using Command Shell
      ●   Requires: Apache Maven




 ●   From Eclipse




45                       PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Console Example




 ●   cd examples/camel-example-console
 ●   mvn compile exec:java

46                     PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Twitter Example




 ●   cd examples/camel-example-twitter-websocket
 ●   mvn compile exec:java                  http://localhost:9090/index.html



47                     PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   More examples ...




     ... and further details at website.

                http://camel.apache.org/examples




48                        PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Q and A



49                      PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?




50                   PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?

 ●   Enterprise Integration Patterns




                http://camel.apache.org/eip

51                     PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?

 ●   Splitter EIP




52                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




53                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     19 Data Formats




54                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     15 Expression Languages




55                    PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     5+ DSL in multiple languages
      ●   Java DSL
      ●   XML DSL (Spring and OSGi Blueprint)
      ●   Groovy DSL
      ●   Scala DSL
      ●   Kotlin DSL (work in progress)




56                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Test Kit
      ●   camel-test                      camel-test-spring
      ●   camel-test-blueprint            camel-testng




57                          PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Management
     ●   JMX
     ●   REST
         (@deprecated)




58                       PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Tooling – Web console - HawtIO




                       http://hawt.io
59                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Tooling – Eclipse Plugin – Fuse IDE




              http://github.com/fusesource/fuseide
60                      PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Error Handling




61                    PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     try .. catch style




62                        PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Dead Letter Channel (EIP style)




63                      PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
     The Rest
     ●   Interceptors
     ●   Security
     ●   Route Policy
     ●   Type Converters
     ●   Transaction
          ●   Compensation as rollback
     ●   Asynchronous non-blocking routing engine
     ●   Thread management
     ●   Maven Tooling
     ●   ... and much more
64                           PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Extending Camel
 ●   Q and A

65                      PUBLIC PRESENTATION | CLAUS IBSEN
Deploying Camel

 ●   Deployment Strategy
     ●   No Container Dependency
     ●   Lightweight & Embeddable
 ●   Deployment Options
     ●   Standalone
     ●   WAR
     ●   Spring
     ●   JEE
     ●   OSGi
     ●   Cloud

66                       PUBLIC PRESENTATION | CLAUS IBSEN
Camel as a Client

 ●   Java Client Application (no routes)
 ●   Example
      ●   Upload a file to a FTP server




67                          PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Q and A



68                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Using Command Shell




 ●   From Eclipse




69                   PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Maven Archetypes




70                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   camel-archetype-blueprint




71                     PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Importing into Eclipse




                                                       Existing Maven Project




72                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Testing Camel Projects




 ●   ... from inside Eclipse


73                       PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   History of Camel
 ●   What is Apache Camel?
 ●   A little Example
 ●   Riding Camel
 ●   What's in the Camel box?
 ●   Deploying Camel
 ●   Creating new Camel Projects
 ●   Q and A



74                      PUBLIC PRESENTATION | CLAUS IBSEN
Where do I get more information?
 ●   Best Article covering what Apache Camel is
      ●   http://java.dzone.com/articles/open-source-integration-
          apache




                                                        Link to article from “Getting Started”




75                          PUBLIC PRESENTATION | CLAUS IBSEN
Where do I get more information?
 ●   Try Camel Examples
      ●   http://camel.apache.org/examples.html


 ●   Read other blogs and articles
      ●   http://camel.apache.org/articles.html


 ●   Use the “search box” on the Camel front page




76                          PUBLIC PRESENTATION | CLAUS IBSEN
Where do I get more information?
 ●   Use the mailing list / forum
      ●   http://camel.apache.org/mailing-lists.html


 ●   Use stackoverflow
      ●   http://stackoverflow.com/questions/tagged/apache-camel




77                          PUBLIC PRESENTATION | CLAUS IBSEN
Where do I get more information?
 ●   Buy the Camel in Action book




                                                                Use code ...
                                                                  camel40
                                                             … for 40% discount




                   http://manning.com/ibsen/




78                       PUBLIC PRESENTATION | CLAUS IBSEN
Any Questions ?



●    Contact
      ● EMail: cibsen@redhat.com
      ● Twitter: @davsclaus
      ● Blog: http://davsclaus.com
      ● Linkedin: http://www.linkedin.com/in/davsclaus




    79                              PUBLIC PRESENTATION | CLAUS IBSEN

More Related Content

What's hot

Integration made easy with Apache Camel
Integration made easy with Apache CamelIntegration made easy with Apache Camel
Integration made easy with Apache Camel
Rosen Spasov
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014
Claus Ibsen
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
Ioan Eugen Stan
 
Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013
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 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
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
Claus Ibsen
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
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
 
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
 
Simplify your integrations with Apache Camel
Simplify your integrations with Apache CamelSimplify your integrations with Apache Camel
Simplify your integrations with Apache Camel
Kenneth Peeples
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
 
Taking Apache Camel For A Ride
Taking Apache Camel For A RideTaking Apache Camel For A Ride
Taking Apache Camel For A Ride
Bruce Snyder
 
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMixEasy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMixelliando dias
 
Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...
All Things Open
 
DOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A RideDOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A Ride
Matthew McCullough
 
Adobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingAdobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job Processing
Carsten Ziegeler
 
Scala Matsuri 2017
Scala Matsuri 2017Scala Matsuri 2017
Scala Matsuri 2017
Yoshitaka Fujii
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Tomas Doran
 

What's hot (20)

Integration made easy with Apache Camel
Integration made easy with Apache CamelIntegration made easy with Apache Camel
Integration made easy with Apache Camel
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013
 
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 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
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
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
 
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)
 
Simplify your integrations with Apache Camel
Simplify your integrations with Apache CamelSimplify your integrations with Apache Camel
Simplify your integrations with Apache Camel
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Taking Apache Camel For A Ride
Taking Apache Camel For A RideTaking Apache Camel For A Ride
Taking Apache Camel For A Ride
 
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMixEasy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
 
Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...
 
DOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A RideDOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A Ride
 
Adobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingAdobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job Processing
 
Scala Matsuri 2017
Scala Matsuri 2017Scala Matsuri 2017
Scala Matsuri 2017
 
EVOLVE'13 | Enhance | Eventing to job Processing | Carsten Zeigler
EVOLVE'13 | Enhance | Eventing to job Processing | Carsten ZeiglerEVOLVE'13 | Enhance | Eventing to job Processing | Carsten Zeigler
EVOLVE'13 | Enhance | Eventing to job Processing | Carsten Zeigler
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
 

Viewers also liked

Khushbu_Shah_SSE_CV
Khushbu_Shah_SSE_CVKhushbu_Shah_SSE_CV
Khushbu_Shah_SSE_CVkhushbu shah
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXF
Carl Lu
 
Linn gerald 3
Linn gerald 3Linn gerald 3
Linn gerald 3
Gerald Linn
 
Kamal j sanghani ibm
Kamal j sanghani ibmKamal j sanghani ibm
Kamal j sanghani ibm
sanghaniva
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixAdrian Trenaman
 
Git best practices
Git best practicesGit best practices
Git best practices
Matteo Gavagnin
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 

Viewers also liked (9)

Khushbu_Shah_SSE_CV
Khushbu_Shah_SSE_CVKhushbu_Shah_SSE_CV
Khushbu_Shah_SSE_CV
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXF
 
Linn gerald 3
Linn gerald 3Linn gerald 3
Linn gerald 3
 
Kamal j sanghani ibm
Kamal j sanghani ibmKamal j sanghani ibm
Kamal j sanghani ibm
 
Resume_Janile_HR
Resume_Janile_HRResume_Janile_HR
Resume_Janile_HR
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMix
 
Git best practices
Git best practicesGit best practices
Git best practices
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
 
Camel presentation
Camel presentationCamel presentation
Camel presentation
 

Similar to Getting started with Apache Camel - Javagruppen Copenhagen - April 2014

Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
GR8Conf
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
Claus Ibsen
 
Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014
Claus Ibsen
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
aegloff
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetes
Claus Ibsen
 
Using Enterprise Integration Patterns as Your Camel Jockey
Using Enterprise Integration Patterns as Your Camel JockeyUsing Enterprise Integration Patterns as Your Camel Jockey
Using Enterprise Integration Patterns as Your Camel JockeyBruce Snyder
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
Scott van Kalken
 
Easy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp NomadEasy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp Nomad
Bram Vogelaar
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
buildacloud
 
Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityClaus Ibsen
 
Whats all the FaaS About
Whats all the FaaS AboutWhats all the FaaS About
Whats all the FaaS About
Haggai Philip Zagury
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CI
Simon Bennetts
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)
craigbox
 
Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP
DevSecCon
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk
Simon Bennetts
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
C4Media
 
Cassandra 3.0
Cassandra 3.0Cassandra 3.0
Cassandra 3.0
Robert Stupp
 
Bring the light in your Always FREE Oracle Cloud
Bring the light in your Always FREE Oracle CloudBring the light in your Always FREE Oracle Cloud
Bring the light in your Always FREE Oracle Cloud
Dimitri Gielis
 
Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Joe Breu
 

Similar to Getting started with Apache Camel - Javagruppen Copenhagen - April 2014 (20)

Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetes
 
Using Enterprise Integration Patterns as Your Camel Jockey
Using Enterprise Integration Patterns as Your Camel JockeyUsing Enterprise Integration Patterns as Your Camel Jockey
Using Enterprise Integration Patterns as Your Camel Jockey
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
 
Easy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp NomadEasy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp Nomad
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
 
Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivity
 
Whats all the FaaS About
Whats all the FaaS AboutWhats all the FaaS About
Whats all the FaaS About
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CI
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
 
Cassandra 3.0
Cassandra 3.0Cassandra 3.0
Cassandra 3.0
 
Bring the light in your Always FREE Oracle Cloud
Bring the light in your Always FREE Oracle CloudBring the light in your Always FREE Oracle Cloud
Bring the light in your Always FREE Oracle Cloud
 
Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013
 

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
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
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
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
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
 
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
 
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
 
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
 
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
 

More from Claus Ibsen (18)

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdf
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - 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...
 
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
 
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
 

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

Getting started with Apache Camel - Javagruppen Copenhagen - April 2014

  • 1. Getting Started with Apache Camel Claus Ibsen (@davsclaus) Principal Software Engineer, Red Hat Javagruppen Copenhagen, april 2013 1 PUBLIC PRESENTATION | CLAUS IBSEN
  • 2. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 2 PUBLIC PRESENTATION | CLAUS IBSEN
  • 3. Your Speaker ● Principal Software Engineer at Red Hat ● Apache Camel ● 5 years working with Camel ● Author of Camel in Action book ● Contact ● EMail: cibsen@redhat.com ● Twitter: @davsclaus ● Blog: http://davsclaus.com ● Linkedin: http://www.linkedin.com/in/davsclaus 3 PUBLIC PRESENTATION | CLAUS IBSEN
  • 4. Why the name Camel? 4 PUBLIC PRESENTATION | CLAUS IBSEN
  • 5. Why the name Camel? Because Camel is easy to remember and type ... 5 PUBLIC PRESENTATION | CLAUS IBSEN
  • 6. Why the name Camel? … or the creator used to smoke cigarets! http://camel.apache.org/why-the-name-camel.html 6 PUBLIC PRESENTATION | CLAUS IBSEN
  • 7. Camel's parents 7 PUBLIC PRESENTATION | CLAUS IBSEN
  • 8. Camel's parents James Strachan (creator of Camel) Gregor Hohpe (author of EIP book) 8 PUBLIC PRESENTATION | CLAUS IBSEN
  • 9. The birth of Camel ● First Commit 9 PUBLIC PRESENTATION | CLAUS IBSEN
  • 10. The birth of Camel ● My first Commit 10 PUBLIC PRESENTATION | CLAUS IBSEN
  • 11. The birth of Camel ● First Release ● Apache Camel 1.0 June 2007 http://www.davsclaus.com/2012/05/looking-at-impressive-first-apache.html 11 PUBLIC PRESENTATION | CLAUS IBSEN
  • 12. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 12 PUBLIC PRESENTATION | CLAUS IBSEN
  • 13. What is Apache Camel? ● Quote from the website 13 PUBLIC PRESENTATION | CLAUS IBSEN
  • 14. What is Apache Camel? ● Why do we need integration? ● Critical for your business to integrate ● Why Integration Framework? ● Framework do the heavy lifting ● You can focus on business problem ● Not "reinventing the wheel" 14 PUBLIC PRESENTATION | CLAUS IBSEN
  • 15. What is Apache Camel? ● What is Enterprise Integration Patterns? It's a book 15 PUBLIC PRESENTATION | CLAUS IBSEN
  • 16. What is Apache Camel? ● Enterprise Integration Patterns http://camel.apache.org/eip 16 PUBLIC PRESENTATION | CLAUS IBSEN
  • 17. What is Apache Camel? ● EIP - Content Based Router 17 PUBLIC PRESENTATION | CLAUS IBSEN
  • 18. What is Apache Camel? from newOrder 18 PUBLIC PRESENTATION | CLAUS IBSEN
  • 19. What is Apache Camel? from newOrder choice 19 PUBLIC PRESENTATION | CLAUS IBSEN
  • 20. What is Apache Camel? from newOrder choice when isWidget to widget 20 PUBLIC PRESENTATION | CLAUS IBSEN
  • 21. What is Apache Camel? from newOrder choice when isWidget to widget otherwise to gadget 21 PUBLIC PRESENTATION | CLAUS IBSEN
  • 22. What is Apache Camel? from(newOrder) choice when(isWidget) to(widget) otherwise to(gadget) 22 PUBLIC PRESENTATION | CLAUS IBSEN
  • 23. What is Apache Camel? from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 23 PUBLIC PRESENTATION | CLAUS IBSEN
  • 24. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 24 PUBLIC PRESENTATION | CLAUS IBSEN
  • 25. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 25 PUBLIC PRESENTATION | CLAUS IBSEN
  • 26. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 26 PUBLIC PRESENTATION | CLAUS IBSEN
  • 27. What is Apache Camel? ● Java Code public void configure() throws Exception { Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget) .end(); } 27 PUBLIC PRESENTATION | CLAUS IBSEN
  • 28. What is Apache Camel? ● Java Code import org.apache.camel.Endpoint; import org.apache.camel.Predicate; import org.apache.camel.builder.RouteBuilder; public class MyRoute extends RouteBuilder { public void configure() throws Exception { Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget) .end(); } } 28 PUBLIC PRESENTATION | CLAUS IBSEN
  • 29. What is Apache Camel? ● Camel Java DSL import org.apache.camel.builder.RouteBuilder; public class MyRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:queue:newOrder") .choice() .when(xpath("/order/product = 'widget'")) .to("activemq:queue:widget") .otherwise() .to("activemq:queue:gadget") .end(); } } 29 PUBLIC PRESENTATION | CLAUS IBSEN
  • 30. What is Apache Camel? ● Camel XML DSL <route> <from uri="activemq:queue:newOrder"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 30 PUBLIC PRESENTATION | CLAUS IBSEN
  • 31. What is Apache Camel? use file instead ● Endpoint as URIs <route> <from uri="file:inbox/orders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 31 PUBLIC PRESENTATION | CLAUS IBSEN
  • 32. What is Apache Camel? parameters ● Endpoint as URIs <route> <from uri="file:inbox/orders?delete=true"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 32 PUBLIC PRESENTATION | CLAUS IBSEN
  • 33. What is Apache Camel? ● Camel's Architecture 33 PUBLIC PRESENTATION | CLAUS IBSEN
  • 34. What is Apache Camel? 120+ Components 34 PUBLIC PRESENTATION | CLAUS IBSEN
  • 35. What is Apache Camel? 120+ Components 35 PUBLIC PRESENTATION | CLAUS IBSEN
  • 36. What is Apache Camel? ● Summary ● Integration Framework ● Enterprise Integration Patterns (EIP) ● Routing (using DSL) ● Easy Configuration (endpoint as uri's) ● Payload Agnostic ● No Container Dependency ● A lot of components 36 PUBLIC PRESENTATION | CLAUS IBSEN
  • 37. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Extending Camel ● Q and A 37 PUBLIC PRESENTATION | CLAUS IBSEN
  • 38. A Little Example ● File Copier Example 38 PUBLIC PRESENTATION | CLAUS IBSEN
  • 39. A Little Example ● File Copier Example 39 PUBLIC PRESENTATION | CLAUS IBSEN
  • 40. A Little Example ● File Copier Example 40 PUBLIC PRESENTATION | CLAUS IBSEN
  • 41. A Little Example ● File Copier Example 41 PUBLIC PRESENTATION | CLAUS IBSEN
  • 42. A Little Example ● File Copier Example 42 PUBLIC PRESENTATION | CLAUS IBSEN
  • 43. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 43 PUBLIC PRESENTATION | CLAUS IBSEN
  • 44. Riding Camel ● Downloading Apache Camel ● zip/tarball (approx 14mb) http://camel.apache.org 44 PUBLIC PRESENTATION | CLAUS IBSEN
  • 45. Riding Camel ● Using Command Shell ● Requires: Apache Maven ● From Eclipse 45 PUBLIC PRESENTATION | CLAUS IBSEN
  • 46. Riding Camel ● Console Example ● cd examples/camel-example-console ● mvn compile exec:java 46 PUBLIC PRESENTATION | CLAUS IBSEN
  • 47. Riding Camel ● Twitter Example ● cd examples/camel-example-twitter-websocket ● mvn compile exec:java http://localhost:9090/index.html 47 PUBLIC PRESENTATION | CLAUS IBSEN
  • 48. Riding Camel ● More examples ... ... and further details at website. http://camel.apache.org/examples 48 PUBLIC PRESENTATION | CLAUS IBSEN
  • 49. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 49 PUBLIC PRESENTATION | CLAUS IBSEN
  • 50. What's in the box? 50 PUBLIC PRESENTATION | CLAUS IBSEN
  • 51. What's in the box? ● Enterprise Integration Patterns http://camel.apache.org/eip 51 PUBLIC PRESENTATION | CLAUS IBSEN
  • 52. What's in the box? ● Splitter EIP 52 PUBLIC PRESENTATION | CLAUS IBSEN
  • 53. What is Apache Camel? 120+ Components 53 PUBLIC PRESENTATION | CLAUS IBSEN
  • 54. What is Apache Camel? 19 Data Formats 54 PUBLIC PRESENTATION | CLAUS IBSEN
  • 55. What is Apache Camel? 15 Expression Languages 55 PUBLIC PRESENTATION | CLAUS IBSEN
  • 56. What is Apache Camel? 5+ DSL in multiple languages ● Java DSL ● XML DSL (Spring and OSGi Blueprint) ● Groovy DSL ● Scala DSL ● Kotlin DSL (work in progress) 56 PUBLIC PRESENTATION | CLAUS IBSEN
  • 57. What is Apache Camel? Test Kit ● camel-test camel-test-spring ● camel-test-blueprint camel-testng 57 PUBLIC PRESENTATION | CLAUS IBSEN
  • 58. What is Apache Camel? Management ● JMX ● REST (@deprecated) 58 PUBLIC PRESENTATION | CLAUS IBSEN
  • 59. What is Apache Camel? Tooling – Web console - HawtIO http://hawt.io 59 PUBLIC PRESENTATION | CLAUS IBSEN
  • 60. What is Apache Camel? Tooling – Eclipse Plugin – Fuse IDE http://github.com/fusesource/fuseide 60 PUBLIC PRESENTATION | CLAUS IBSEN
  • 61. What is Apache Camel? Error Handling 61 PUBLIC PRESENTATION | CLAUS IBSEN
  • 62. What is Apache Camel? try .. catch style 62 PUBLIC PRESENTATION | CLAUS IBSEN
  • 63. What is Apache Camel? Dead Letter Channel (EIP style) 63 PUBLIC PRESENTATION | CLAUS IBSEN
  • 64. What is Apache Camel? The Rest ● Interceptors ● Security ● Route Policy ● Type Converters ● Transaction ● Compensation as rollback ● Asynchronous non-blocking routing engine ● Thread management ● Maven Tooling ● ... and much more 64 PUBLIC PRESENTATION | CLAUS IBSEN
  • 65. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Extending Camel ● Q and A 65 PUBLIC PRESENTATION | CLAUS IBSEN
  • 66. Deploying Camel ● Deployment Strategy ● No Container Dependency ● Lightweight & Embeddable ● Deployment Options ● Standalone ● WAR ● Spring ● JEE ● OSGi ● Cloud 66 PUBLIC PRESENTATION | CLAUS IBSEN
  • 67. Camel as a Client ● Java Client Application (no routes) ● Example ● Upload a file to a FTP server 67 PUBLIC PRESENTATION | CLAUS IBSEN
  • 68. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 68 PUBLIC PRESENTATION | CLAUS IBSEN
  • 69. Creating new Camel Projects ● Using Command Shell ● From Eclipse 69 PUBLIC PRESENTATION | CLAUS IBSEN
  • 70. Creating new Camel Projects ● Maven Archetypes 70 PUBLIC PRESENTATION | CLAUS IBSEN
  • 71. Creating new Camel Projects ● camel-archetype-blueprint 71 PUBLIC PRESENTATION | CLAUS IBSEN
  • 72. Creating new Camel Projects ● Importing into Eclipse Existing Maven Project 72 PUBLIC PRESENTATION | CLAUS IBSEN
  • 73. Creating new Camel Projects ● Testing Camel Projects ● ... from inside Eclipse 73 PUBLIC PRESENTATION | CLAUS IBSEN
  • 74. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 74 PUBLIC PRESENTATION | CLAUS IBSEN
  • 75. Where do I get more information? ● Best Article covering what Apache Camel is ● http://java.dzone.com/articles/open-source-integration- apache Link to article from “Getting Started” 75 PUBLIC PRESENTATION | CLAUS IBSEN
  • 76. Where do I get more information? ● Try Camel Examples ● http://camel.apache.org/examples.html ● Read other blogs and articles ● http://camel.apache.org/articles.html ● Use the “search box” on the Camel front page 76 PUBLIC PRESENTATION | CLAUS IBSEN
  • 77. Where do I get more information? ● Use the mailing list / forum ● http://camel.apache.org/mailing-lists.html ● Use stackoverflow ● http://stackoverflow.com/questions/tagged/apache-camel 77 PUBLIC PRESENTATION | CLAUS IBSEN
  • 78. Where do I get more information? ● Buy the Camel in Action book Use code ... camel40 … for 40% discount http://manning.com/ibsen/ 78 PUBLIC PRESENTATION | CLAUS IBSEN
  • 79. Any Questions ? ● Contact ● EMail: cibsen@redhat.com ● Twitter: @davsclaus ● Blog: http://davsclaus.com ● Linkedin: http://www.linkedin.com/in/davsclaus 79 PUBLIC PRESENTATION | CLAUS IBSEN