Apache
Camelby
Claus
Ibsen                                                                                                ...
Agenda   Who
is
Claus
Ibsen?   What
is
Apache
Camel?   A
liFle
example   Whats
included
in
the
box?   Running
Camel ...
Who
is
Claus
Ibsen? Principal
So3ware
Engineer
at
FuseSource    • 
Full
6me
Apache
Camel
hacker Apache
Camel
commiFer
fo...
My
Employer FuseSource
‐
hFp://fusesource.com
  
4   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries...
Why
the
name
Camel? What
does
Camel
stand
for?                                                         Concise           ...
Why
the
name
Camel? The
reason
for
the
Camel
name                            Camel
is
easy
to
remember
and
type          ...
The
birth
of
Apache
Camel 
Camel’s
parents7    Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affi...
The
birth
of
Apache
Camel First
commit  r519901
|
jstrachan
|
2007‐03‐19
11:54:57
+0100  (Mon,
19
Mar
2007)
|
1
line    I...
My
first
commit My
ini6al
commit    r640963
|
davsclaus
|
2008‐03‐25
21:07:10
+0100    (Tue,
25
Mar
2008)
|
1
line    Adde...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liFle
example    Whats
included
in
the
box?    Running
Ca...
What
is
Apache
Camel Quote
from
the
web
site
     • 
hFp://camel.apache.org                              Apache
Camel
is
...
What
is
Apache
Camel Why
do
we
need
integra6on?     • 
Your
apps
are
build
using
different
tech
stacks     • 
Cri6cal
for
...
What
is
Apache
Camel What
is
Enterprise
Integra6on
PaFerns?      System
A                                                ...
What
is
Apache
Camel What
is
Enterprise
Integra6on
PaFerns?                                                              ...
What
is
Apache
Camel Camel
and
EIP      Ac6veMQ                                                                          ...
What
is
Apache
Camel Camel
and
EIP       from                                                   filter                    ...
What
is
Apache
Camel Camel
and
EIP     from(A)                                       filter(predicate)                    ...
What
is
Apache
Camel Camel
and
EIP     from(A)                                       .filter(isWidget)                    ...
What
is
Apache
Camel Camel
and
EIP                           from(A).filter(isWidget).to(B);19   Copyright
©
2011
Progress...
What
is
Apache
Camel Camel
and
EIP     isWidget
=
xpath("/quote/product
=
‘widget’");     from(A).filter(isWidget).to(B);2...
What
is
Apache
Camel Camel
and
EIPEndpoint
A
=
endpoint("ac6vemq:quote");Endpoint
B
=
endpoint("mq:quote");Predicate
isWi...
What
is
Apache
Camel Filter
Routepublic void configure() throws Exception {    Endpoint A = endpoint("activemq:quote");  ...
What
is
Apache
Camel Filter
Route
‐
Java
DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute exten...
What
is
Apache
Camel Filter
Route
‐
Java
DSL     import org.apache.camel.builder.RouteBuilder;     public class FilterRou...
What
is
Apache
Camel Lets
look
at
the
most
famous
paFern25   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subs...
What
is
Apache
Camel Content
Based
Router26   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affil...
What
is
Apache
Camel Content
Based
Router
‐
XML
DSL <camelContext>   <route>     <from uri="activemq:newOrders"/>     <ch...
What
is
Apache
Camel Content
Based
Router
‐
Java
DSL     from("activemq:newOrders")       .choice()         .when().xpath...
What
is
Apache
Camel Endpoints
as
URIs                                           use file instead     from("file:inbox/or...
What
is
Apache
Camel Endpoints
as
URIs                                                                                   ...
What
is
Apache
Camel Summary   • 
Integra6on
framework   • 
Enterprise
Integra6on
PaFerns
(EIP)
   • 
Rou6ng
(using
DSL) ...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liQle
example    Whats
included
in
the
box?    Running
Ca...
A
liFle
example Based
on
community
user
(Gunnar
Hillert)     • hFp://hillert.blogspot.com/2009/09/camellos‐discovering‐ap...
A
liFle
example  Goals
using
Enterprise
Integra6on
PaFerns      1                                   2                    ...
A
liFle
example Goals
using
Enterprise
Integra6on
PaFerns     from                      throQle                          ...
A
liFle
example Camel
Route
in
XML
DSL <camelContext>   <route>     <from uri="file:camellos/inbox?move=.done"/>     <thr...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liFle
example    Whats
included
in
the
box?    Running
Ca...
Whats
included
in
the
box? Highlights
of
some
of
the
features  







(there
is
much
more)38   Copyright
©
2011
Progress...
Whats
included
in
the
box? 50
Enterprise
Integra6on
PaFerns                                            http://camel.apach...
Whats
included
in
the
box? Pipes
and
Filters
EIP     from("file:inbox")       .pipeline()       .to("bean:decrypt")      ...
Whats
included
in
the
box? Pipes
and
Filters
EIP     from("file:inbox")       .to("bean:decrypt")       .to("bean:authent...
Whats
included
in
the
box? SpliFer
EIP       File                                            Splitter                    ...
Whats
included
in
the
box? Recipient
List
EIP                                                                            ...
Whats
included
in
the
box? Recipient
List
EIP                                                                            ...
Whats
included
in
the
box? 80
Components
               activemq                                     cxf                 ...
Whats
included
in
the
box? 80
Components
                   language                             properties              ...
Whats
included
in
the
box? 19
Data
Formats
                                                      bindy                   ...
Whats
included
in
the
box? 15
Expression
Languages                                                        BeanShell      ...
Whats
included
in
the
box? DSL
in
mul6ple
flavors                                                                         ...
Whats
included
in
the
box? Bean
as
Message
Translator
EIP50   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
sub...
Whats
included
in
the
box? Bean
as
Message
Translator
EIP            from("activemq:incoming”).              beanRef("myB...
Whats
included
in
the
box? Test
Kit     •   camel‐test
JAR
(JUnit)     •   camel‐testng
JAR
(TestNG)     •   Supports
Spr...
Whats
included
in
the
box? Test
Kit
from
IDE53   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
...
Whats
included
in
the
box? Developer
Web
Console54   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries...
Whats
included
in
the
box? Fuse
IDE
‐
hFp://fusesource.com/products/fuse‐ide‐camel/55   Copyright
©
2011
Progress
So3ware...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liFle
example    Whats
included
in
the
box?    Running
Ca...
Running
Camel Deployment
Strategy                                                                                        ...
Running
Camel Java
Applica6on     CamelContext context = new DefaultCamelContext();     context.addRoutes(new MyRouteBuil...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liFle
example    Whats
included
in
the
box?    Running
Ca...
Live
Demo
1 Ac6veMQ
and
Camel                                   example.A                                                ...
Live
Demo
2 Groovy
Script                  HTTP Service                                                                  ...
Live
Demo
2 Groovy
Script
(mycamel.groovy)     import org.apache.camel.builder.RouteBuilder     import org.apache.camel.i...
Live
Demo
2 Groovy
Script
(mycamel.groovy
‐
cont.)     ...     def camelContext = new DefaultCamelContext()     camelCont...
Live
Demo
3 Create
new
Project
using
Maven                                                                               ...
Live
Demo
3 Create
new
Project
using
Maven65   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affi...
Agenda    Who
is
Claus
Ibsen?    What
is
Apache
Camel?    A
liFle
example    Whats
included
in
the
box?    Running
Ca...
More
Informa6on Where
do
I
get
more
informa6on?     • Apache
Camel
Website       – hFp://camel.apache.org67     Copyright...
More
Informa6on Where
do
I
get
more
informa6on?     • Join
the
Mailinglist        – hFp://camel.apache.org/mailing‐lists....
More
Informa6on FuseSource
‐
hFp://fusesource.com
  
69   Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidi...
More
Informa6on Where
do
I
get
more
informa6on?     • Camel
in
Ac6on
book:
hFp://manning.com/ibsen                       ...
Q
and
A                                                                 ?71   Copyright
©
2011
Progress
So3ware
Corpora6on...
Upcoming SlideShare
Loading in …5
×

Apache Camel - JEEConf May 2011

4,610 views

Published on

Claus Ibsen presented Apache Camel at the JEEConf in Kiew, Ukraine, in may 2011.

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

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,610
On SlideShare
0
From Embeds
0
Number of Embeds
727
Actions
Shares
0
Downloads
200
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Apache Camel - JEEConf May 2011

    1. 1. Apache
Camelby
Claus
Ibsen A
Progress
So3ware
Company1 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    2. 2. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A2 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    3. 3. Who
is
Claus
Ibsen? Principal
So3ware
Engineer
at
FuseSource • 
Full
6me
Apache
Camel
hacker Apache
Camel
commiFer
for
3
years • Camel
Project
Lead • 
3.5
years
working
with
Camel Author
of
Camel
in
Ac6on
book Contact • 
TwiFer:
@davsclaus • 
Blog:
hFp://davsclaus.blogspot.com • 
Email:
cibsen@fusesource.com hFp://www.manning.com/ibsen3 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    4. 4. My
Employer FuseSource
‐
hFp://fusesource.com
 
4 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    5. 5. Why
the
name
Camel? What
does
Camel
stand
for? Concise Application Messaging Exchange Language hFp://camel.apache.org/why‐the‐name‐camel.html5 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    6. 6. Why
the
name
Camel? The
reason
for
the
Camel
name Camel
is
easy
to
remember
and
type hFp://camel.apache.org/why‐the‐name‐camel.html6 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    7. 7. The
birth
of
Apache
Camel 
Camel’s
parents7 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    8. 8. The
birth
of
Apache
Camel First
commit r519901
|
jstrachan
|
2007‐03‐19
11:54:57
+0100 (Mon,
19
Mar
2007)
|
1
line Ini?al
checkin
of
Camel
rou?ng
library Apache
Camel
1.0
released
June
20078 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    9. 9. My
first
commit My
ini6al
commit r640963
|
davsclaus
|
2008‐03‐25
21:07:10
+0100 (Tue,
25
Mar
2008)
|
1
line Added
unit
test
for
mistyped
URI Top‐3
CommiQers 

4074

Claus
Ibsen 

2073

Willem
Ning
Jiang 

1316

James
Strachan git
shortlog
‐ns9 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    10. 10. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A10 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    11. 11. What
is
Apache
Camel Quote
from
the
web
site
 • 
hFp://camel.apache.org Apache
Camel
is
a powerful
Open
Source Integra6on
Framework based
on
known Enterprise
Integra6on
PaFerns11 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    12. 12. What
is
Apache
Camel Why
do
we
need
integra6on? • 
Your
apps
are
build
using
different
tech
stacks • 
Cri6cal
for
your
business
to
integrate Why
Integra6on
Framework? • 
Framework
do
the
heavy
li3ing • 
Focus
on
business
problem
 • 
Not
"reinven6ng
the
wheel"12 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    13. 13. What
is
Apache
Camel What
is
Enterprise
Integra6on
PaFerns? System
A System
B13 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    14. 14. What
is
Apache
Camel What
is
Enterprise
Integra6on
PaFerns? Its
a
book 14 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    15. 15. What
is
Apache
Camel Camel
and
EIP Ac6veMQ WebSphereMQ 15 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    16. 16. What
is
Apache
Camel Camel
and
EIP from filter send
to A message B16 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    17. 17. What
is
Apache
Camel Camel
and
EIP from(A) filter(predicate) to(B)17 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    18. 18. What
is
Apache
Camel Camel
and
EIP from(A) .filter(isWidget) .to(B)18 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    19. 19. What
is
Apache
Camel Camel
and
EIP from(A).filter(isWidget).to(B);19 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    20. 20. What
is
Apache
Camel Camel
and
EIP isWidget
=
xpath("/quote/product
=
‘widget’"); from(A).filter(isWidget).to(B);20 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    21. 21. What
is
Apache
Camel Camel
and
EIPEndpoint
A
=
endpoint("ac6vemq:quote");Endpoint
B
=
endpoint("mq:quote");Predicate
isWidget
=
xpath("/quote/product
=
‘widget’");from(A).filter(isWidget).to(B);21 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    22. 22. What
is
Apache
Camel Filter
Routepublic void configure() throws Exception { Endpoint A = endpoint("activemq:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B);}22 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    23. 23. What
is
Apache
Camel Filter
Route
‐
Java
DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { Endpoint A = endpoint("activemq:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } }23 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    24. 24. What
is
Apache
Camel Filter
Route
‐
Java
DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:quote") .filter().xpath("/quote/product =‘widget’") .to("mq:quote"); } }24 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    25. 25. What
is
Apache
Camel Lets
look
at
the
most
famous
paFern25 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    26. 26. What
is
Apache
Camel Content
Based
Router26 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    27. 27. What
is
Apache
Camel Content
Based
Router
‐
XML
DSL <camelContext> <route> <from uri="activemq:newOrders"/> <choice> <when> <xpath>/order/product = widget</xpath> <to uri="activemq:orders.widgets"/> </when> <otherwise> <to uri="activemq:orders.gadgets"/> </otherwise> </choice> </route> </camelContext>27 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    28. 28. What
is
Apache
Camel Content
Based
Router
‐
Java
DSL from("activemq:newOrders") .choice() .when().xpath("/order/product = widget") .to("activemq:orders.widget") .otherwise() .to("activemq:orders.gadget");28 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    29. 29. What
is
Apache
Camel Endpoints
as
URIs use file instead from("file:inbox/orders") .choice() .when().xpath("/order/product = widget") .to("activemq:orders.widget") .otherwise() .to("activemq:orders.gadget");29 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    30. 30. What
is
Apache
Camel Endpoints
as
URIs parameters from("file:inbox/orders?delete=true") .choice() .when().xpath("/order/product = widget") .to("activemq:orders.widget") .otherwise() .to("activemq:orders.gadget");30 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    31. 31. What
is
Apache
Camel Summary • 
Integra6on
framework • 
Enterprise
Integra6on
PaFerns
(EIP)
 • 
Rou6ng
(using
DSL) • 
Easy
configura6on
(endpoints
as
URIs) • 
No
heavy
specifica6on • 
No
container
dependency • 
Payload
agnos6c • 
A
lot
of
components31 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    32. 32. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liQle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A32 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    33. 33. A
liFle
example Based
on
community
user
(Gunnar
Hillert) • hFp://hillert.blogspot.com/2009/09/camellos‐discovering‐apache‐camel‐ii.html Goals • 
1)
Pickup
files
from
a
directory • 
2)
Make
sure
we
only
pickup
3
files
per
30
seconds • 
3)
Store
into
JMS
queue • 
4)
Listen
on
JMS
queue • 
5)
And
upload
file
to
FTP
server33 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    34. 34. A
liFle
example  Goals
using
Enterprise
Integra6on
PaFerns 1 2 3 4 5  Goals • 1)
Pickup
files
from
a
directory • 2)
Make
sure
we
only
pickup
3
files
per
30
seconds • 3)
Store
into
JMS
queue • 4)
Listen
on
JMS
queue • 5)
And
upload
file
to
FTP
server34 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    35. 35. A
liFle
example Goals
using
Enterprise
Integra6on
PaFerns from throQle to from to Goals • 1)
Pickup
files
from
a
directory • 2)
Make
sure
we
only
pickup
3
files
per
30
seconds • 3)
Store
into
JMS
queue • 4)
Listen
on
JMS
queue • 5)
And
upload
file
to
FTP
server35 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    36. 36. A
liFle
example Camel
Route
in
XML
DSL <camelContext> <route> <from uri="file:camellos/inbox?move=.done"/> <throttle maximumRequestsPerPeriod="3" timePeriodMillis="30000”> <to uri="activemq:queue:camellos"/> </throttle> </route> <route> <from uri="activemq:queue:camellos"/> <to uri="ftp://admin:secret@localhost:3333"/> </route> </camelContext>36 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    37. 37. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A37 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    38. 38. Whats
included
in
the
box? Highlights
of
some
of
the
features 







(there
is
much
more)38 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    39. 39. Whats
included
in
the
box? 50
Enterprise
Integra6on
PaFerns http://camel.apache.org/eip39 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    40. 40. Whats
included
in
the
box? Pipes
and
Filters
EIP from("file:inbox") .pipeline() .to("bean:decrypt") .to("bean:authenticate") .to("bean:deDup");40 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    41. 41. Whats
included
in
the
box? Pipes
and
Filters
EIP from("file:inbox") .to("bean:decrypt") .to("bean:authenticate") .to("bean:deDup"); pipeline()
is
default
mode
in
Camel
and
can
usually
be
omi6ed41 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    42. 42. Whats
included
in
the
box? SpliFer
EIP File Splitter Custom ActiveMQ -> XML from("file:inbox") .split(body().tokenize("n") .marshal(customToXml) .to("activemq:line");42 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    43. 43. Whats
included
in
the
box? Recipient
List
EIP stock.APPL stock.ORCL stock.XXXX REST Service ActiveMQ from("restlet:http:localhost:9080 /stock/${symbol}?restletMethods=post") .recipientList() .simple("activemq:stocks.${header.symbol}");43 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    44. 44. Whats
included
in
the
box? Recipient
List
EIP stock.APPL stock.ORCL stock.XXXX REST Service ActiveMQ from("restlet:http:localhost:9080 /stock/${symbol}?restletMethods=post") .recipientList() .simple("activemq:stocks.${header.symbol}"); 
curl
‐X

POST
‐d
"120"
"hFp://localhost:9080/stock/ORCL"44 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    45. 45. Whats
included
in
the
box? 80
Components
 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 http://camel.apache.org/components.html45 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    46. 46. Whats
included
in
the
box? 80
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 http://camel.apache.org/components.html46 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    47. 47. Whats
included
in
the
box? 19
Data
Formats
 bindy protobuf castor serialization csv soap crypto syslog dozer tidy markup flatpack xml beans gzip xml security hl7 xstream jaxb zip json http://camel.apache.org/data-format.html47 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    48. 48. Whats
included
in
the
box? 15
Expression
Languages BeanShell Python EL Ruby Groovy Simple JavaScript SpEL JSR 223 SQL OGNL XPath MVEL XQuery PHP hFp://camel.apache.org/languages.html48 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    49. 49. Whats
included
in
the
box? DSL
in
mul6ple
flavors Java <route> from(A).filter(isWidget).to(B); <from ref="A"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to ref="B"/> </filter> </route> Scala from(A) filter(isWidget) --> B49 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    50. 50. Whats
included
in
the
box? Bean
as
Message
Translator
EIP50 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    51. 51. Whats
included
in
the
box? Bean
as
Message
Translator
EIP from("activemq:incoming”). beanRef("myBeanName", "someMethod"). to("activemq:outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } }51 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    52. 52. Whats
included
in
the
box? Test
Kit • camel‐test
JAR
(JUnit) • camel‐testng
JAR
(TestNG) • Supports
Spring • Easy
to
test • Quick
prototyping52 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    53. 53. Whats
included
in
the
box? Test
Kit
from
IDE53 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    54. 54. Whats
included
in
the
box? Developer
Web
Console54 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    55. 55. Whats
included
in
the
box? Fuse
IDE
‐
hFp://fusesource.com/products/fuse‐ide‐camel/55 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    56. 56. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A56 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    57. 57. Running
Camel Deployment
Strategy Known
Containers • 
No
container
dependency Fuse
ESB • 
Lightweight Fuse
Message
Broker Apache
ServiceMix • 
Embed
 Apache
Ac6veMQ Deployment
Op6ons Apache
Tomcat JeFy • 
Standalone JBoss • 
WAR IBM
WebSphere Oracle
WebLogic • 
Spring Oracle
OC4j • 
J2EE Glassfish Google
App
Engine • 
JBI Amazon
EC2 • 
OSGi ...
others • 
Cloud57 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    58. 58. Running
Camel Java
Applica6on CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start(); Spring
Applica6on <beans xmlns="http://www.springframework.org/schema/beans"> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="file:/orders"/> ... </route> </camelContext> </beans>58 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    59. 59. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A59 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    60. 60. Live
Demo
1 Ac6veMQ
and
Camel example.A example.BTo
start
Ac6veMQ:
bin/ac6vemq
startWebConsole:
hFp://localhost:8161/60 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    61. 61. Live
Demo
2 Groovy
Script HTTP Service Transform groovy
mycamel.groovy curl
hFp://localhost:808061 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    62. 62. Live
Demo
2 Groovy
Script
(mycamel.groovy) import org.apache.camel.builder.RouteBuilder import org.apache.camel.impl.DefaultCamelContext @Grab(group="org.apache.camel",module="camel-core",version="2.7.1") @Grab(group="org.apache.camel",module="camel-jetty",version="2.7.1") @Grab(group="org.slf4j",module="slf4j-jdk14",version="1.6.1") class MyRouteBuilder extends RouteBuilder { void configure() { from("jetty:http://localhost:8080/") .to("log:input") .transform(constant("Hello from Groovyn")) } }62 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    63. 63. Live
Demo
2 Groovy
Script
(mycamel.groovy
‐
cont.) ... def camelContext = new DefaultCamelContext() camelContext.addRoutes(new MyRouteBuilder()) camelContext.start() System.console().readLine() camelContext.stop()63 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    64. 64. Live
Demo
3 Create
new
Project
using
Maven UK messages File Content Based Router Other messages mvn
archetype:generate (camel‐archetype‐spring) mvn
eclipse:eclipse mvn
camel:run64 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    65. 65. Live
Demo
3 Create
new
Project
using
Maven65 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    66. 66. Agenda Who
is
Claus
Ibsen? What
is
Apache
Camel? A
liFle
example Whats
included
in
the
box? Running
Camel Live
Demos Q
and
A66 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    67. 67. More
Informa6on Where
do
I
get
more
informa6on? • Apache
Camel
Website – hFp://camel.apache.org67 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    68. 68. More
Informa6on Where
do
I
get
more
informa6on? • Join
the
Mailinglist – hFp://camel.apache.org/mailing‐lists.html
 • Try
the
IRC‐room – hFp://camel.apache.org/irc‐room.html • Use
the
Search
Box • Checkout
the
Camel
Ar6cles – hFp://camel.apache.org/ar6cles.html • Run
Camel
Examples – hFp://camel.apache.org/examples.html
68 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    69. 69. More
Informa6on FuseSource
‐
hFp://fusesource.com
 
69 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    70. 70. More
Informa6on Where
do
I
get
more
informa6on? • Camel
in
Ac6on
book:
hFp://manning.com/ibsen 40%
Discount
Code Use
coupon
code camel40 when
ordering
from Manning70 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company
    71. 71. Q
and
A ?71 Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
 A
Progress
So3ware
Company

    ×