SlideShare a Scribd company logo
1 of 35
Implemen(ng	
  Enterprise	
  Integra(on	
  
     Pa3erns	
  through	
  Apache	
  Camel	
  




    James	
  Strachan,	
  Red	
  Hat
     1

Friday, February 8, 2013
Your	
  speaker	
  today


      James	
  Strachan
            • jstrachan@redhat.com
            • twi8er:	
  @jstrachan
            • blog:	
  h8p://macstrac.blogspot.com/
      Senior	
  Consul(ng	
  SoFware	
  Engineer	
  at	
  Red	
  Hat
            • leaders	
  in	
  open	
  source	
  middleware	
  &	
  integra?on
            • we	
  provide	
  training,	
  consul?ng,	
  support,	
  distribu?ons	
  &	
  tools	
  for	
  open	
  
              source	
  integra?on	
  soCware
      Open	
  Source	
  hacker
            • created	
  the	
  Groovy	
  programming	
  language
            • created	
  Apache	
  Camel
            • co-­‐founder	
  of
                        – Apache	
  Ac(veMQ,	
  ServiceMix,	
  Geronimo
                        – Scalate
            • lets	
  not	
  men?on	
  Jelly	
  :)
      2      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
What	
  are	
  Enterprise	
  Integra?on	
  Pa8erns?




      3      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Book	
  by	
  Gregor	
  &	
  Bobby!




      4      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
A	
  selec?on	
  of	
  some	
  of	
  the	
  pa8erns...




      5      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
What	
  is	
  Apache	
  Camel?


                                                                                      http://camel.apache.org/




      6      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
What	
  is	
  Apache	
  Camel?




                   Apache	
  Camel	
  is	
  a	
  Powerful	
  Open	
  Source
                              Integra(on	
  Framework
                                 based	
  on	
  known
                       Enterprise	
  Integra(on	
  Pa3erns	
  

               h3p://camel.apache.org/enterprise-­‐integra(on-­‐pa3erns.html



      7      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Lets	
  look	
  at	
  a	
  pa8ern!




      8      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter




      9      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  XML




             <camelContext xmlns="http://camel.apache.org/schema/spring">
               <route>
                 <from uri="activemq:topic:Quotes"/>
                 <filter>
                   <xpath>/quote/product = ‘widget’</xpath>
                   <to uri="mqseries:WidgetQuotes"/>
                 </filter>
               </route>
             </camelContext>




     10      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  Spring	
  XML


          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.springframework.org/schema/beans
                 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                 http://camel.apache.org/schema/spring
                 http://camel.apache.org/schema/spring/camel-spring.xsd">

           <camelContext xmlns="http://camel.apache.org/schema/spring">
              <route>
                <from uri="activemq:topic:Quotes"/>
                <filter>
                  <xpath>/quote/product = ‘widget’</xpath>
                  <to uri="mqseries:WidgetQuotes"/>
                </filter>
              </route>
            </camelContext>

          </beans>



     11      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  XML




             <camelContext xmlns="http://camel.apache.org/schema/spring">
               <route>
                 <from uri="activemq:topic:Quotes"/>
                 <filter>
                   <xpath>/quote/product = ‘widget’</xpath>
                   <to uri="mqseries:WidgetQuotes"/>
                 </filter>
               </route>
             </camelContext>




     12      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Expressions	
  &	
  Predicates



            15 Expression
            Languages                                                                          BeanShell    Python
                                                                                                   EL        Ruby
                                                                                                 Groovy     Simple
                                                                                               JavaScript    SpEL
                                                                                                JSR 223       SQL
                                                                                                 OGNL        XPath
                                                                                                 MVEL       XQuery
                                                                                                  PHP

     13      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
URIs,	
  Endpoints	
  and	
  Components	
  (120+)


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

                                  activemq                                                       cxf       flatpack        jasypt
                       activemq-journal                                                         cxfrs    freemarker      javaspace
                                       amqp                                                    dataset   ftp/ftps/sftp      jbi
                                        atom                                                    db4o         gae            jcr
                                         bean                                                  direct        hdfs          jdbc
                          bean validation                                                        ejb      hibernate        jetty
                                     browse                                                    esper         hl7           jms
                                        cache                                                  event         http          jmx
                                     cometd                                                     exec        ibatis          jpa
                                       crypto                                                    file          irc         jt/400



     14      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
120+	
  components...


                                      language                                             properties          seda               stream

                                            ldap                                               quartz         servlet         string-template

                            mail/imap/pop3                                                     quickfix          sip                test

                                            mina                                                 ref         smooks                timer

                                          mock                                                 restlet         smpp             validation

                                             msv                                                 rmi           snmp              velocity

                                         nagios                                                 rnc      spring-integration         vm

                                           netty                                                 rng      spring-security         xmpp

                                             nmr                                                 rss        spring-ws             xquery

                                         printer                                               scalate          sql                xslt




     15      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  XML




             <camelContext xmlns="http://camel.apache.org/schema/spring">
               <route>
                 <from uri="activemq:topic:Quotes"/>
                 <filter>
                   <xpath>/quote/product = ‘widget’</xpath>
                   <to uri="mqseries:WidgetQuotes"/>
                 </filter>
               </route>
             </camelContext>




     16      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  Java




      from("activemq:topic:Quotes”).
        filter().xpath("/quote/product = ‘widget’").
          to("mqseries:WidgetQuotes");




     17      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  Java	
  Complete



     package com.acme.quotes;

     import org.apache.camel.builder.RouteBuilder;

     public class MyRouteBuilder extends RouteBuilder {

              public void configure() {

                                // forward widget quotes to MQSeries
                                from("activemq:topic:Quotes”).
                                        filter().xpath("/quote/product = ‘widget’").
                                        to("mqseries:WidgetQuotes");
            }
     }

     18      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Message	
  Filter	
  :	
  Scala	
  




                        "direct:a" when(_.in == "<hello/>") {
                            to("mock:a")
                        }




     19      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Create	
  CamelContext	
  in	
  Spring




    <camelContext xmlns="http://camel.apache.org/schema/spring">
      <package>com.acme.quotes</package>
    </camelContext>




     20      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Create	
  CamelContext	
  in	
  Java




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




     21      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
IDE	
  support




             Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
IDE	
  support	
  (XML)




     23      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Recap	
  -­‐	
  core	
  concepts	
  of	
  Camel


         Enterprise	
  Integra(on	
  Pa3erns
         Rou(ng
         Domain	
  Specific	
  Language	
  (DSL)
         Endpoints	
  &	
  URIs
         Predicates	
  &	
  Expressions
         Components	
  (lots	
  of	
  ‘em!)
         Test	
  Kit
     
          	
  	
  	
  	
  	
  	
  	
  and	
  much	
  more	
  ...




     24      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Beans




     25      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Bean	
  as	
  a	
  Message	
  Translator




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




     26      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Bean	
  




     public class Foo {

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




     27      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Binding	
  Beans	
  to	
  Camel	
  Endpoints




          public class Foo {

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



     28       Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Binding	
  Method	
  Arguments




          public class Foo {

               public Object onCheese(
                 @XPath("/foo/bar") String name,
                 @Header("JMSCorrelationID") String id) {
                 ...
               }
          }
                                    for	
  more	
  annota(ons	
  see
                                    h3p://camel.apache.org/bean-­‐integra(on.html


     29       Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Sending	
  messages	
  to	
  endpoints




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

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


      30     Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Sending	
  messages	
  to	
  endpoints



    public interface MyListener {
        String sayHello(String name);
    }

    public class MyBean {
        @Produce(uri = "activemq:foo")
        protected MyListener producer;

               public void doSomething() {
                   // lets send a message
                   String response = producer.sayHello("James");
               }
    }

     31      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Fastest	
  way	
  to	
  learn....


      Manning	
  top-­‐15	
  year	
  to	
  date	
  (2010)




                                            #10                                                #12
             Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Fuse	
  IDE:	
  the	
  fastest	
  way	
  to	
  get	
  riding!


      free	
  eclipse	
  based	
  tool	
  for	
  Apache	
  Camel	
  &	
  Ac(veMQ	
  etc
            • create	
  projects,	
  edit	
  routes,	
  run	
  stuff,	
  visualise,	
  trace	
  &	
  diagnose




                                                                                   h3p://fusesource.com/
     33      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Summary:	
  Camel	
  rocks


      Ride	
  that	
  Camel
            • h8p://camel.apache.org/
      Download	
  Fuse	
  IDE
            • h8p://fusesource.com
      Buy	
  the	
  book!	
  
      Don’t	
  get	
  the	
  hump!




     34      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013
Any	
  Ques(ons?




                                                                              twi3er:	
  @jstrachan	
  #fusenews
                                                                                  h3p://fusesource.com

     35      Copyright	
  ©	
  2013	
  Red	
  Hat,	
  Inc.	
  All	
  rights	
  reserved.	
  

Friday, February 8, 2013

More Related Content

What's hot

Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in JavaJavaDayUA
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathLyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathAlexis Hassler
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Logico
 
Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Logico
 
Why JRuby? - RubyConf 2012
Why JRuby? - RubyConf 2012Why JRuby? - RubyConf 2012
Why JRuby? - RubyConf 2012Charles Nutter
 

What's hot (7)

Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in Java
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promises
 
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathLyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)
 
Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)
 
Why JRuby? - RubyConf 2012
Why JRuby? - RubyConf 2012Why JRuby? - RubyConf 2012
Why JRuby? - RubyConf 2012
 
Download It
Download ItDownload It
Download It
 

Viewers also liked

SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelDomingo Suarez Torres
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSRainer Stropek
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationClaus Ibsen
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration TalkChristian Posta
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian 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
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian 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 dataChristian Posta
 

Viewers also liked (13)

SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentation
 
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
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
 
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 Easy Integration with Apache Camel and Fuse IDE

Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBossJBug Italy
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011Marcelo Jabali
 
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...AMD Developer Central
 
IPv6 Matrix presentation for World IPv6 Launch, June 2012
IPv6 Matrix presentation for World IPv6 Launch, June 2012IPv6 Matrix presentation for World IPv6 Launch, June 2012
IPv6 Matrix presentation for World IPv6 Launch, June 2012Olivier MJ Crépin-Leblond
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Dmitry Chuyko
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121WANGCHOU LU
 
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory Analyzer
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory AnalyzerThe Right Pill for JRuby Memory and Thread Issues: Eclipse Memory Analyzer
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory AnalyzerVladimir Pavlov
 
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG  - March 2014)Project Avatar (Lyon JUG & Alpes JUG  - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)David Delabassee
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! David Delabassee
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at ClouderaDataconomy Media
 
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012Olivier MJ Crépin-Leblond
 
What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24Jim Jagielski
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by CapistranoTasawr Interactive
 

Similar to Easy Integration with Apache Camel and Fuse IDE (20)

Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
 
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
 
IPv6 Matrix presentation for World IPv6 Launch, June 2012
IPv6 Matrix presentation for World IPv6 Launch, June 2012IPv6 Matrix presentation for World IPv6 Launch, June 2012
IPv6 Matrix presentation for World IPv6 Launch, June 2012
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?
 
20160908 hivemall meetup
20160908 hivemall meetup20160908 hivemall meetup
20160908 hivemall meetup
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121
 
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory Analyzer
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory AnalyzerThe Right Pill for JRuby Memory and Thread Issues: Eclipse Memory Analyzer
The Right Pill for JRuby Memory and Thread Issues: Eclipse Memory Analyzer
 
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG  - March 2014)Project Avatar (Lyon JUG & Alpes JUG  - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera
"Petascale Genomics with Spark", Sean Owen,Director of Data Science at Cloudera
 
AppengineJS
AppengineJSAppengineJS
AppengineJS
 
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012
IPv6 Matrix Exec Summary Dec 2011 Results - ICCA Pondicherry 31 Jan 2012
 
What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
 

More from JBUG London

London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application ServerLondon JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application ServerJBUG London
 
WebSocketson WildFly
WebSocketson WildFly WebSocketson WildFly
WebSocketson WildFly JBUG London
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9JBUG London
 
Introduction to PicketLink
Introduction to PicketLinkIntroduction to PicketLink
Introduction to PicketLinkJBUG London
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFlyJBUG London
 
What's New in Infinispan 6.0
What's New in Infinispan 6.0What's New in Infinispan 6.0
What's New in Infinispan 6.0JBUG London
 
Compensating Transactions: When ACID is too much
Compensating Transactions: When ACID is too muchCompensating Transactions: When ACID is too much
Compensating Transactions: When ACID is too muchJBUG London
 
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQLondon JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQJBUG London
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsJBUG London
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyJBUG London
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to ProductionJBUG London
 
Hibernate OGM - JPA for Infinispan and NoSQL
Hibernate OGM - JPA for Infinispan and NoSQLHibernate OGM - JPA for Infinispan and NoSQL
Hibernate OGM - JPA for Infinispan and NoSQLJBUG London
 
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
JBoss jBPM, the future is now for all your Business Processes by Eric SchabellJBoss jBPM, the future is now for all your Business Processes by Eric Schabell
JBoss jBPM, the future is now for all your Business Processes by Eric SchabellJBUG London
 
JBoss AS7 by Matt Brasier
JBoss AS7 by Matt BrasierJBoss AS7 by Matt Brasier
JBoss AS7 by Matt BrasierJBUG London
 

More from JBUG London (14)

London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application ServerLondon JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
 
WebSocketson WildFly
WebSocketson WildFly WebSocketson WildFly
WebSocketson WildFly
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Introduction to PicketLink
Introduction to PicketLinkIntroduction to PicketLink
Introduction to PicketLink
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
 
What's New in Infinispan 6.0
What's New in Infinispan 6.0What's New in Infinispan 6.0
What's New in Infinispan 6.0
 
Compensating Transactions: When ACID is too much
Compensating Transactions: When ACID is too muchCompensating Transactions: When ACID is too much
Compensating Transactions: When ACID is too much
 
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQLondon JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM Systems
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made Easy
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
 
Hibernate OGM - JPA for Infinispan and NoSQL
Hibernate OGM - JPA for Infinispan and NoSQLHibernate OGM - JPA for Infinispan and NoSQL
Hibernate OGM - JPA for Infinispan and NoSQL
 
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
JBoss jBPM, the future is now for all your Business Processes by Eric SchabellJBoss jBPM, the future is now for all your Business Processes by Eric Schabell
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
 
JBoss AS7 by Matt Brasier
JBoss AS7 by Matt BrasierJBoss AS7 by Matt Brasier
JBoss AS7 by Matt Brasier
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Easy Integration with Apache Camel and Fuse IDE

  • 1. Implemen(ng  Enterprise  Integra(on   Pa3erns  through  Apache  Camel   James  Strachan,  Red  Hat 1 Friday, February 8, 2013
  • 2. Your  speaker  today  James  Strachan • jstrachan@redhat.com • twi8er:  @jstrachan • blog:  h8p://macstrac.blogspot.com/  Senior  Consul(ng  SoFware  Engineer  at  Red  Hat • leaders  in  open  source  middleware  &  integra?on • we  provide  training,  consul?ng,  support,  distribu?ons  &  tools  for  open   source  integra?on  soCware  Open  Source  hacker • created  the  Groovy  programming  language • created  Apache  Camel • co-­‐founder  of – Apache  Ac(veMQ,  ServiceMix,  Geronimo – Scalate • lets  not  men?on  Jelly  :) 2 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 3. What  are  Enterprise  Integra?on  Pa8erns? 3 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 4. Book  by  Gregor  &  Bobby! 4 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 5. A  selec?on  of  some  of  the  pa8erns... 5 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 6. What  is  Apache  Camel? http://camel.apache.org/ 6 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 7. What  is  Apache  Camel? Apache  Camel  is  a  Powerful  Open  Source Integra(on  Framework based  on  known Enterprise  Integra(on  Pa3erns   h3p://camel.apache.org/enterprise-­‐integra(on-­‐pa3erns.html 7 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 8. Lets  look  at  a  pa8ern! 8 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 9. Message  Filter 9 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 10. Message  Filter  :  XML <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 10 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 11. Message  Filter  :  Spring  XML <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> </beans> 11 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 12. Message  Filter  :  XML <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 12 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 13. Expressions  &  Predicates 15 Expression Languages BeanShell Python EL Ruby Groovy Simple JavaScript SpEL JSR 223 SQL OGNL XPath MVEL XQuery PHP 13 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 14. URIs,  Endpoints  and  Components  (120+) h8p://camel.apache.org/components.html activemq cxf flatpack jasypt activemq-journal cxfrs freemarker javaspace amqp dataset ftp/ftps/sftp jbi atom db4o gae jcr bean direct hdfs jdbc bean validation ejb hibernate jetty browse esper hl7 jms cache event http jmx cometd exec ibatis jpa crypto file irc jt/400 14 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 15. 120+  components... language properties seda stream ldap quartz servlet string-template mail/imap/pop3 quickfix sip test mina ref smooks timer mock restlet smpp validation msv rmi snmp velocity nagios rnc spring-integration vm netty rng spring-security xmpp nmr rss spring-ws xquery printer scalate sql xslt 15 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 16. Message  Filter  :  XML <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 16 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 17. Message  Filter  :  Java from("activemq:topic:Quotes”). filter().xpath("/quote/product = ‘widget’"). to("mqseries:WidgetQuotes"); 17 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 18. Message  Filter  :  Java  Complete package com.acme.quotes; import org.apache.camel.builder.RouteBuilder; public class MyRouteBuilder extends RouteBuilder { public void configure() { // forward widget quotes to MQSeries from("activemq:topic:Quotes”). filter().xpath("/quote/product = ‘widget’"). to("mqseries:WidgetQuotes"); } } 18 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 19. Message  Filter  :  Scala   "direct:a" when(_.in == "<hello/>") { to("mock:a") } 19 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 20. Create  CamelContext  in  Spring <camelContext xmlns="http://camel.apache.org/schema/spring"> <package>com.acme.quotes</package> </camelContext> 20 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 21. Create  CamelContext  in  Java CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start(); 21 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 22. IDE  support Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 23. IDE  support  (XML) 23 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 24. Recap  -­‐  core  concepts  of  Camel  Enterprise  Integra(on  Pa3erns  Rou(ng  Domain  Specific  Language  (DSL)  Endpoints  &  URIs  Predicates  &  Expressions  Components  (lots  of  ‘em!)  Test  Kit               and  much  more  ... 24 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 25. Beans 25 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 26. Bean  as  a  Message  Translator from("activemq:Incoming”). beanRef("myBeanName”, “someMethod"). to("activemq:Outgoing"); 26 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 27. Bean   public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 27 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 28. Binding  Beans  to  Camel  Endpoints public class Foo { @Consume(uri="activemq:cheese") public Object onCheese(String name) { ... } } 28 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 29. Binding  Method  Arguments public class Foo { public Object onCheese( @XPath("/foo/bar") String name, @Header("JMSCorrelationID") String id) { ... } } for  more  annota(ons  see h3p://camel.apache.org/bean-­‐integra(on.html 29 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 30. Sending  messages  to  endpoints public class Foo { @Produce(uri="activemq:foo.bar") ProducerTemplate producer; public void doSomething() { if (whatever) { producer.sendBody("<hello>world!</hello>"); } } } 30 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 31. Sending  messages  to  endpoints public interface MyListener { String sayHello(String name); } public class MyBean { @Produce(uri = "activemq:foo") protected MyListener producer; public void doSomething() { // lets send a message String response = producer.sayHello("James"); } } 31 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 32. Fastest  way  to  learn....  Manning  top-­‐15  year  to  date  (2010) #10 #12 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 33. Fuse  IDE:  the  fastest  way  to  get  riding!  free  eclipse  based  tool  for  Apache  Camel  &  Ac(veMQ  etc • create  projects,  edit  routes,  run  stuff,  visualise,  trace  &  diagnose h3p://fusesource.com/ 33 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 34. Summary:  Camel  rocks  Ride  that  Camel • h8p://camel.apache.org/  Download  Fuse  IDE • h8p://fusesource.com  Buy  the  book!    Don’t  get  the  hump! 34 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013
  • 35. Any  Ques(ons? twi3er:  @jstrachan  #fusenews h3p://fusesource.com 35 Copyright  ©  2013  Red  Hat,  Inc.  All  rights  reserved.   Friday, February 8, 2013