SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Getting Started with Apache Camel



    Claus Ibsen (@davsclaus)
    Principal Software Engineer, Red Hat
    Javaforum Malmo, march 2013




1                 PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

    ●   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




3                             PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

    ●   Quote from the website




4                         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"




5                               PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

    ●   What is Enterprise Integration Patterns?




                          It's a book

6                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

    ●   Enterprise Integration Patterns




                   http://camel.apache.org/eip

7                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

    ●   EIP - Content Based Router




8                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




    from newOrder




9                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice




10                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice
         when isWidget to widget




11                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




     from newOrder
       choice
         when isWidget to widget
         otherwise to gadget




12                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




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




13                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




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




14                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?




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




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




15                         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);




16                         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);




17                         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();
        }

18                           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();
           }
       }
19                              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();
           }
       }



20                            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>




21                         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>




22                         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>




23                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

 ●   Camel's Architecture




24                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




25                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




26                     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




27                          PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   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



28                      PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




29                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




30                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




31                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




32                     PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example

 ●   File Copier Example




33                     PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

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




34                      PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

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




                                                      http://camel.apache.org




35                        PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Using Command Shell
      ●   Requires: Apache Maven




 ●   From Eclipse




36                       PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Console Example




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

37                     PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   Twitter Example




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



38                     PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel

 ●   More examples ...




     ... and further details at website.

                http://camel.apache.org/examples




39                        PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

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




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




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

 ●   Enterprise Integration Patterns




                http://camel.apache.org/eip

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

 ●   Splitter EIP




43                   PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     120+ Components




44                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     19 Data Formats




45                     PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     15 Expression Languages




46                    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)




47                         PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

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




48                          PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Management
     ●   JMX
     ●   REST




49                PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Tooling – Web console - HawtIO




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

     Tooling – Eclipse Plugin – Fuse IDE




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

     Error Handling




52                    PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     try .. catch style




53                        PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

     Dead Letter Channel (EIP style)




54                      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
55                           PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

 ●   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



56                      PUBLIC PRESENTATION | CLAUS IBSEN
Deploying Camel

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

57                       PUBLIC PRESENTATION | CLAUS IBSEN
Camel as a Client

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




58                          PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

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




59                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Using Command Shell




 ●   From Eclipse




60                   PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Maven Archetypes




61                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   camel-archetype-blueprint




62                     PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Importing into Eclipse




                                                       Existing Maven Project




63                      PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects

 ●   Testing Camel Projects




 ●   ... from inside Eclipse


64                       PUBLIC PRESENTATION | CLAUS IBSEN
Agenda

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




65                      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”




66                          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




67                          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




68                          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/




69                       PUBLIC PRESENTATION | CLAUS IBSEN
Any Questions ?



●    Contact
      ● EMail: cibsen@redhat.com
      ● Twitter: @davsclaus
      ● Blog: http://davsclaus.com




    70                               PUBLIC PRESENTATION | CLAUS IBSEN

Weitere ähnliche Inhalte

Was ist angesagt?

Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
Getting started with Apache Camel - Javagruppen Copenhagen - April 2014Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
Getting started with Apache Camel - Javagruppen Copenhagen - April 2014Claus Ibsen
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and GroovyClaus Ibsen
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelIoan Eugen Stan
 
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 2014Claus Ibsen
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration libraryClaus Ibsen
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Claus Ibsen
 
Integration made easy with Apache Camel
Integration made easy with Apache CamelIntegration made easy with Apache Camel
Integration made easy with Apache CamelRosen Spasov
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus 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 containersClaus Ibsen
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camelprajods
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationClaus Ibsen
 
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 containersClaus Ibsen
 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesJEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesClaus Ibsen
 
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 in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleHenryk Konsek
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React AppAll Things Open
 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and TearsCamel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and TearsBilgin Ibryam
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Matt Raible
 

Was ist angesagt? (20)

Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
Getting started with Apache Camel - Javagruppen Copenhagen - April 2014Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
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
 
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 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
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
 
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
 
Integration made easy with Apache Camel
Integration made easy with Apache CamelIntegration made easy with Apache Camel
Integration made easy with Apache Camel
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
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
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
 
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 - 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
 
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
 
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
 
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 in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whale
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React App
 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and TearsCamel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 

Ähnlich wie Getting Started with Apache Camel - Malmo JUG - March 2013

Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and GroovyGR8Conf
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless worldScott van Kalken
 
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 Practiceaegloff
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesClaus Ibsen
 
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 NomadBram 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 Nalleybuildacloud
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CISimon Bennetts
 
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHow Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHenning Jacobs
 
[k8s] Kubernetes terminology (1).pdf
[k8s] Kubernetes terminology (1).pdf[k8s] Kubernetes terminology (1).pdf
[k8s] Kubernetes terminology (1).pdfFrederik Wouters
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfClaus Ibsen
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelDimitry Pletnikov
 
Using Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleUsing Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleBoris Pavlovic
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Simon Bennetts
 
Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP DevSecCon
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStackPuppet
 
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
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and FriendsYun Zhi Lin
 

Ähnlich wie Getting Started with Apache Camel - Malmo JUG - March 2013 (20)

Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
 
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
 
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
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CI
 
Whats all the FaaS About
Whats all the FaaS AboutWhats all the FaaS About
Whats all the FaaS About
 
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHow Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
 
[k8s] Kubernetes terminology (1).pdf
[k8s] Kubernetes terminology (1).pdf[k8s] Kubernetes terminology (1).pdf
[k8s] Kubernetes terminology (1).pdf
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little Camel
 
Using Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleUsing Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at Scale
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk
 
Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP Simon Bennetts - Automating ZAP
Simon Bennetts - Automating ZAP
 
Pragmatic Swift
Pragmatic SwiftPragmatic Swift
Pragmatic Swift
 
Helm intro
Helm introHelm intro
Helm intro
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
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
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
 

Mehr von Claus Ibsen

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfClaus Ibsen
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelClaus Ibsen
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3Claus Ibsen
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Claus Ibsen
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusClaus Ibsen
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Claus Ibsen
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)Claus Ibsen
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Claus Ibsen
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - CopenhagenClaus Ibsen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - FredericiaClaus Ibsen
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloudClaus Ibsen
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Claus Ibsen
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelClaus Ibsen
 
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 libraryClaus 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 KubernetesClaus 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 boxClaus Ibsen
 

Mehr von Claus Ibsen (17)

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
 
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
 
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
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloud
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
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
 
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
 

Kürzlich hochgeladen

Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Kürzlich hochgeladen (20)

Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

Getting Started with Apache Camel - Malmo JUG - March 2013

  • 1. Getting Started with Apache Camel Claus Ibsen (@davsclaus) Principal Software Engineer, Red Hat Javaforum Malmo, march 2013 1 PUBLIC PRESENTATION | CLAUS IBSEN
  • 2. Agenda ● 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 3 PUBLIC PRESENTATION | CLAUS IBSEN
  • 4. What is Apache Camel? ● Quote from the website 4 PUBLIC PRESENTATION | CLAUS IBSEN
  • 5. 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" 5 PUBLIC PRESENTATION | CLAUS IBSEN
  • 6. What is Apache Camel? ● What is Enterprise Integration Patterns? It's a book 6 PUBLIC PRESENTATION | CLAUS IBSEN
  • 7. What is Apache Camel? ● Enterprise Integration Patterns http://camel.apache.org/eip 7 PUBLIC PRESENTATION | CLAUS IBSEN
  • 8. What is Apache Camel? ● EIP - Content Based Router 8 PUBLIC PRESENTATION | CLAUS IBSEN
  • 9. What is Apache Camel? from newOrder 9 PUBLIC PRESENTATION | CLAUS IBSEN
  • 10. What is Apache Camel? from newOrder choice 10 PUBLIC PRESENTATION | CLAUS IBSEN
  • 11. What is Apache Camel? from newOrder choice when isWidget to widget 11 PUBLIC PRESENTATION | CLAUS IBSEN
  • 12. What is Apache Camel? from newOrder choice when isWidget to widget otherwise to gadget 12 PUBLIC PRESENTATION | CLAUS IBSEN
  • 13. What is Apache Camel? from(newOrder) choice when(isWidget) to(widget) otherwise to(gadget) 13 PUBLIC PRESENTATION | CLAUS IBSEN
  • 14. What is Apache Camel? from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 14 PUBLIC PRESENTATION | CLAUS IBSEN
  • 15. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 15 PUBLIC PRESENTATION | CLAUS IBSEN
  • 16. 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); 16 PUBLIC PRESENTATION | CLAUS IBSEN
  • 17. 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); 17 PUBLIC PRESENTATION | CLAUS IBSEN
  • 18. 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(); } 18 PUBLIC PRESENTATION | CLAUS IBSEN
  • 19. 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(); } } 19 PUBLIC PRESENTATION | CLAUS IBSEN
  • 20. 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(); } } 20 PUBLIC PRESENTATION | CLAUS IBSEN
  • 21. 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> 21 PUBLIC PRESENTATION | CLAUS IBSEN
  • 22. 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> 22 PUBLIC PRESENTATION | CLAUS IBSEN
  • 23. 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> 23 PUBLIC PRESENTATION | CLAUS IBSEN
  • 24. What is Apache Camel? ● Camel's Architecture 24 PUBLIC PRESENTATION | CLAUS IBSEN
  • 25. What is Apache Camel? 120+ Components 25 PUBLIC PRESENTATION | CLAUS IBSEN
  • 26. What is Apache Camel? 120+ Components 26 PUBLIC PRESENTATION | CLAUS IBSEN
  • 27. 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 27 PUBLIC PRESENTATION | CLAUS IBSEN
  • 28. Agenda ● 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 28 PUBLIC PRESENTATION | CLAUS IBSEN
  • 29. A Little Example ● File Copier Example 29 PUBLIC PRESENTATION | CLAUS IBSEN
  • 30. A Little Example ● File Copier Example 30 PUBLIC PRESENTATION | CLAUS IBSEN
  • 31. A Little Example ● File Copier Example 31 PUBLIC PRESENTATION | CLAUS IBSEN
  • 32. A Little Example ● File Copier Example 32 PUBLIC PRESENTATION | CLAUS IBSEN
  • 33. A Little Example ● File Copier Example 33 PUBLIC PRESENTATION | CLAUS IBSEN
  • 34. Agenda ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 34 PUBLIC PRESENTATION | CLAUS IBSEN
  • 35. Riding Camel ● Downloading Apache Camel ● zip/tarball (approx 14mb) http://camel.apache.org 35 PUBLIC PRESENTATION | CLAUS IBSEN
  • 36. Riding Camel ● Using Command Shell ● Requires: Apache Maven ● From Eclipse 36 PUBLIC PRESENTATION | CLAUS IBSEN
  • 37. Riding Camel ● Console Example ● cd examples/camel-example-console ● mvn compile exec:java 37 PUBLIC PRESENTATION | CLAUS IBSEN
  • 38. Riding Camel ● Twitter Example ● cd examples/camel-example-twitter-websocket ● mvn compile exec:java http://localhost:9090/index.html 38 PUBLIC PRESENTATION | CLAUS IBSEN
  • 39. Riding Camel ● More examples ... ... and further details at website. http://camel.apache.org/examples 39 PUBLIC PRESENTATION | CLAUS IBSEN
  • 40. Agenda ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 40 PUBLIC PRESENTATION | CLAUS IBSEN
  • 41. What's in the box? 41 PUBLIC PRESENTATION | CLAUS IBSEN
  • 42. What's in the box? ● Enterprise Integration Patterns http://camel.apache.org/eip 42 PUBLIC PRESENTATION | CLAUS IBSEN
  • 43. What's in the box? ● Splitter EIP 43 PUBLIC PRESENTATION | CLAUS IBSEN
  • 44. What is Apache Camel? 120+ Components 44 PUBLIC PRESENTATION | CLAUS IBSEN
  • 45. What is Apache Camel? 19 Data Formats 45 PUBLIC PRESENTATION | CLAUS IBSEN
  • 46. What is Apache Camel? 15 Expression Languages 46 PUBLIC PRESENTATION | CLAUS IBSEN
  • 47. 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) 47 PUBLIC PRESENTATION | CLAUS IBSEN
  • 48. What is Apache Camel? Test Kit ● camel-test camel-test-spring ● camel-test-blueprint camel-testng 48 PUBLIC PRESENTATION | CLAUS IBSEN
  • 49. What is Apache Camel? Management ● JMX ● REST 49 PUBLIC PRESENTATION | CLAUS IBSEN
  • 50. What is Apache Camel? Tooling – Web console - HawtIO http://hawt.io 50 PUBLIC PRESENTATION | CLAUS IBSEN
  • 51. What is Apache Camel? Tooling – Eclipse Plugin – Fuse IDE http://github.com/fusesource/fuseide 51 PUBLIC PRESENTATION | CLAUS IBSEN
  • 52. What is Apache Camel? Error Handling 52 PUBLIC PRESENTATION | CLAUS IBSEN
  • 53. What is Apache Camel? try .. catch style 53 PUBLIC PRESENTATION | CLAUS IBSEN
  • 54. What is Apache Camel? Dead Letter Channel (EIP style) 54 PUBLIC PRESENTATION | CLAUS IBSEN
  • 55. 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 55 PUBLIC PRESENTATION | CLAUS IBSEN
  • 56. Agenda ● 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 56 PUBLIC PRESENTATION | CLAUS IBSEN
  • 57. Deploying Camel ● Deployment Strategy ● No Container Dependency ● Lightweight & Embeddable ● Deployment Options ● Standalone ● WAR ● Spring ● JEE ● OSGi ● Cloud 57 PUBLIC PRESENTATION | CLAUS IBSEN
  • 58. Camel as a Client ● Java Client Application (no routes) ● Example ● Upload a file to a FTP server 58 PUBLIC PRESENTATION | CLAUS IBSEN
  • 59. Agenda ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 59 PUBLIC PRESENTATION | CLAUS IBSEN
  • 60. Creating new Camel Projects ● Using Command Shell ● From Eclipse 60 PUBLIC PRESENTATION | CLAUS IBSEN
  • 61. Creating new Camel Projects ● Maven Archetypes 61 PUBLIC PRESENTATION | CLAUS IBSEN
  • 62. Creating new Camel Projects ● camel-archetype-blueprint 62 PUBLIC PRESENTATION | CLAUS IBSEN
  • 63. Creating new Camel Projects ● Importing into Eclipse Existing Maven Project 63 PUBLIC PRESENTATION | CLAUS IBSEN
  • 64. Creating new Camel Projects ● Testing Camel Projects ● ... from inside Eclipse 64 PUBLIC PRESENTATION | CLAUS IBSEN
  • 65. Agenda ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● Q and A 65 PUBLIC PRESENTATION | CLAUS IBSEN
  • 66. 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” 66 PUBLIC PRESENTATION | CLAUS IBSEN
  • 67. 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 67 PUBLIC PRESENTATION | CLAUS IBSEN
  • 68. 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 68 PUBLIC PRESENTATION | CLAUS IBSEN
  • 69. Where do I get more information? ● Buy the Camel in Action book Use code ... camel40 … for 40% discount http://manning.com/ibsen/ 69 PUBLIC PRESENTATION | CLAUS IBSEN
  • 70. Any Questions ? ● Contact ● EMail: cibsen@redhat.com ● Twitter: @davsclaus ● Blog: http://davsclaus.com 70 PUBLIC PRESENTATION | CLAUS IBSEN