SlideShare a Scribd company logo
Apache Camel




      Claus Ibsen
      Principal Software Engineer, Progress Software
      June 2010




                        1
Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



          2        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Who is Claus Ibsen?



        Principal Software Engineer at Progress Software
              • Full time Apache Camel hacker
        Apache Camel committer for 2+ years
              • 30 months working with Camel
        Co-author of Camel in Action book
              • Available in Q3 2010
        Contact
              •   cibsen@progress.com
              •   claus.ibsen@gmail.com
              •   http://davsclaus.blogspot.com/
              •   http://twitter.com/davsclaus




          3        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



          4        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

Slides for the 50 min presentation at Camel Day Italy 2021, where Claus Ibsen and Andrea Cosentino had the opporunity to give a more deep dive talk about the journey towards Camel 3, and what we have done to re-architect camel core in v3 to make it awesome for microservices, cloud native, kubernetes, quarkus, graalvm, knative, apache kafka. Camel Day Italy 2021: https://www.meetup.com/it-IT/red-hat-developers-italy/events/275332376/

apache camelquarkus
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014

This session will teach you how to get a good start with Apache Camel. We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files. We will then discuss how you can get started developing with Camel, and how to setup new projects from scratch using Maven and Eclipse tooling. This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy. You will also hear what other features Camel provides out of the box, which can make integration much easier for you. We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities.

integrationeipapache camel
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel

This document discusses Enterprise Integration Patterns (EIPs) using Apache Camel, a Java framework for integration and mediation. It provides an overview of common EIPs like content-based routing, normalization, and the transactional client pattern. It also demonstrates how to implement EIPs like these using the Java and Spring DSLs in Camel. Key features of Camel like components, exchanges, processors and error handling are explained. Tools for working with Camel like Fuse IDE and Hawt.io are also introduced.

eipjavaapache camel
The birth of Apache Camel



              • Camel’s parents




          5        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The birth of Apache Camel



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

              Initial checkin of Camel routing library




        Apache Camel 1.0 released June 2007

        Apache Camel is 3 years old

          6        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The birth of Apache Camel




          7        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The birth of Apache Camel



        My initial commit

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

              Added unit test for mistyped URI




          8        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Microservices with Apache Camel
Microservices with Apache CamelMicroservices with Apache Camel
Microservices with Apache Camel

Apache Camel is a very popular integration library that works very well with microservice architecture. This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer. Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs. We then take a look at what options you have for monitoring and managing your Camel microservices using tooling such as Jolokia, and hawtio web console. The second part of this talk is about running Camel in the cloud. We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how thenfabric8 tooling can make this much easier for the Java developers. At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.

apache camelcamelintegration
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2

2 hour session where I cover what is Apache Camel, latest news on the upcoming Camel v3, and then the main topic of the talk is the new Camel K sub-project for running integrations natively on the cloud with kubernetes. The last part of the talk is about running Camel with GraalVM / Quarkus to archive native compiled binaries that has impressive startup and footprint.

apache camelserverlessknative
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

This presentation will introduce Knative, an open source project that adds serverless capabilities on top of Kubernetes, and present Camel K, a lightweight platform that brings Apache Camel integrations in the serverless world. Camel K allows running Camel routes on top of any Kubernetes cluster, leveraging Knative serverless capabilities such as “scaling to zero”. We will demo how Camel K can connect cloud services or enterprise applications using its 250+ components and how it can intelligently route events within the Knative environment via enterprise integration patterns (EIP). Target Group: Developers, architects and other technical people - a basic understanding of Kubernetes is an advantage

apache camelknativekubernetes
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



          9        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Quote from the web site


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



         10        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        What are Enterprise Integration Patterns?




         11        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        What are Enterprise Integration Patterns?




         12        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

Apache Camel has been the Swiss knife of integrating heterogeneous systems for more than a decade. Claus Ibsen explains how Camel adapts to the newest changes with microservices and cloud computing! Apache Camel integrations written on top of Quarkus start in a matter of milliseconds and consume just a few tens of megabytes of RAM. We will explain the technology and show a demo including the famous Quarkus dev mode. Then you will learn how the outstanding integration capabilities of Apache Camel enrich the serverless architectures based on Knative and CamelK!

apache camelquarkuscamelk
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

This document discusses Docker and how it can be used to deploy Apache Camel applications and microservices. It provides an overview of key Docker concepts like images and containers. It then discusses how to structure a Camel application and split it into Docker containers for the different components. Examples are given of Dockerizing Camel routes that connect to ActiveMQ and MongoDB. The document also recommends using Spring Boot to simplify building and running Camel applications in Docker containers.

Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia

Camel K allows building and deploying Apache Camel integration applications on Kubernetes in about 1 second. It provides a lightweight runtime for Camel on Kubernetes that enables low-code/no-code integration using Camel's Java DSL. Camel K applications can take advantage of serverless capabilities provided by Knative like autoscaling and scaling to zero. Quarkus is a Kubernetes-native Java stack that provides a minimal footprint and container-first experience for building microservices. It works well with Camel/Camel K by enabling native compilation of Camel routes for very fast startup times and low memory usage.

apache camelkubernetesknative
What is Apache Camel



        What are Enterprise Integration Patterns?




                                                          Its a book
         13        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Lets look at one of the patterns




         14        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Use Case




                  ActiveMQ                                WebSphereMQ




         15        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Pattern




         16        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

This document discusses best practices for middleware and integration architecture modernization using Apache Camel. It provides an overview of Apache Camel, including what it is, how it works through routes, and the different Camel projects. It then covers trends in integration architecture like microservices, cloud native, and serverless. Key aspects of Camel K and Camel Quarkus are summarized. The document concludes with a brief discussion of the Camel Kafka Connector and pointers to additional resources.

apache camelkubernetesknative
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine

This document discusses using various technologies on Google App Engine including JIQL, GaeVFS, RESTlets, scheduled tasks, JRuby on Rails, task queues, XMPP, and Clojure. JIQL emulates a relational database on App Engine's Bigtable datastore. GaeVFS provides a virtual filesystem on Bigtable. RESTlets make RESTful web services easy to implement in Java on App Engine. Scheduled tasks allow for background processing via cron jobs. JRuby on Rails provides a way to run Ruby on Rails applications on App Engine. Task queues allow for asynchronous background processing. XMPP enables instant messaging and peer-to-peer applications. Clojure can also be used

javaitcorkconference
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

The so-called experts are saying microservices and containers will change the way we build, maintain, operate, and integrate applications. This talk is intended for Java developers who wants to hear and see how you can develop Java microservices that are ready to run in containers. In this talk we will build a set of Java based Microservices that uses a mix of technologies with Apache Camel, Spring Boot and WildFly Swarm. You will see how we can build small discrete microservices with these Java technologies and build and deploy on the Kubernets container platform. We will discuss practices how to build distributed and fault tolerant microservices using technologies such as Kubernetes Services, Camel EIPs, and Netflixx Hysterix. And the self healing and fault tolerant aspects of the Kubernetes platform is also discussed and demoed when we let the chaos monkeys loose killing containers. This talk is a 50/50 mix between slides and demo. The talk was presented at JDKIO on September 13th 2016.

kubernetesdockeropen source
What is Apache Camel



        Filter Pattern




                   from                                    filter   send to
                     A                                    message     B




         17        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Pattern




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




         18        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Pattern




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




         19        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Route




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




         20        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

This session will teach you how to get a good start with Apache Camel. We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files. We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling. This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy. You will also hear what other features Camel provides out of the box, which can make integration much easier for you. At the end we demonstrate how to build custom components, allowing you to build custom adapters if not already provided by Camel. Before opening up for QA, we will share useful links where you can dive into learning more about Camel.

camelintegrationapache camel
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

Apache Camel has fundamentally changed the way enterprise Java developers think about system-to-system integration by making enterprise integration patterns (EIP) a simple declaration in a lightweight application wrapped and delivered as a single JAR. In this session, we’ll show you how to bring the best practices from the EIP world together with containers, running on top of Kubernetes, and deployed as Spring Boot microservices, which are both cloud-native and cloud-portable. Building and designing cloud-native microservices impacts how we develop. We’ll discuss practices how to build distributed and fault-tolerant microservices with technologies such as Kubernetes Services, Netflix Hystrix, Camel EIP patterns, and Istio. You will see live demos of us killing containers to test fault tolerance, and more.

apache camelkubernetesmicroservices
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

Workshop how to get started coding with Apache Camel. Also shows how to use hawtio and how you can try out fabric8 with the embedded Camel editor.

hawtiointegrationeip
What is Apache Camel



        Filter Route




              isWidget = xpath(“/quote/product = ‘widget’”);

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


         21        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Route

      Endpoint A = endpoint(“activemq:queue:quote”);

      Endpoint B = endpoint(“mq:quote”);

      Predicate isWidget = xpath(“/quote/product = ‘widget’”);


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



         22        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Route - Java DSL



      public void configure() throws Exception {
          Endpoint A = endpoint("activemq:queue:quote");
          Endpoint B = endpoint("mq:quote");
          Predicate isWidget = xpath("/quote/product = ‘widget’");

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




         23        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Filter Route - Java DSL

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

         public class FilterRoute extends RouteBuilder {

              public void configure() throws Exception {
                Endpoint A = endpoint("activemq:queue:quote");
                Endpoint B = endpoint("mq:quote");
                Predicate isWidget = xpath("/quote/product = ‘widget’");

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



         24        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

Van Wilson Senior Consultant with Cardinal Solutions Find more by Van Wilson: https://speakerdeck.com/vjwilson All Things Open October 26-27, 2016 Raleigh, North Carolina

ato2016all things openopen source
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

In this session, we'll discuss: - What’s Apache Camel: An overview of Camel and what you use it for and why you should care. - Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products. - Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors. - Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel. You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors. Finally we bring details of the roadmap for what is coming up in the Camel projects. And after the presentation we have about 30 minutes of QA answering all the questions from the audience.

apache camelintegrationknative
Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE

The talk presented by James Strachan (Red Hat) on the 6th of March 2013 at the London JBoss USer Group event. Visit London JBUG on Meetup http://www.meetup.com/JBoss-User-Group/

What is Apache Camel



        Filter Route - Java DSL

         import org.apache.camel.builder.RouteBuilder;

         public class FilterRoute extends RouteBuilder {

               public void configure() throws Exception {
                 from("activemq:queue:quote")
                   .filter().xpath("/quote/product =‘widget’")
                     .to("mq:quote");
               }
         }




         25        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        IDE Tooling
                                                                    Code
                                                                    Assistance




                                                          JavaDoc




         26        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        IDE Tooling




                                                          Code
                                                          Assistance




         27        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Recap - Concepts of Camel
              •   Enterprise Integration Patterns
              •   Routing
              •   Domain Specific Language (DSL)
              •   Endpoints
              •   URIs
              •   Predicates & Expressions
              •   Components

                         and much more ...

                                                          Simplify Integration




         28        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding

Using apache camel for microservices and integration then deploying and managing on Docker and Kubernetes. When we need to make changes to our app, we can use Fabric8 continuous delivery built on top of Kubernetes and OpenShift.

camelfabric8distributed systems
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk

This document discusses integration in the age of DevOps. It describes how microservices help solve the problem of decoupling services and teams to move quickly at scale. Apache Camel is presented as a solution for integration that allows for reliable and distributed integration through mechanisms like messaging. Kubernetes and Docker are discussed as platforms that help develop and run microservices locally and at scale by providing automation, configuration, isolation and service discovery capabilities.

apache camelintegrationmicroservices
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs

The document discusses microservices and APIs. It covers how microservices optimize for speed by shedding dependencies and having dependencies on demand through services and APIs. It discusses consumer contracts for APIs and service versioning. It also discusses using an API gateway pattern for scalability, security, monitoring and more. It promotes API management for benefits like access control, analytics, and monetization of microservices.

kubernetesmicroservicesapi
What is Apache Camel



        Lets look at the most famous pattern




         29        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Content Based Router




         30        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Content Based Router - Spring XML
        <camelContext>
          <route>
            <from uri="activemq:NewOrders"/>
            <choice>
              <when>
                <xpath>/order/product = 'widget'</xpath>
                <to uri="activemq:Orders.Widgets"/>
              </when>
              <otherwise>
                <to uri="activemq:Orders.Gadgets"/>
              </otherwise>
            </choice>
          </route>
        </camelContext>
         31        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
What is Apache Camel



        Content Based Router - Java DSL


              from("activemq:NewOrders")
                .choice()
                  .when().xpath(“/order/product = 'widget'”)
                    .to(“activemq:Orders.Widget”);
                  .otherwise()
                    .to(“acitvemq:Orders.Gadget”);




         32        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel

This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.

jboss fuseapache camelmicroservices
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO

DevOps and Continuous Delivery slides with Fabric8 (http://fabric8.io), HawtIO (http://hawt.io), Camel, ActiveMQ, Docker Jenkins, etc.

devops continuous delivery fabric8 docker hawtio
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices

10 yrs ago, SOA promised a lot of the same things Microservices promise use today. So where did we go wrong? What makes microservices different? In this talk, we discussed from an architectural view how we went sideways with SOA, why we must embrace things like Domain Driven Design and scaled-out architectures, and how microservices can be built with enterprises in mind. We also cover a step-by-step, in-depth tutorial that covers these concepts.

apache cameljava eeapache kafka
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         33        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
A little example



        Based on community user (Gunnar Hillert)
              • http://hillert.blogspot.com/2009/09/camellos-discovering-apache-
                camel-ii.html
        Goals
              •   1) Pickup files from a directory
              •   2) Make sure we only pickup 3 files per 30 seconds
              •   3) Store into JMS queue
              •   4) Listen on JMS queue
              •   5) And upload file to FTP server




         34        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
A little example



        Goals using Enterprise Integration Patterns




                  1                         2             3      4     5


        Goals
              •   1) Pickup files from a directory
              •   2) Make sure we only pickup 3 files per 30 seconds
              •   3) Store into JMS queue
              •   4) Listen on JMS queue
              •   5) And upload file to FTP server


         35        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
A little example



        Goals using Enterprise Integration Patterns




         from                     throttle                to   from    to
        Goals
              •   1) Pickup files from a directory
              •   2) Make sure we only pickup 3 files per 30 seconds
              •   3) Store into JMS queue
              •   4) Listen on JMS queue
              •   5) And upload file to FTP server


         36        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC

Christian Posta is a principal middleware specialist and architect who has worked with large microservices architectures. He discusses why companies are moving to microservices and cloud platforms like Kubernetes and OpenShift. He covers characteristics of microservices like small autonomous teams and decentralized decision making. Posta also discusses breaking applications into independent services, shedding dependencies between teams, and using contracts and APIs for communication between services.

microservicesdistributed systemspromise theory
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data

Microservices architecture is a very powerful way to build scalable systems optimized for speed of change. To do this, we need to build independent, autonomous services which by definition tend to minimize dependencies on other systems. One of the tenants of microservices, and a way to minimize dependencies, is “a service should own its own database”. Unfortunately this is a lot easier said than done. Why? Because: your data. We’ve been dealing with data in information systems for 5 decades so isn’t this a solved problem? Yes and no. A lot of the lessons learned are still very relevant. Traditionally, we application developers have accepted the practice of using relational databases and relying on all of their safety guarantees without question. But as we build services architectures that span more than one database (by design, as with microservices), things get harder. If data about a customer changes in one database, how do we reconcile that with other databases (especially where the data storage may be heterogenous?). For developers focused on the traditional enterprise, not only do we have to try to build fast-changing systems that are surrounded by legacy systems, the domains (finance, insurance, retail, etc) are incredibly complicated. Just copying with Netflix does for microservices may or may not be useful. So how do we develop and reason about the boundaries in our system to reduce complexity in the domain? In this talk, we’ll explore these problems and see how Domain Driven Design helps grapple with the domain complexity. We’ll see how DDD concepts like Entities and Aggregates help reason about boundaries based on use cases and how transactions are affected. Once we can identify our transactional boundaries we can more carefully adjust our needs from the CAP theorem to scale out and achieve truly autonomous systems with strictly ordered eventual consistency. We’ll see how technologies like Apache Kafka, Apache Camel and Debezium.io can help build the backbone for these types of systems. We’ll even explore the details of a working example that brings all of this together.

domain driven designspring bootdistributed systems
A Microservice Journey
A Microservice JourneyA Microservice Journey
A Microservice Journey

The document discusses Christian Posta's journey with microservices architectures. It begins by explaining why organizations are moving to microservices and defines microservices. It then covers related topics like cloud platforms, container technologies like Kubernetes and OpenShift, benefits and drawbacks of microservices, and tools for developing microservices like Docker, Kubernetes, OpenShift, and Camel.

microservicesspring bootopenshift
A little example



        Camel DSL in XML
        <camelContext>
          <route>
            <from uri="file:camellos/inbox?move=.done"/>
            <throttle maximumRequestsPerPeriod="3”
                       timePeriodMillis="30000”>
              <to uri="activemq:queue:camellos"/>
            </throttle>
          </route>
          <route>
            <from uri="activemq:queue:camellos"/>
            <to uri="ftp://admin:secret@localhost:3333"/>
          </route>
        </camelContext>

         37        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         38        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Highlights of whats included in Camel




         39        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        70+ Components
                          activemq             crypto       flatpack          irc           ldap

                    activemq-journal             cxf      freemarker      javaspace   mail/imap/pop3

                            amqp                cxfrs     ftp/ftps/sftp      jbi          mina

                            atom               dataset        gae            jcr          mock

                            bean                direct        hdfs          jdbc           msv

                        bean validation         esper      hibernate        jetty         nagios

                           browse               event         hl7           jms           netty

                            cache               exec          http           jpa           nmr

                           cometd                file         ibatis        jt/400         printer



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

         40        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction

This webinar introduces Apache Camel's large range of components for connectivity and protocol support, and how the 50+ patterns create a powerful toolbox that lets you build integration solutions "Lego style". This webinar will introduce you to the Camel community and why it is so important for any serious open source project to have a thriving community. Speaker: Claus Ibsen - Camel PMC member and top committer

camelintegrationwebinar
Apache Camel
Apache CamelApache Camel
Apache Camel

Les EIPs (Enterprise Integration Patterns) sont devenues un standard de fait pour décrire les scénarios d’intégration et de messaging. Apache Camel a été conçu en vue de supporter complètement ces modèle. Grâce a ses langages dédiés (DSL Java, Xml, Scala ..), Camel rends les scénarios d’intégration les plus complexes très simples a implémenter. Cette présentation vous donnera un aperçu de Camel et beaucoup de raisons d’ajouter ce projet dans votre boîte à outils.

genevajug apache camel jug geneve
Enterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache CamelEnterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache Camel

This document provides an overview and introduction to Apache Camel. It discusses that Apache Camel is an open source integration framework that is based on known enterprise integration patterns. It describes how Camel implements common integration patterns like the filter pattern through a Java domain specific language (DSL). The presentation then demonstrates how to define a simple filter route in Camel's Java DSL that filters messages from one endpoint to another based on an XPath predicate.

javadayrigaapache camel
Whats included in the box?



        70+ Components
                        properties             scalate            stream        xslt

                          quartz                seda          string-template   ejb

                         quickfix               servlet             test

                            ref               smooks               timer

                          restlet               smpp            validation

                           rmi                  snmp             velocity

                           rnc           spring-integration         vm

                           rng             spring-security        xmpp

                           rss                   sql              xquery



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

         41        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        18 Data Formats
                                                     bindy       protobuf
                                                    castor      serialization
                                                          csv      soap
                                                    crypto      tidy markup
                                                  flatpack       xml beans
                                                      gzip      xml security
                                                          hl7    xstream
                                                      jaxb          zip
                                                      json         dozer

                                   http://camel.apache.org/data-format.html

         42        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Data Format



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




         43        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Predicates & Expressions


                                                      BeanShell      PHP
                                                            EL      Python
                                                          Groovy     Ruby
                                                     JavaScript     Simple
                                                          JSR 223    SQL
                                                          OGNL      XPath
                                                           MVEL     XQuery

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


         44        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud

The document discusses considerations for building application architectures for cloud computing. It outlines some benefits and drawbacks of moving applications to the cloud. It also discusses components needed for cloud applications, such as web UIs, agile scaling, live upgrades, and using services like Amazon S3, SimpleDB, and EC2. It proposes an "Apache Cloud Computing Edition" with technologies like Hadoop and MapReduce and addresses needs like configuration, resource management, and testing in the cloud.

apacheapacheconhadoop
iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008

This document discusses how to use FUSE to accelerate iPhone web development by generating JavaScript code to access SOAP/HTTP web services from the iPhone. It provides an agenda that discusses why this is important, demonstrates code examples before and after using FUSE, shows the service interface, and summarizes how to generate the code. The demo shows invoking operations from a sample greeter service with simplified JavaScript code instead of manual XML handling. Resources and next steps are also provided.

soapweb servicemobile phone
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009

This document discusses RESTful services and distributed OSGi. It provides an introduction to OSGi and REST, explaining how OSGi bundles work and the key concepts of REST interfaces. It describes how services can be exposed from an OSGi container to REST, and how REST services can be consumed from OSGi. Distributed OSGi allows remote invocations between OSGi containers. The document discusses challenges in making distributed OSGi and REST work together seamlessly and potential next steps.

restsoaosgi
Whats included in the box?



        DSL in 3 programming languages
                                                                                   Java
              XML
                                                          from(A).filter(isWidget).to(B);
        <route>
          <from ref="A"/>
          <filter>
            <xpath>/quote/product = ‘widget’</xpath>
            <to ref="B"/>
          </filter>
        </route>
                              from(A) filter(isWidget) --> B

                                                                  Scala



         45        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Type Converters




                                      INFO DefaultTypeConverter
                                      - Loaded 148 type converters

         46        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Custom Type Converters
                 @Converter
                 public class MyTypeConverter {
                   @Converter
                   public String toString(MyOrder order) {
                     StringBuilder sb = new StringBuilder();
                     ...
                     return sb.toString();
                   }
                 }
                          # META-INF/services/org/apache/camel/TypeConverter
                          com.acme.converters
                                                          META-INF file in the JAR
         47        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



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

                   more to come in future releases ...




         48        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011

Claus Ibsen presented Apache Camel at the JEEConf in Kiew, Ukraine, in may 2011. We start from the beginning, ‘Why’ and ‘How’ Apache Camel got started. Then we see the influence of the Enterprise Integration Patterns (EIP) has upon Apache Camel. Showing how this applies in practice with easy to understand examples, highlighting the simplicity and power of Apache Camel. Integrating becomes literally as simple as building routes in ‘lego style’ by wiring together EIP patterns, processes and transports. This is done using the Camel DSL, which comes in multiple flavors such as Java, XML, Groovy and Scala. We then give you an overview of the other features Apache Camel provides out of the box and as well which option you have for running your Apache Camel applications. After this we cover 3 live demos, showing Camel using ActiveMQ, Groovy, Eclipse and Fuse IDE.

camelintegrationeip
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot

This document provides an introduction to Apache Camel with Spring Boot. It discusses the architecture of Apache Camel including the routing engine, processor, components and Camel context. It explains that Apache Camel is an integration framework that allows defining routing rules and connecting different systems using a common API. The document outlines reasons to use Apache Camel like routing, extensive components, easy configuration and integration patterns. It also provides an example of how to integrate Apache Camel with Spring Boot and build routes in Apache Camel.

apache camelspring bootjava
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot

This document provides an introduction to Apache Camel with Spring Boot. It discusses the architecture of Apache Camel including the routing engine, processor, components and Camel context. It explains that Apache Camel is an integration framework that allows defining routing rules and connecting different systems using a common API. The document outlines reasons to use Apache Camel such as routing, extensive components, easy configuration and integration patterns. It also provides an example of how to build routes with Apache Camel and integrate it with Spring Boot.

apache camelspring bootjava
Whats included in the box?



        Bean as Message Translator




         49        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Bean as Message Translator
               from("activemq:Incoming”).
                 beanRef("myBeanName”, “someMethod").
                   to("activemq:Outgoing");



      public class Foo {

            public String someMethod(String name) {
              return “Hello “ + name;
            }
      }


          50       © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Bean Parameter Binding with XPath


       public class Foo {

              public String processOrder(
                String orderAsXml,
                @XPath(”/order/@id”) String oid,
                @Header(”JMSCorrelationID”) String cid) {
                ...
              }
       }




         51        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Bean Parameter Binding with Languages

      public class Foo {

              public void processOrder(
                MyOrder order,
                @Simple(”${body.customer.gold}”) boolean gold) {
                ...
              }
      }

                        MyOrder
                        - id                              Customer
                        - customer                        - gold
                                                          - street
                                                          - zip
         52        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01

This document provides an introduction to Apache Camel, an open source integration framework. It discusses how Camel hides integration complexity and focuses on business logic. It provides examples of content-based routing in XML and Java DSL. It also outlines the various components, data formats, languages and deployment options supported by Camel.

Oracle china campus recruitment ben xu
Oracle china campus recruitment ben xuOracle china campus recruitment ben xu
Oracle china campus recruitment ben xu

This is the presentation I made of HR hiring events at ECNU university in Shanghai. Please note that we would like to recruit talent engineer, from any place :)

Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camel

If you are starting with Apache Camel as a developer, these slides will help you. These slides has some thoughts on how a new developer can approach the features of camel and build applications on top of it.

camelapache camelsoa
Whats included in the box?



        Sending message

                public class Foo {
                  @Produce(uri="activemq:foo.bar")
                  ProducerTemplate producer;

                        public void doSomething() {
                          if (whatever) {
                            producer.sendBody("<hello>world!</hello>");
                          }
                        }
                }



         53         © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Sending message w/ interface




                             public interface EchoService {
                               String sayEcho(String echo);
                             }




         54        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Sending message w/ interface


               public class Echo {
                 @Produce(uri="http://somewhere/echo")
                 EchoService echo;

                        public void doTheEcho() {
                          String reply = echo.sayEcho("Hi");
                        }
               }



         55        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Sending message w/ no Camel API
              <proxy id="echo"
                     serviceInterface="com...EchoService"
                     serviceUrl="http://somewhere/echo"/>



               public class Echo {
                 @Autowired
                 EchoService echo;

                        public void doTheEcho() {
                          String reply = echo.sayEcho("Hi");
                        }
               }

         56        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterLeverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and Twitter

The document discusses leveraging enterprise integration patterns with Apache Camel and Twitter. It begins with an introduction of the speaker and an agenda. It then covers enterprise integration patterns, Apache Camel framework, social media/data and processing it, and the Camel Twitter component. It demonstrates searching for pictures of Batman on Twitter using Camel and Coherence components.

camelcoherencejavaone
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo

The document introduces Apache Apollo, a new message broker project that was branched from ActiveMQ. It was created to better utilize high core counts on modern processors. The key components discussed are HawtDispatch, the reactor-based threading model; connectivity support for STOMP, MQTT, JMS, and OpenWire; and the use of LevelDB for storage. Future areas of development are also mentioned.

messagingjavascala
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany

This document discusses developing composite applications for the cloud using Apache Tuscany. It provides an overview of cloud computing goals and challenges, and how the Service Component Architecture (SCA) aims to address these challenges. Specifically, SCA abstracts out technical APIs and protocols to allow focusing on business logic. Apache Tuscany is an open source SCA implementation that can help assemble, wire, and rewire components in the cloud. The document demonstrates rewiring components in a Tuscany application deployed to Amazon EC2.

Whats included in the box?



        The EJB MessageDrivenBean in Camel



                        public class Foo {

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




         57        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



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




         58        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?


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




                                           Inline RouteBuilder



         59        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Managed
              • JMX API
              • REST API




         60        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix

BeJug presentation of Apache ServiceMix with Camel, ActiveMQ, CXF and target architectures on ESB platform

cameljavacxf
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...

Microservices are being deployed by many Java Hipsters. If you're working with a large team that needs different release cycles for product components, microservices can be a blessing. If you're working at your VW Restoration Shop and running its online store with your own software, having five services to manage and deploy can be a real pain. This presentation will show you how to use JHipster to create Angular + Spring Boot apps with a unified front-end. You will leave with the know-how to create your own excellent apps! Related blog posts: * Java Microservices with Spring Boot and Spring Cloud: https://developer.okta.com/blog/2019/05/22/java-microservices-spring-boot-spring-cloud * Java Microservices with Spring Cloud Config and JHipster: https://developer.okta.com/blog/2019/05/23/java-microservices-spring-cloud-config * Secure Reactive Microservices with Spring Cloud Gateway: https://developer.okta.com/blog/2019/08/28/reactive-microservices-spring-cloud-gateway

jhipstermicroservicesoauth
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

Design your integration flows using Camel and JBang for a better developer experience, and make it easily production grade using Quarkus. Claus Ibsen, Apache Camel lead & Senior Principal Software Engineer, Red Hat

apache camelintegrationopen source
Whats included in the box?



        Web console
              • REST API




         61        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Whats included in the box?



        Maven tooling
              • Maven Archetypes to create new projects

                    mvn archetype:generate 
                      -DarchetypeGroupId=org.apache.camel.archetypes 
                      -DarchetypeArtifactId=camel-archetype-war 
                      -DarchetypeVersion=2.3.0




              • Maven goals to run project
                   - mvn camel:run
                   - mvn jetty:run




         62        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         63        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Running Camel



        Riding the Camel




         64        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...

Apache camel framework and its details

apache camel
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers

Apache Camel is an open source framework for integrating applications and systems. It uses an declarative domain-specific language to configure routing and mediation rules. Components in Camel act as endpoint factories to interact with external systems using different protocols. Routes define the application logic and flow using the Java DSL or XML definitions. Camel provides numerous components out of the box and also allows custom components to be created.

messagingnotificationexchange
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf

Camel CLI (Camel JBang) provides an easy way to try Apache Camel without extensive configuration. It allows installing Camel dependencies with jbang, developing and running Camel integrations locally, and exporting projects to runtimes like Quarkus. Current features include dependency management, running Camel DSLs, hot reloading, and exporting to Spring Boot. Future plans include managing multiple integrations, improved health checks, and running on additional runtimes. Camel JBang aims to lower the barrier to experimenting with Camel.

apache camelquarkus
Running Camel



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


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




         65        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Running Camel



        Lightweight
        Embeddable
        Known Deployment Options
              •   Standalone Java Application             Known Containers
              •   Web Application                         Apache ServiceMix
                                                          Apache ActiveMQ
              •   J2EE Application
                                                          Apache Tomcat
              •   JBI                                     Jetty
              •   OSGi                                    JBoss
                                                          IBM WebSphere
              •   Google App Engine                       BEA WebLogic
              •   Java Web Start                          Oracle OC4j
              •   Spring Application                      GAE
                                                          ... others




         66        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         67        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The Camel Community



        Camel website
              • 40% increase (comparing last two 6 month periods)
              • 2000-2500 visits per weekday

        High activity on mailing list




                                                          http://old.nabble.com/



         68        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

Join this webinar to learn what’s new in Camel 3 and about Camel projects: - Latest features in Camel 3 - Quick demos of Camel 3, Camel #Quarkus, #CamelK, and Camel Kafka Connector - Present insights into what's coming next

apache camelcamelkquarkus
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...

In this session, we'll focus on: Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products. Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors. Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel. You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors. Finally we bring details of the roadmap for what is coming up in the Camel projects.

apache camelknativequarkus
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

In this session, we will explore key challenges with function interactions and coordination, addressing these problems using Enterprise Integration Patterns (EIP) and modern approaches with the latest innovations from the Apache Camel community: Apache Camel is the Swiss army knife of integration, and the most powerful integration framework. In this session you will hear about the latest features in the brand new 3rd generation. Camel K, is a lightweight integration platform that enables Enterprise Integration Patterns to be used natively on any Kubernetes cluster. When used in combination with Knative, a framework that adds serverless building blocks to Kubernetes, and the subatomic execution environment of Quarkus, Camel K can mix serverless features such as auto-scaling, scaling to zero, and event-based communication with the outstanding integration capabilities of Apache Camel. - Apache Camel 3 - Camel K - Camel Quarkus We will show how Camel K works. We’ll also use examples to demonstrate how Camel K makes it easier to connect to cloud services or enterprise applications using some of the 300 components that Camel provides.

apache camelknativequarkus
The Camel Community



        High activity on mailing list (cont.)




                                                          http://markmail.org/

         69        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The Camel Community



        20 committers

        High commit activity




                                                          http://markmail.org/

         70        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The Camel Community



        JIRA tickets

                                                     Total            2795

                                                    Open            154 (6%)

                                                Resolved          2641 (94%)

                                                    Bugs          11 (7% open)

                                              Oldest Bug          June/29/09

                                                          June 8th 2010



         71        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The Camel Community



        A lot in each new release

                                      Release              Date      Tickets

                                     Camel 2.0            Aug 2009    760

                                     Camel 2.1            Dec 2009    303

                                     Camel 2.2            Feb 2010    180

                                     Camel 2.3            May 2010    273




         72        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

Camel K is a lightweight integration platform based on Apache Camel that is optimized to run on Kubernetes and Knative. It allows developers to write integration logic using the Apache Camel Domain Specific Language and deploy it to Kubernetes with a single command. Camel K runs the integration as microservices on Kubernetes and handles scaling and management of the integration runtime. It aims to provide a serverless experience for building and running integrations in cloud-native environments.

apache camelknativeserverless
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 is the leading open source integration framework, which has been around for over a decade. In this talk we will look back in history, to understand how the integration landscape has evolved from EAI, SOA, and ESB architectures up to microservices, and now with modern serverless and cloud native platforms. Apache Camel has been along for the ride. And we will look to the future and see how the latest release v3 of Apache Camel, is aimed for running modern cloud native workloads with Camel K. In this talk you will: Learn from history software integration, and why you should rely on existing, proven fully featured integration frameworks instead of rolling out your own DIY solutions. See how software integration is (still) important in today’s modern architectures and what role does Camel have in the new cloud native world. What is new and noteworthy in Apache Camel version 3

apache camelintegrationmicroservices
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

Apache Camel has fundamentally changed the way Java developers build system-to-system integrations by using enterprise integration patterns (EIP) with modern microservice architectures. In this session, we’ll show you best practices with Camel and EIPs, in the world of Spring Boot microservices running on Kubernetes. We'll also discuss practices how to build truly cloud-native distributed and fault-tolerant microservices and we’ll introduce the upcoming Camel 3.0 release, which includes serverless capabilities via Camel K. This talk is a mix with slides and live demos.

apache camelkubernetesintegration
The Camel Community



        Contributors
              • 6 new contributed components in Camel 2.3


        Contributor --> Committer



                                       meritocracy

         73        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
The Camel Community



        3rd party integrating Camel
              •   Apache ServiceMix
              •   Apache ActiveMQ
              •   Apache James                            In Progress
              •   OpenESB                                 • Drools
              •   Progress Actional Diagnostics           • Smooks
              •   FuseHQ                                  • Doozer
              •   Open eHealth Integration Platform       • JBossESB
              •   Grails Camel Plugin
              •   Play Framework
              •   Akka
              •   Scalate



         74        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         75        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Some highlights of Apache Camel 2.3
              •   Overhauled Aggregator EIP
              •   Easier thread pool configuration
              •   Properties component
              •   <routeContext> in Spring XML
              •   10+ new components




         76        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloud

The document provides an overview and summary of a presentation titled "Camel riders in the cloud" given at Red Hat DevNation Live in March 2018. The presenter is a senior principal software engineer at Red Hat and long-time committer to the Apache Camel project. The presentation discusses how Apache Camel can be used for distributed integration in microservices and containerized architectures running in the cloud. It outlines best practices for running Camel in containers, including keeping Camel components small, stateless, and using configuration management. Fault tolerance, health checks, Enterprise Integration Patterns, and distributed tracing are also covered.

apache camelkubernetescloud
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...

How to get started developing Camel microservices (or any Java technology for that matter) on a local Kubernetes cluster from zero to deployment. As a Java developer it may be daunting to know how to get started how to develop container applications that runs on Kubernetes cluster. Using minikube its very easy to run a local cluster and with the help of fabric8 tooling its even easier to install and run using familiar tools like Maven. In this talk we will build a set of Apache Camel and Java based Microservices that uses Spring Boot and WildFly Swarm. With the help of fabric8 maven tooling you will see how to build, deploy, and run your Java projects on a Kubernetes cluster (local or remote). And even live debugging is easy to do as well. We will discuss practices how to build distributed and fault tolerant microservices using technologies such as Kubernetes Services, Netflix Hysterix, and Camel EIP patterns for fault tolerance. In the talk you will also hear about related open source projects where you can go explore more such as fabric8, openshift.io, istio, etc. This presentation is a 50/50 mix between slides and demo.

kubernetesopenshiftapache camel
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel

We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports. You will also hear what other features Camel provides out of the box, which can make integration much easier for you. We look into web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.

apache camelopen sourceintegration
Where are we today?



        Overhauled Aggregator EIP
              • 5 independent completion conditions
                   -    size
                   -    timeout
                   -    interval
                   -    predicate
                   -    batch consumer
              • Parallel publishing
              • Persistent
                                                          http://hawtdb.fusesource.org/
              • Transactional




         77        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Overhauled Aggregator EIP




         78        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Overhauled Aggregator EIP




                                                          X
         79        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Overhauled Aggregator EIP




         80        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

This presentation will demonstrate to developers involved with integration how the Apache Camel project can make your life much easier. We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports. You will hear how Apache Camel is related Enterprise Integration Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel. You will also hear what other features Camel provides out of the box, which can make integration much easier for you.

integrationapache cameleip
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library

We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports. You will hear how Apache Camel is related Enterprise Integration Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel. You will also hear what other features Camel provides out of the box, which can make integration much easier for you. We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making. This talk was presented at JDKIO on September 13th 2016.

apache camelintegrationopen source
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers

Developing Java based microservices ready for the world of containers The so-called experts are saying microservices and containers will change the way we build, maintain, operate, and integrate applications. This talk is intended for Java developers who wants to hear and see how you can develop Java microservices that are ready to run in containers. In this talk we will build a set of Java based Microservices that uses a mix of technologies with: - Spring Boot with Apache Camel - Apache Tomcat with Apache Camel You will see how we can build small discrete microservices with these Java technologies and build and deploy on the Kubernets/OpenShift3 container platform. We will discuss practices how to build distributed and fault tolerant microservices using technologies such as Kubernetes Services, Camel EIPs, Netflixx Hysterix, and Ribbon. We will use Zipkin service tracing across all four Java based microservices to provide a visualization of timings and help highlight latency problems in our mesh of microservices. And the self healing and fault tolerant aspects of the Kubernetes/OpenShift3 platform is also discussed and demoed when we let the chaos monkeys loose killing containers. This talk is a 50/50 mix between slides and demo.

dockerapache camelkubernetes
Where are we today?



        Easier thread pool configuration

                              EIPs
                                                                       Background
                                                                         Tasks
                                                             Thread
                                                              Pools




                                                          Components

         81        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Easier thread pool configuration
                                                                     Background
                              EIPs
                                                                       Tasks

                                                          Executor
                                                          Service
                                                          Strategy
                                                                       Thread
                                                                        Pools
                                         Components


         82        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Easier thread pool configuration
        ExecutorServiceStrategy
              •   API for creating and lookup thread pools
              •   Consistent thread names
              •   Register pools with JMX
              •   Handle lifecycle (shutdown)




                                          Easier for Component writers



         83        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        Easier thread pool configuration
        ThreadPoolProfile
              • Template defining pool settings
              • 1 default profile
              • 0..n custom profiles

                          <threadPoolProfile id="fooProfile"
                           poolSize="20" maxPoolSize="50"
                           maxQueueSize="200"/>



                                                 Easier for end users

         84        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

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

This document discusses microservices with Apache Camel and fabric8 on Kubernetes. It begins with a quick Apache Camel demo of a Twitter search application built with Camel. It then provides an overview of Kubernetes and fabric8, including key concepts like pods, replication controllers, services, and labels. The remainder discusses developing and deploying Java microservices to Kubernetes using Camel, CDI, fabric8, and the OpenShift CLI for tasks like deployment, scaling, and viewing logs.

apache cameldockerfabric8
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy

Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages. In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows. You will also learn how to build a new Camel and Groovy app from scratch from a live demo. And we also touch how you can use Camel from grails using the grails-camel plugin. I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities. This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.

hawtiointegrationopen source
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition

The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.

Where are we today?



        Properties Component                             Properties
                                                          Component
                                                                       File

                        {{key}}

                        <from uri=“jms:queue:{{inbox}}”/>
                        <to uri=“bean:validateOrder”/>




         85        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        <routeContext> in Spring XML
              • Re-usable route templates (in separate Spring XML files)


                                            <routeContext id="myCoolRoutes">
                                                 <route id="cool">
                                                    <from uri="direct:start"/>
                                                    <to uri="mock:result"/>
                                                </route>                  myCoolRoutes.xml
                                            </routeContext>


          <import resource="myCoolRoutes.xml"/>
          <camelContext>
              <routeContextRef ref="myCoolRoutes"/>
          </camelContext>
         86        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Where are we today?



        10+ new components
              •   Properties
              •   Nagios
              •   Netty
              •   Exec
              •   JSR-303 bean validator
              •   Spring Security
              •   Java Cryptographic Extension
              •   OAuth and Google Login to GAE
              •   Eclipse RCP
              •   SOAP (JAXB and JAX-WS)




         87        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         88        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides

If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights. During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to: - Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value - Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems - Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors - Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported - Look Ahead: Gain insights into where FME is headed with coordinate systems in the future Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!

Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers

The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era. Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.

programmingcodingcivil engineering
Where are we going tomorrow?



        Roadmap for Apache Camel 2.4
        The major targets
              •   Asynchronous routing engine
              •   OSGi improvements (blueprint etc.)
              •   Security in DSL
              •   Apache ODE component (BPEL) ?
        Schedule
              • GA in Q3 2010




         89        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Agenda



             Who is Claus Ibsen?
             The birth of Apache Camel
             What is Apache Camel
             A little example
             Whats included in the box?
             Running Camel
             The Camel Community
             Where are we today?
             Where are we going tomorrow?
             Q and A



         90        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Q and A



        Where do I get more information?
                   - Camel website: http://camel.apache.org
                   - FUSE website: http://fusesource.com
                   - Camel in Action book: http://manning.com/ibsen




         91        © 2009 Progress Software Corporation

Tuesday, June 8, 2010
Q and A




                                                          ?
         92        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

Recommended for you

20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024

Everything that I found interesting about engineering leadership last month

quantumfaxmachine
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing

Invited Remote Lecture to SC21 The International Conference for High Performance Computing, Networking, Storage, and Analysis St. Louis, Missouri November 18, 2021

distributed supercomputerdistributed machine learning
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf

In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.

social media hackerfacebook hackerhire a instagram hacker
93        © 2009 Progress Software Corporation

Tuesday, June 8, 2010

More Related Content

What's hot

Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
prajods
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
Claus Ibsen
 
Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013
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
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Claus Ibsen
 
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
 
Microservices with Apache Camel
Microservices with Apache CamelMicroservices with Apache Camel
Microservices with Apache Camel
Claus Ibsen
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
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
 
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
 
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
Henryk Konsek
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
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
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
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
 
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
 
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
 
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
 
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
All Things Open
 
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
 

What's hot (20)

Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013
 
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
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
Microservices with Apache Camel
Microservices with Apache CamelMicroservices with Apache Camel
Microservices with Apache Camel
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
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
 
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
 
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
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
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...
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
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
 
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
 
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
 
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
 
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
 
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
 

Viewers also liked

Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE
JBUG London
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
Christian Posta
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
Christian Posta
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
Christian Posta
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
Christian Posta
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Christian Posta
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
Christian Posta
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
Christian Posta
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
Christian Posta
 
A Microservice Journey
A Microservice JourneyA Microservice Journey
A Microservice Journey
Christian Posta
 

Viewers also liked (10)

Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
 
A Microservice Journey
A Microservice JourneyA Microservice Journey
A Microservice Journey
 

Similar to Apache Camel - FUSE community day London 2010 presentation

Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
Claus Ibsen
 
Apache Camel
Apache CamelApache Camel
Apache Camel
GenevaJUG
 
Enterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache CamelEnterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache Camel
Dmitry Buzdin
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
Steve Loughran
 
iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008
Roland Tritsch
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Roland Tritsch
 
Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011
Claus Ibsen
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
Knoldus Inc.
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
Knoldus Inc.
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01
dheeraj kumar
 
Oracle china campus recruitment ben xu
Oracle china campus recruitment ben xuOracle china campus recruitment ben xu
Oracle china campus recruitment ben xu
Ben Xu
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camel
gnanagurus
 
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterLeverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Bruno Borges
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
dejanb
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
Jean-Sebastien Delfino
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
Charles Moulliard
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Matt Raible
 
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
 
Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...
chetansharma041
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
jeetendra mandal
 

Similar to Apache Camel - FUSE community day London 2010 presentation (20)

Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Enterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache CamelEnterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache Camel
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
 
iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
 
Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
 
Apache Camel with Spring boot
Apache Camel with Spring bootApache Camel with Spring boot
Apache Camel with Spring boot
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01
 
Oracle china campus recruitment ben xu
Oracle china campus recruitment ben xuOracle china campus recruitment ben xu
Oracle china campus recruitment ben xu
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camel
 
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterLeverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
 
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
 
Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...Apache Camel framework Presentation and selection of apache camel for various...
Apache Camel framework Presentation and selection of apache camel for various...
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
 

More from Claus Ibsen

Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
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
 
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
 
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
 
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
 
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
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
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
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
Claus Ibsen
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
Claus Ibsen
 
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
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
Claus Ibsen
 

More from Claus Ibsen (15)

Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
 
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...
 
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)
 
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
 
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
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
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
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 

Recently uploaded

DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 

Recently uploaded (20)

DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 

Apache Camel - FUSE community day London 2010 presentation

  • 1. Apache Camel Claus Ibsen Principal Software Engineer, Progress Software June 2010 1 Tuesday, June 8, 2010
  • 2. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 2 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 3. Who is Claus Ibsen?  Principal Software Engineer at Progress Software • Full time Apache Camel hacker  Apache Camel committer for 2+ years • 30 months working with Camel  Co-author of Camel in Action book • Available in Q3 2010  Contact • cibsen@progress.com • claus.ibsen@gmail.com • http://davsclaus.blogspot.com/ • http://twitter.com/davsclaus 3 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 4. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 4 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 5. The birth of Apache Camel • Camel’s parents 5 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 6. The birth of Apache Camel  Initial Commit Log r519901 | jstrachan | 2007-03-19 11:54:57 +0100 (Mon, 19 Mar 2007) | 1 line Initial checkin of Camel routing library  Apache Camel 1.0 released June 2007  Apache Camel is 3 years old 6 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 7. The birth of Apache Camel 7 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 8. The birth of Apache Camel  My initial commit r640963 | davsclaus | 2008-03-25 21:07:10 +0100 (Tue, 25 Mar 2008) | 1 line Added unit test for mistyped URI 8 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 9. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 9 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 10. What is Apache Camel  Quote from the web site Apache Camel is a Powerful Open Source Integration Framework based on known Enterprise Integration Patterns 10 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 11. What is Apache Camel  What are Enterprise Integration Patterns? 11 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 12. What is Apache Camel  What are Enterprise Integration Patterns? 12 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 13. What is Apache Camel  What are Enterprise Integration Patterns? Its a book 13 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 14. What is Apache Camel  Lets look at one of the patterns 14 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 15. What is Apache Camel  Use Case ActiveMQ WebSphereMQ 15 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 16. What is Apache Camel  Filter Pattern 16 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 17. What is Apache Camel  Filter Pattern from filter send to A message B 17 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 18. What is Apache Camel  Filter Pattern from(A) filter(predicate) to(B) 18 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 19. What is Apache Camel  Filter Pattern from(A) .filter(isWidget) .to(B) 19 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 20. What is Apache Camel  Filter Route from(A).filter(isWidget).to(B); 20 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 21. What is Apache Camel  Filter Route isWidget = xpath(“/quote/product = ‘widget’”); from(A).filter(isWidget).to(B); 21 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 22. What is Apache Camel  Filter Route Endpoint A = endpoint(“activemq:queue:quote”); Endpoint B = endpoint(“mq:quote”); Predicate isWidget = xpath(“/quote/product = ‘widget’”); from(A).filter(isWidget).to(B); 22 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 23. What is Apache Camel  Filter Route - Java DSL public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } 23 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 24. What is Apache Camel  Filter Route - Java DSL import org.apache.camel.builder.RouteBuilder; import static org.apache.camel.builder.xml.XPathBuilder.xpath; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } } 24 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 25. What is Apache Camel  Filter Route - Java DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:queue:quote") .filter().xpath("/quote/product =‘widget’") .to("mq:quote"); } } 25 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 26. What is Apache Camel  IDE Tooling Code Assistance JavaDoc 26 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 27. What is Apache Camel  IDE Tooling Code Assistance 27 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 28. What is Apache Camel  Recap - Concepts of Camel • Enterprise Integration Patterns • Routing • Domain Specific Language (DSL) • Endpoints • URIs • Predicates & Expressions • Components and much more ... Simplify Integration 28 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 29. What is Apache Camel  Lets look at the most famous pattern 29 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 30. What is Apache Camel  Content Based Router 30 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 31. What is Apache Camel  Content Based Router - Spring XML <camelContext> <route> <from uri="activemq:NewOrders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:Orders.Widgets"/> </when> <otherwise> <to uri="activemq:Orders.Gadgets"/> </otherwise> </choice> </route> </camelContext> 31 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 32. What is Apache Camel  Content Based Router - Java DSL from("activemq:NewOrders") .choice() .when().xpath(“/order/product = 'widget'”) .to(“activemq:Orders.Widget”); .otherwise() .to(“acitvemq:Orders.Gadget”); 32 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 33. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 33 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 34. A little example  Based on community user (Gunnar Hillert) • http://hillert.blogspot.com/2009/09/camellos-discovering-apache- camel-ii.html  Goals • 1) Pickup files from a directory • 2) Make sure we only pickup 3 files per 30 seconds • 3) Store into JMS queue • 4) Listen on JMS queue • 5) And upload file to FTP server 34 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 35. A little example  Goals using Enterprise Integration Patterns 1 2 3 4 5  Goals • 1) Pickup files from a directory • 2) Make sure we only pickup 3 files per 30 seconds • 3) Store into JMS queue • 4) Listen on JMS queue • 5) And upload file to FTP server 35 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 36. A little example  Goals using Enterprise Integration Patterns from throttle to from to  Goals • 1) Pickup files from a directory • 2) Make sure we only pickup 3 files per 30 seconds • 3) Store into JMS queue • 4) Listen on JMS queue • 5) And upload file to FTP server 36 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 37. A little example  Camel DSL in XML <camelContext> <route> <from uri="file:camellos/inbox?move=.done"/> <throttle maximumRequestsPerPeriod="3” timePeriodMillis="30000”> <to uri="activemq:queue:camellos"/> </throttle> </route> <route> <from uri="activemq:queue:camellos"/> <to uri="ftp://admin:secret@localhost:3333"/> </route> </camelContext> 37 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 38. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 38 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 39. Whats included in the box?  Highlights of whats included in Camel 39 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 40. Whats included in the box?  70+ Components activemq crypto flatpack irc ldap activemq-journal cxf freemarker javaspace mail/imap/pop3 amqp cxfrs ftp/ftps/sftp jbi mina atom dataset gae jcr mock bean direct hdfs jdbc msv bean validation esper hibernate jetty nagios browse event hl7 jms netty cache exec http jpa nmr cometd file ibatis jt/400 printer http://camel.apache.org/components.html 40 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 41. Whats included in the box?  70+ Components properties scalate stream xslt quartz seda string-template ejb quickfix servlet test ref smooks timer restlet smpp validation rmi snmp velocity rnc spring-integration vm rng spring-security xmpp rss sql xquery http://camel.apache.org/components.html 41 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 42. Whats included in the box?  18 Data Formats bindy protobuf castor serialization csv soap crypto tidy markup flatpack xml beans gzip xml security hl7 xstream jaxb zip json dozer http://camel.apache.org/data-format.html 42 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 43. Whats included in the box?  Data Format from("activemq:QueueWithJavaObjects”) .marshal().jaxb() .to("mq:QueueWithXmlMessages"); 43 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 44. Whats included in the box?  Predicates & Expressions BeanShell PHP EL Python Groovy Ruby JavaScript Simple JSR 223 SQL OGNL XPath MVEL XQuery http://camel.apache.org/languages.html 44 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 45. Whats included in the box?  DSL in 3 programming languages Java XML from(A).filter(isWidget).to(B); <route> <from ref="A"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to ref="B"/> </filter> </route> from(A) filter(isWidget) --> B Scala 45 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 46. Whats included in the box?  Type Converters INFO DefaultTypeConverter - Loaded 148 type converters 46 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 47. Whats included in the box?  Custom Type Converters @Converter public class MyTypeConverter { @Converter public String toString(MyOrder order) { StringBuilder sb = new StringBuilder(); ... return sb.toString(); } } # META-INF/services/org/apache/camel/TypeConverter com.acme.converters META-INF file in the JAR 47 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 48. Whats included in the box?  Powerful bean integration • Adapt to your beans • EIP as @annotations - @Produce - @Consume - @RecipientList - @RoutingSlip more to come in future releases ... 48 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 49. Whats included in the box?  Bean as Message Translator 49 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 50. Whats included in the box?  Bean as Message Translator from("activemq:Incoming”). beanRef("myBeanName”, “someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 50 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 51. Whats included in the box?  Bean Parameter Binding with XPath public class Foo { public String processOrder( String orderAsXml, @XPath(”/order/@id”) String oid, @Header(”JMSCorrelationID”) String cid) { ... } } 51 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 52. Whats included in the box?  Bean Parameter Binding with Languages public class Foo { public void processOrder( MyOrder order, @Simple(”${body.customer.gold}”) boolean gold) { ... } } MyOrder - id Customer - customer - gold - street - zip 52 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 53. Whats included in the box?  Sending message public class Foo { @Produce(uri="activemq:foo.bar") ProducerTemplate producer; public void doSomething() { if (whatever) { producer.sendBody("<hello>world!</hello>"); } } } 53 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 54. Whats included in the box?  Sending message w/ interface public interface EchoService { String sayEcho(String echo); } 54 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 55. Whats included in the box?  Sending message w/ interface public class Echo { @Produce(uri="http://somewhere/echo") EchoService echo; public void doTheEcho() { String reply = echo.sayEcho("Hi"); } } 55 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 56. Whats included in the box?  Sending message w/ no Camel API <proxy id="echo" serviceInterface="com...EchoService" serviceUrl="http://somewhere/echo"/> public class Echo { @Autowired EchoService echo; public void doTheEcho() { String reply = echo.sayEcho("Hi"); } } 56 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 57. Whats included in the box?  The EJB MessageDrivenBean in Camel public class Foo { @Consume(uri="activemq:cheese") public void onCheese(String name) { ... } } 57 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 58. Whats included in the box?  Test Kit • JUnit based (3.x and 4.x) • Supports Spring • Easy to test • Quick prototyping 58 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 59. Whats included in the box? extend CamelTestSupport  Test Kit from IDE Right Click -> Run Debug Inline RouteBuilder 59 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 60. Whats included in the box?  Managed • JMX API • REST API 60 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 61. Whats included in the box?  Web console • REST API 61 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 62. Whats included in the box?  Maven tooling • Maven Archetypes to create new projects mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-war -DarchetypeVersion=2.3.0 • Maven goals to run project - mvn camel:run - mvn jetty:run 62 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 63. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 63 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 64. Running Camel  Riding the Camel 64 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 65. Running Camel  Java Application CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start();  Spring Application <camelContext> <package>com.acme.quotes</package> </camelContext> 65 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 66. Running Camel  Lightweight  Embeddable  Known Deployment Options • Standalone Java Application Known Containers • Web Application Apache ServiceMix Apache ActiveMQ • J2EE Application Apache Tomcat • JBI Jetty • OSGi JBoss IBM WebSphere • Google App Engine BEA WebLogic • Java Web Start Oracle OC4j • Spring Application GAE ... others 66 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 67. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 67 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 68. The Camel Community  Camel website • 40% increase (comparing last two 6 month periods) • 2000-2500 visits per weekday  High activity on mailing list http://old.nabble.com/ 68 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 69. The Camel Community  High activity on mailing list (cont.) http://markmail.org/ 69 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 70. The Camel Community  20 committers  High commit activity http://markmail.org/ 70 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 71. The Camel Community  JIRA tickets Total 2795 Open 154 (6%) Resolved 2641 (94%) Bugs 11 (7% open) Oldest Bug June/29/09 June 8th 2010 71 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 72. The Camel Community  A lot in each new release Release Date Tickets Camel 2.0 Aug 2009 760 Camel 2.1 Dec 2009 303 Camel 2.2 Feb 2010 180 Camel 2.3 May 2010 273 72 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 73. The Camel Community  Contributors • 6 new contributed components in Camel 2.3  Contributor --> Committer meritocracy 73 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 74. The Camel Community  3rd party integrating Camel • Apache ServiceMix • Apache ActiveMQ • Apache James In Progress • OpenESB • Drools • Progress Actional Diagnostics ��� Smooks • FuseHQ • Doozer • Open eHealth Integration Platform • JBossESB • Grails Camel Plugin • Play Framework • Akka • Scalate 74 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 75. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 75 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 76. Where are we today?  Some highlights of Apache Camel 2.3 • Overhauled Aggregator EIP • Easier thread pool configuration • Properties component • <routeContext> in Spring XML • 10+ new components 76 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 77. Where are we today?  Overhauled Aggregator EIP • 5 independent completion conditions - size - timeout - interval - predicate - batch consumer • Parallel publishing • Persistent http://hawtdb.fusesource.org/ • Transactional 77 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 78. Where are we today?  Overhauled Aggregator EIP 78 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 79. Where are we today?  Overhauled Aggregator EIP X 79 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 80. Where are we today?  Overhauled Aggregator EIP 80 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 81. Where are we today?  Easier thread pool configuration EIPs Background Tasks Thread Pools Components 81 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 82. Where are we today?  Easier thread pool configuration Background EIPs Tasks Executor Service Strategy Thread Pools Components 82 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 83. Where are we today?  Easier thread pool configuration  ExecutorServiceStrategy • API for creating and lookup thread pools • Consistent thread names • Register pools with JMX • Handle lifecycle (shutdown) Easier for Component writers 83 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 84. Where are we today?  Easier thread pool configuration  ThreadPoolProfile • Template defining pool settings • 1 default profile • 0..n custom profiles <threadPoolProfile id="fooProfile" poolSize="20" maxPoolSize="50" maxQueueSize="200"/> Easier for end users 84 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 85. Where are we today?  Properties Component Properties Component File {{key}} <from uri=“jms:queue:{{inbox}}”/> <to uri=“bean:validateOrder”/> 85 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 86. Where are we today?  <routeContext> in Spring XML • Re-usable route templates (in separate Spring XML files) <routeContext id="myCoolRoutes"> <route id="cool"> <from uri="direct:start"/> <to uri="mock:result"/> </route> myCoolRoutes.xml </routeContext> <import resource="myCoolRoutes.xml"/> <camelContext> <routeContextRef ref="myCoolRoutes"/> </camelContext> 86 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 87. Where are we today?  10+ new components • Properties • Nagios • Netty • Exec • JSR-303 bean validator • Spring Security • Java Cryptographic Extension • OAuth and Google Login to GAE • Eclipse RCP • SOAP (JAXB and JAX-WS) 87 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 88. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 88 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 89. Where are we going tomorrow?  Roadmap for Apache Camel 2.4  The major targets • Asynchronous routing engine • OSGi improvements (blueprint etc.) • Security in DSL • Apache ODE component (BPEL) ?  Schedule • GA in Q3 2010 89 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 90. Agenda  Who is Claus Ibsen?  The birth of Apache Camel  What is Apache Camel  A little example  Whats included in the box?  Running Camel  The Camel Community  Where are we today?  Where are we going tomorrow?  Q and A 90 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 91. Q and A  Where do I get more information? - Camel website: http://camel.apache.org - FUSE website: http://fusesource.com - Camel in Action book: http://manning.com/ibsen 91 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 92. Q and A ? 92 © 2009 Progress Software Corporation Tuesday, June 8, 2010
  • 93. 93 © 2009 Progress Software Corporation Tuesday, June 8, 2010