SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (7)

Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in Java
JavaDayUA
 
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
Arnaud 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 classpath
Alexis 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 2012
Charles Nutter
 
Download It
Download ItDownload It
Download It
webhostingguy
 
Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in Java
JavaDayUA
 
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
Arnaud 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 classpath
Alexis 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 2012
Charles Nutter
 

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
Domingo Suarez Torres
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
Rainer 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 presentation
Claus Ibsen
 
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
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
Abimael Desales López
 
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
 
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
Domingo Suarez Torres
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
Rainer 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 presentation
Claus Ibsen
 
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
 
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
 
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
 
Ad

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

Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
JBug Italy
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
FuseSource.com
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
Marcelo 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 2012
Olivier 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
 
Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
David Keener
 
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
 
20160908 hivemall meetup
20160908 hivemall meetup20160908 hivemall meetup
20160908 hivemall meetup
Takeshi Yamamuro
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121
WANGCHOU 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 Analyzer
Vladimir 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 BOF
glassfish
 
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
elliando 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 Cloudera
Dataconomy Media
 
AppengineJS
AppengineJSAppengineJS
AppengineJS
Panagiotis Astithas
 
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
Olivier 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-24
Jim Jagielski
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
Tasawr Interactive
 
Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
JBug Italy
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
FuseSource.com
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
Marcelo 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 2012
Olivier 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_20081121
WANGCHOU 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 Analyzer
Vladimir 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 BOF
glassfish
 
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
elliando 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 Cloudera
Dataconomy 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 2012
Olivier 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-24
Jim Jagielski
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
Tasawr Interactive
 
Ad

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
JBUG 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 9
JBUG London
 
Introduction to PicketLink
Introduction to PicketLinkIntroduction to PicketLink
Introduction to PicketLink
JBUG London
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
JBUG 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.0
JBUG 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 much
JBUG 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-MQ
JBUG London
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM Systems
JBUG London
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made Easy
JBUG London
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
JBUG 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 NoSQL
JBUG 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 Schabell
JBUG London
 
JBoss AS7 by Matt Brasier
JBoss AS7 by Matt BrasierJBoss AS7 by Matt Brasier
JBoss AS7 by Matt Brasier
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 Server
JBUG 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 9
JBUG London
 
Introduction to PicketLink
Introduction to PicketLinkIntroduction to PicketLink
Introduction to PicketLink
JBUG London
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
JBUG 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.0
JBUG 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 much
JBUG 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-MQ
JBUG London
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM Systems
JBUG London
 
Arquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made EasyArquillian - Integration Testing Made Easy
Arquillian - Integration Testing Made Easy
JBUG London
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
JBUG 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 NoSQL
JBUG 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 Schabell
JBUG London
 
JBoss AS7 by Matt Brasier
JBoss AS7 by Matt BrasierJBoss AS7 by Matt Brasier
JBoss AS7 by Matt Brasier
JBUG London
 

Recently uploaded (20)

Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 

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 • [email protected] • 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