SlideShare a Scribd company logo
Apache Camel Overview
Open Source Integration and Messaging




Marcelo Jabali
Sr. Solutions Consultant
Dec., 2011
                                                                                                                 A Progress Software Company
1   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.            A Progress Software Company
Agenda


       Apache Camel Overview
       Architecture
       Routes, Endpoints, Components
       Deployment Options




2       Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
About Me


                                                                                                     Marcelo Jabali
                                                                                                     Sr. Solutions Consultant

                                                                                                     marcelo@fusesource.com

                                                                                                     marcelojabali.blogspot.com

                                                                                                     mjabali

                                                                                                     linkedin.com/in/jabali


3   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.        A Progress Software Company
Apache Camel


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




                                                                               http://enterpriseintegrationpatterns.com/

4   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Patterns


     50+ Enterprise Integration Patterns




                                            http://camel.apache.org/eip
5      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – Components, Data Formats and
Languages

     80 Components (activemq, bean, cxf, file, ftp, hibernate, jdbc,
      ibatis, jms, jetty, mina, netty, timer, xslt, etc)
       • http://camel.apache.org/components.html


     19 Data Formats (csv, serialization, zip, hl7, soap, jaxb, etc)
       • http://camel.apache.org/data-format.html


     15 Expression Languages (EL, Simple, XQuery, Xpath,
      JavaScript, Ruby, Python, PHP, etc)
       • http://camel.apache.org/languages.html




6      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Architecture




7   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
What is a Camel Route?


     A Route is the step-by-step movement of a message:
       • From a “listening” endpoint in the role of consumer
       • Through a processing component - enterprise integration pattern,
         processor, interceptor, etc. (optional)
       • To a target endpoint in the role of producer
     May involve any number of processing components that
      modify the original message and/or redirect it
     An application developer specifies routes using:
       • Spring configuration files
       • Java Domain Specific Language (DSL)




8      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – DSL (Domain Specific Language)


     Camel provides an embedded DSL (in Java, Spring or Scala) for
      implementing enterprise integration patterns
       • The DSL uses URIs to define endpoints which are combined to
         generate routes (integration flows)




9      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Components


  A Component is essentially a factory of Endpoint instances
  +80 Components available
            activemq                                    cxf                                  rss                   sql

     mail/imap/pop3                                   cxfrs                               snmp                    timer

                amqp                               dataset                          ftp/ftps/sftp                  jbi
                 atom                                 db4o                              velocity                   jcr
                 bean                                direct                               restlet                 jdbc
                  ldap                                  ejb                           hibernate                   jetty
              browse                                xquery                                   hl7                  jms
                cache                                quartz                                 http                  jmx
                 mock                                 exec                                ibatis                  jpa
                 netty                                  file                                  irc                 xslt

10   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.           A Progress Software Company
Apache Camel - Endpoints


  An Endpoint is an instance of the component that can
   create or receive messages, for example, an FTP server, a
   Web Service, or a JMS broker
  Camel allows you to specifiy endpoints using simple URIs
     • ftp://john@localhost/ftp?password=xxx
     • activemq:queue:MyQueue


                             Camel Route


              FTP                                                                                                            JMS



                             Consumer                                  Processor                                  Producer


11   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel - Consumers and Producers


  Message Consumers and Producers are created from
   endpoints
     • Some endpoint technologies can create producers and
       consumers, others support the creation of either a producer or a
       consumer
ftp://john@localhost/ftp?password=xxx
                                   Camel Route


                   FTP                                                                                                       JMS



                                  Consumer                                  Processor                             Producer

                                                                                 activemq:queue:MyQueue
12   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.              A Progress Software Company
Apache Camel - Sample Route


  Typical scenario: "read an XML file from an FTP server,
   process it using XSLT, and then send it to a JMS queue”
     • It's natural to consider an FTP consumer that 'consumes' the
       message…
     • … which gets sent to a 'processor' for transformation …
     • … which gets sent to a JMS message producer for placement on
       the queue


                             Camel Route


              FTP                                                                                                            JMS



                             Consumer                                  Processor                                  Producer

13   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel – Sample Route


  Java DSL
     from("ftp://john@localhost/ftp?password=xxx")
        .to("xslt:MyTransform.xslt")
        .to("activemq:queue:MyQueue")


                              Camel Route


               FTP                                                                                                            JMS



                              Consumer                                  Processor                                  Producer




14    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel – Sample Route


  Spring XML DSL
 <camelContext id=“camel”
         xmlns=“http://activemq.apache.org/camel/schema/spring”>
         <route>
                 <from uri=“ftp://john@localhost/ftp?password=xxx”/>
                 <to uri=“xslt:MyTransform.xslt”/>
                 <to uri=“activemq:queue:MyQueue”/>
         </route>
 </camelContext>



  Clean Integration with Spring Beans
 <bean id=“activemq”
 class=“org.apache.activemq.camel.component.ActiveMQComponent”>
         <property name=“brokerURL” value=“tcp://localhost:61616”/>
 </bean>


15   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – Spring Bean Integration


  Spring Bean as Message Translator




                   from("activemq:queue:Incoming”).
                     beanRef("myBeanName", "someMethod").
                       to("activemq:Outgoing");


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

16   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Typical Camel Route Development Process


  Use a Maven archetype to generate an outline project

  Edit the POM to include additional dependencies

  Add your Java code into src/main/java, and/or Spring
   configuration to src/main/resources/META-INF/spring

  Add instructions to the Maven Felix plugin, to assist in the generation
   of OSGi manifest information

  Test using the Camel Maven plugin
           mvn camel:run

  Deploy into the Apache ServiceMix OSGi container
     • Drop into deploy/ directory (pre-production testing)
     • Install a bundle/feature from a maven repository (production environment)
17   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Camel Testing Options


  Test Kit
     •     camel-test JAR (JUnit)
     •     camel-testng JAR (TestNG)
     •     Supports Spring
     •     Easy to test
     •     Quick prototyping




18   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Camel Deployment Options


  Deployment Strategy                                                                                        Common Containers
     • No Container dependency
     • Lightweight                                                                                            Apache ServiceMix
                                                                                                              Apache ActiveMQ
     • Embeddable                                                                                             Apache Tomcat
  Deployment Options                                                                                         Jetty
                                                                                                              JBoss
     •     Standalone                                                                                         IBM WebSphere
     •     WAR                                                                                                Oracle WebLogic
     •     Spring                                                                                             Oracle OC4j
                                                                                                              Glassfish
     •     JEE                                                                                                Google App Engine
     •     OSGi                                                                                               Amazon EC2
     •     Cloud                                                                                              ... others




19   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.                   A Progress Software Company
Thanks!


No vendor lock-in
    Free to redistribute
         Enterprise class                                                                                         A Progress Software Company
20   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.            A Progress Software Company

More Related Content

PDF
Introduction to Apache Camel
PPTX
Apache Camel: The Swiss Army Knife of Open Source Integration
PDF
TorqueBox for Rubyists
PDF
Complex Made Simple: Sleep Better with TorqueBox
KEY
Devignition 2011
PDF
TorqueBox at DC:JBUG - November 2011
PPT
Integration made easy with Apache Camel
PDF
DOSUG Taking Apache Camel For A Ride
Introduction to Apache Camel
Apache Camel: The Swiss Army Knife of Open Source Integration
TorqueBox for Rubyists
Complex Made Simple: Sleep Better with TorqueBox
Devignition 2011
TorqueBox at DC:JBUG - November 2011
Integration made easy with Apache Camel
DOSUG Taking Apache Camel For A Ride

What's hot (20)

PDF
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
ODP
First Day With J Ruby
PDF
Service-Oriented Integration With Apache ServiceMix
PPT
Simplify your integrations with Apache Camel
PDF
OSGi ecosystems compared on Apache Karaf - Christian Schneider
PDF
DataMapper on Infinispan
PDF
Service Oriented Integration with ServiceMix
PDF
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
PDF
Camel and JBoss
PDF
When Ruby Meets Java - The Power of Torquebox
PDF
Cloud Foundry, Spring and Vaadin
PPTX
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
PDF
Security Goodness with Ruby on Rails
PDF
Torquebox OSCON Java 2011
PDF
RESTful web service with JBoss Fuse
ODP
W-JAX 2011: OSGi with Apache Karaf
PDF
Crash course to the Apache Camel
PDF
Torquebox @ Raleigh.rb - April 2011
PDF
TorqueBox - When Java meets Ruby
PPTX
Java 7 Whats New(), Whats Next() from Oredev
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
First Day With J Ruby
Service-Oriented Integration With Apache ServiceMix
Simplify your integrations with Apache Camel
OSGi ecosystems compared on Apache Karaf - Christian Schneider
DataMapper on Infinispan
Service Oriented Integration with ServiceMix
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
Camel and JBoss
When Ruby Meets Java - The Power of Torquebox
Cloud Foundry, Spring and Vaadin
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
Security Goodness with Ruby on Rails
Torquebox OSCON Java 2011
RESTful web service with JBoss Fuse
W-JAX 2011: OSGi with Apache Karaf
Crash course to the Apache Camel
Torquebox @ Raleigh.rb - April 2011
TorqueBox - When Java meets Ruby
Java 7 Whats New(), Whats Next() from Oredev
Ad

Viewers also liked (12)

ODP
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
PPT
Microservices: lessons from the trenches
PDF
Event Driven Architecture with Apache Camel
PDF
Oracle OSB Tutorial 2
PPTX
HTML5 WebSocket Introduction
PDF
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
PDF
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
PPT
Step-by-Step Introduction to Apache Flink
PPTX
Where and when to use the Oracle Service Bus (OSB)
PDF
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
PPSX
ESB Overview
PDF
Oracle OSB Tutorial 1
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Microservices: lessons from the trenches
Event Driven Architecture with Apache Camel
Oracle OSB Tutorial 2
HTML5 WebSocket Introduction
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Step-by-Step Introduction to Apache Flink
Where and when to use the Oracle Service Bus (OSB)
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
ESB Overview
Oracle OSB Tutorial 1
Ad

Similar to Apache camel overview dec 2011 (20)

PDF
Jazoon 2011 - Smart EAI with Apache Camel
PDF
Make easier Integration of your services with Fuse Solutions - RedHat 2013
PDF
Introducing Scalate, the Scala Template Engine
ZIP
Elegant Systems Integration w/ Apache Camel
PDF
Apache Camel Introduction
KEY
Apache Camel
PPT
Riding with camel
PDF
Enterprise Integration Patterns and DSL with Apache Camel
PDF
TS 4839 - Enterprise Integration Patterns in Practice
PDF
Solving Enterprise Integration with Apache Camel
PDF
Fusesource camel-persistence-part2-webinar-charles-moulliard
PDF
Camel overview
PDF
Easy Integration with Apache Camel and Fuse IDE
ODP
01 apache camel-intro
KEY
Apache Camel - JEEConf May 2011
PDF
Camels in Berlin
PDF
20100907 fuse-community-evening-adrian-trenaman-no-logo
PDF
Enterprise Integration Patterns with Apache Camel
KEY
What Riding the Camel can do to make integration easier for you
PDF
Simplify integrations-final-pdf
Jazoon 2011 - Smart EAI with Apache Camel
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Introducing Scalate, the Scala Template Engine
Elegant Systems Integration w/ Apache Camel
Apache Camel Introduction
Apache Camel
Riding with camel
Enterprise Integration Patterns and DSL with Apache Camel
TS 4839 - Enterprise Integration Patterns in Practice
Solving Enterprise Integration with Apache Camel
Fusesource camel-persistence-part2-webinar-charles-moulliard
Camel overview
Easy Integration with Apache Camel and Fuse IDE
01 apache camel-intro
Apache Camel - JEEConf May 2011
Camels in Berlin
20100907 fuse-community-evening-adrian-trenaman-no-logo
Enterprise Integration Patterns with Apache Camel
What Riding the Camel can do to make integration easier for you
Simplify integrations-final-pdf

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
A Presentation on Artificial Intelligence
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
Teaching material agriculture food technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
A Presentation on Artificial Intelligence
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation theory and applications.pdf
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
Teaching material agriculture food technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectral efficient network and resource selection model in 5G networks

Apache camel overview dec 2011

  • 1. Apache Camel Overview Open Source Integration and Messaging Marcelo Jabali Sr. Solutions Consultant Dec., 2011 A Progress Software Company 1 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 2. Agenda  Apache Camel Overview  Architecture  Routes, Endpoints, Components  Deployment Options 2 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 3. About Me Marcelo Jabali Sr. Solutions Consultant marcelo@fusesource.com marcelojabali.blogspot.com mjabali linkedin.com/in/jabali 3 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 4. Apache Camel  Apache Camel is a powerful Open Source Integration Framework based on known Enterprise Integration Patterns http://enterpriseintegrationpatterns.com/ 4 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 5. Apache Camel - Patterns  50+ Enterprise Integration Patterns http://camel.apache.org/eip 5 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 6. Apache Camel – Components, Data Formats and Languages  80 Components (activemq, bean, cxf, file, ftp, hibernate, jdbc, ibatis, jms, jetty, mina, netty, timer, xslt, etc) • http://camel.apache.org/components.html  19 Data Formats (csv, serialization, zip, hl7, soap, jaxb, etc) • http://camel.apache.org/data-format.html  15 Expression Languages (EL, Simple, XQuery, Xpath, JavaScript, Ruby, Python, PHP, etc) • http://camel.apache.org/languages.html 6 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 7. Apache Camel - Architecture 7 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 8. What is a Camel Route?  A Route is the step-by-step movement of a message: • From a “listening” endpoint in the role of consumer • Through a processing component - enterprise integration pattern, processor, interceptor, etc. (optional) • To a target endpoint in the role of producer  May involve any number of processing components that modify the original message and/or redirect it  An application developer specifies routes using: • Spring configuration files • Java Domain Specific Language (DSL) 8 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 9. Apache Camel – DSL (Domain Specific Language)  Camel provides an embedded DSL (in Java, Spring or Scala) for implementing enterprise integration patterns • The DSL uses URIs to define endpoints which are combined to generate routes (integration flows) 9 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 10. Apache Camel - Components  A Component is essentially a factory of Endpoint instances  +80 Components available activemq cxf rss sql mail/imap/pop3 cxfrs snmp timer amqp dataset ftp/ftps/sftp jbi atom db4o velocity jcr bean direct restlet jdbc ldap ejb hibernate jetty browse xquery hl7 jms cache quartz http jmx mock exec ibatis jpa netty file irc xslt 10 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 11. Apache Camel - Endpoints  An Endpoint is an instance of the component that can create or receive messages, for example, an FTP server, a Web Service, or a JMS broker  Camel allows you to specifiy endpoints using simple URIs • ftp://john@localhost/ftp?password=xxx • activemq:queue:MyQueue Camel Route FTP JMS Consumer Processor Producer 11 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 12. Apache Camel - Consumers and Producers  Message Consumers and Producers are created from endpoints • Some endpoint technologies can create producers and consumers, others support the creation of either a producer or a consumer ftp://john@localhost/ftp?password=xxx Camel Route FTP JMS Consumer Processor Producer activemq:queue:MyQueue 12 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 13. Apache Camel - Sample Route  Typical scenario: "read an XML file from an FTP server, process it using XSLT, and then send it to a JMS queue” • It's natural to consider an FTP consumer that 'consumes' the message… • … which gets sent to a 'processor' for transformation … • … which gets sent to a JMS message producer for placement on the queue Camel Route FTP JMS Consumer Processor Producer 13 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 14. Apache Camel – Sample Route  Java DSL from("ftp://john@localhost/ftp?password=xxx") .to("xslt:MyTransform.xslt") .to("activemq:queue:MyQueue") Camel Route FTP JMS Consumer Processor Producer 14 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 15. Apache Camel – Sample Route  Spring XML DSL <camelContext id=“camel” xmlns=“http://activemq.apache.org/camel/schema/spring”> <route> <from uri=“ftp://john@localhost/ftp?password=xxx”/> <to uri=“xslt:MyTransform.xslt”/> <to uri=“activemq:queue:MyQueue”/> </route> </camelContext>  Clean Integration with Spring Beans <bean id=“activemq” class=“org.apache.activemq.camel.component.ActiveMQComponent”> <property name=“brokerURL” value=“tcp://localhost:61616”/> </bean> 15 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 16. Apache Camel – Spring Bean Integration  Spring Bean as Message Translator from("activemq:queue:Incoming”). beanRef("myBeanName", "someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 16 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 17. Typical Camel Route Development Process  Use a Maven archetype to generate an outline project  Edit the POM to include additional dependencies  Add your Java code into src/main/java, and/or Spring configuration to src/main/resources/META-INF/spring  Add instructions to the Maven Felix plugin, to assist in the generation of OSGi manifest information  Test using the Camel Maven plugin mvn camel:run  Deploy into the Apache ServiceMix OSGi container • Drop into deploy/ directory (pre-production testing) • Install a bundle/feature from a maven repository (production environment) 17 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 18. Camel Testing Options  Test Kit • camel-test JAR (JUnit) • camel-testng JAR (TestNG) • Supports Spring • Easy to test • Quick prototyping 18 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 19. Camel Deployment Options  Deployment Strategy Common Containers • No Container dependency • Lightweight Apache ServiceMix Apache ActiveMQ • Embeddable Apache Tomcat  Deployment Options Jetty JBoss • Standalone IBM WebSphere • WAR Oracle WebLogic • Spring Oracle OC4j Glassfish • JEE Google App Engine • OSGi Amazon EC2 • Cloud ... others 19 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 20. Thanks! No vendor lock-in Free to redistribute Enterprise class A Progress Software Company 20 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company

Editor's Notes

  • #8: Very simplified view of Camel’s architectureComponents are the extension point in Camel to add connectivity to other systems. The core of Camel is very small to keep dependencies low, promote embeddability, etc. and as a result contains only 12 essential components. There are over 60 components outside the core. To expose these systems to the rest of Camel, Components provide an Endpoint interface. By using URIs, you can send or receive messages on Endpoints in a uniform way. For instance, to receive messages from a JMS queue aQueue and send them to a file system directory &quot;c:/tmp&quot;, you could use URIs like &quot;jms:aQueue&quot; and &quot;file:c:\\tmp&quot;.Processors are used to manipulate and mediate messages in between Endpoints. All of the EIPs are defined as Processors or sets of Processors. As of writing, Camel supports 41 patterns from the EIP book, 6 other integration patterns, and many other useful Processors.To wire Processors and Endpoints together, Camel defines a Java DSL. The term DSL is used a bit loosely here as it usually implies the involvement of a compiler or interpreter that can process keywords specific to a particular domain. In Camel, DSL means a fluent Java API that contains methods named like terms from the EIP book
  • #10: To wire processors and endpoints together to form routes, Camel defines a DSL. The term DSL is used a bit loosely here. In Camel, DSL means a fluent Java API that con- tains methods named for EIP terms.
  • #18: Camel Demo + FUSE IDE Demo