Mais conteúdo relacionado
Semelhante a Apache camel community day - october 2010 (20)
Apache camel community day - october 2010
- 1. Apache
Camel
Claus Ibsen
Principal Software Engineer, FuseSource
October 2010
A
Progress
So3ware
Company
1 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
1
- 2. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
2 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
2
- 3. Who
is
Claus
Ibsen?
Principal
SoEware
Engineer
at
FuseSource
• Full
Ime
Apache
Camel
hacker
Apache
Camel
commi<er
for
2.5
years
• Almost
3
years
working
with
Camel
Co-‐author
of
Camel
in
AcIon
book
• Available
in
late
2010
Contact
• claus.ibsen@fusesource.com
• h<p://davsclaus.blogspot.com
• h<p://twi<er.com/davsclaus
http://
www.manning.com/
ibsen
3 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
3
- 4. Why
the
name
Camel?
Camel is easy
to remember
and type
4 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
4
- 5. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
5 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
5
- 6. The
birth
of
Apache
Camel
• Camel’s
parents
6 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
6
- 7. The
birth
of
Apache
Camel
IniIal
Commit
Log
r519901
|
jstrachan
|
2007-‐03-‐19
11:54:57
+0100
(Mon,
19
Mar
2007)
|
1
line
IniGal
checkin
of
Camel
rouGng
library
Apache
Camel
1.0
released
June
2007
Apache
Camel
is
3
years
old
7 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
7
- 8. The
birth
of
Apache
Camel
My
iniIal
commit
r640963
|
davsclaus
|
2008-‐03-‐25
21:07:10
+0100
(Tue,
25
Mar
2008)
|
1
line
Added
unit
test
for
mistyped
URI
8 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
8
- 9. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
9 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
9
- 10. What
is
Apache
Camel
Quote
from
the
web
site
-‐
h<p://camel.apache.org
Apache
Camel
is
a
powerful
Open
Source
Integra8on
Framework
based
on
known
Enterprise
Integra8on
Pa?erns
10 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
10
- 11. What
is
Apache
Camel
Why
do
we
need
integraIon?
• Your
apps
are
build
using
different
tech
stacks
• CriIcal
for
your
business
to
integrate
Why
IntegraIon
Framework?
• Framework
do
the
heavy
liEing
• Focus
on
business
problem
• Not
"reinvenIng
the
wheel"
11 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
11
- 12. What
is
Apache
Camel
What
is
Enterprise
IntegraIon
Pa<erns?
12 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
12
- 13. What
is
Apache
Camel
What
are
Enterprise
IntegraIon
Pa<erns?
13 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
13
- 14. What
is
Apache
Camel
What
is
Enterprise
IntegraIon
Pa<erns?
Its a book
14 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
14
- 15. What
is
Apache
Camel
Lets
look
at
one
of
the
pa<erns
15 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
15
- 16. What
is
Apache
Camel
Use
Case
ActiveMQ WebSphereMQ
16 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
16
- 17. What
is
Apache
Camel
Filter
Pa<ern
17 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
17
- 18. What
is
Apache
Camel
Filter
Pa<ern
from filter send to
A message B
18 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
18
- 19. What
is
Apache
Camel
Filter
Pa<ern
from(A) filter(predicate) to(B)
19 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
19
- 20. What
is
Apache
Camel
Filter
Pa<ern
from(A) .filter(isWidget) .to(B)
20 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
20
- 21. What
is
Apache
Camel
Filter
Route
from(A).filter(isWidget).to(B);
21 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
21
- 22. What
is
Apache
Camel
Filter
Route
isWidget = xpath(“/quote/product = ‘widget’”);
from(A).filter(isWidget).to(B);
22 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
22
- 23. What
is
Apache
Camel
Filter
Route
Endpoint A = endpoint(“activemq:queue:quote”);
Endpoint B = endpoint(“mq:quote”);
Predicate isWidget = xpath(“/quote/product = ‘widget’”);
from(A).filter(isWidget).to(B);
23 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
23
- 24. What
is
Apache
Camel
Filter
Route
-‐
Java
DSL
public void configure() throws Exception {
Endpoint A = endpoint("activemq:queue:quote");
Endpoint B = endpoint("mq:quote");
Predicate isWidget = xpath("/quote/product = ‘widget’");
from(A).filter(isWidget).to(B);
}
24 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
24
- 25. What
is
Apache
Camel
Filter
Route
-‐
Java
DSL
import org.apache.camel.builder.RouteBuilder;
public class FilterRoute extends RouteBuilder {
public void configure() throws Exception {
Endpoint A = endpoint("activemq:queue:quote");
Endpoint B = endpoint("mq:quote");
Predicate isWidget = xpath("/quote/product = ‘widget’");
from(A).filter(isWidget).to(B);
}
}
25 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
25
- 26. What
is
Apache
Camel
Filter
Route
-‐
Java
DSL
import org.apache.camel.builder.RouteBuilder;
public class FilterRoute extends RouteBuilder {
public void configure() throws Exception {
from("activemq:queue:quote")
.filter().xpath("/quote/product =‘widget’")
.to("mq:quote");
}
}
26 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
26
- 27. What
is
Apache
Camel
IDE
Tooling
Code
Assistance
JavaDoc
27 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
27
- 28. What
is
Apache
Camel
IDE
Tooling
Code
Assistance
28 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
28
- 29. What
is
Apache
Camel
Lets
look
at
the
most
famous
pa<ern
29 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
29
- 30. What
is
Apache
Camel
Content
Based
Router
30 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
30
- 31. What
is
Apache
Camel
Content
Based
Router
-‐
Spring
XML
<camelContext>
<route>
<from uri="activemq:NewOrders"/>
<choice>
<when>
<xpath>/order/product = 'widget'</xpath>
<to uri="activemq:Orders.Widgets"/>
</when>
<otherwise>
<to uri="activemq:Orders.Gadgets"/>
</otherwise>
</choice>
</route>
</camelContext>
31 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
31
- 32. What
is
Apache
Camel
Content
Based
Router
-‐
Java
DSL
from("activemq:NewOrders")
.choice()
.when().xpath(“/order/product = 'widget'”)
.to(“activemq:Orders.Widget”)
.otherwise()
.to(“acitvemq:Orders.Gadget”);
32 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
32
- 33. What
is
Apache
Camel
Summary
• Camel
is
an
integraIon
framework
• Based
on
Enterprise
IntegraIon
Pa<erns
• RouIng
and
mediaIon
• Easy
to
use
DSL
to
define
routes
• No
heavy
specificaIon
• No
container
dependency
• Payload
agnosIc
• ConnecIvity
to
a
great
wealth
of
transports
• Apache
licensed
33 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
33
- 34. What
is
Apache
Camel
Mission
Statement
Making
integra8on
easier
and
more
accessible
to
developers
34 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
34
- 35. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
liSle
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
35 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
35
- 36. A
li<le
example
Based
on
community
user
(Gunnar
Hillert)
• hCp://hillert.blogspot.com/2009/09/camellos-‐discovering-‐apache-‐camel-‐ii.html
Goals
• 1)
Pickup
files
from
a
directory
• 2)
Make
sure
we
only
pickup
3
files
per
30
seconds
• 3)
Store
into
JMS
queue
• 4)
Listen
on
JMS
queue
• 5)
And
upload
file
to
FTP
server
36 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
36
- 37. A
li<le
example
Goals
using
Enterprise
IntegraIon
Pa<erns
1 2 3 4 5
Goals
• 1)
Pickup
files
from
a
directory
• 2)
Make
sure
we
only
pickup
3
files
per
30
seconds
• 3)
Store
into
JMS
queue
• 4)
Listen
on
JMS
queue
• 5)
And
upload
file
to
FTP
server
37 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
37
- 38. A
li<le
example
Goals
using
Enterprise
IntegraIon
Pa<erns
from throttle to from to
Goals
• 1)
Pickup
files
from
a
directory
• 2)
Make
sure
we
only
pickup
3
files
per
30
seconds
• 3)
Store
into
JMS
queue
• 4)
Listen
on
JMS
queue
• 5)
And
upload
file
to
FTP
server
38 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
38
- 39. A
li<le
example
Camel
DSL
in
XML
<camelContext>
<route>
<from uri="file:camellos/inbox?move=.done"/>
<throttle maximumRequestsPerPeriod="3”
timePeriodMillis="30000”>
<to uri="activemq:queue:camellos"/>
</throttle>
</route>
<route>
<from uri="activemq:queue:camellos"/>
<to uri="ftp://admin:secret@localhost:3333"/>
</route>
</camelContext>
39 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
39
- 40. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
40 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
40
- 41. Whats
included
in
the
box?
Highlights
of
whats
included
in
Camel
41 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
41
- 42. Whats
included
in
the
box?
50+
Enterprise
IntegraIon
Pa<erns
http://camel.apache.org/enterprise-integration-patterns.html
42 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
42
- 43. Whats
included
in
the
box?
70+
Components
activemq crypto flatpack irc ldap
activemq-journal cxf freemarker javaspace mail/imap/pop3
amqp cxfrs ftp/ftps/sftp jbi mina
atom dataset gae jcr mock
bean direct hdfs jdbc msv
bean validation esper hibernate jetty nagios
browse event hl7 jms netty
cache exec http jpa nmr
cometd file ibatis jt/400 printer
http://camel.apache.org/components.html
43 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
43
- 44. Whats
included
in
the
box?
70+
Components
properties scalate stream xslt
quartz seda string-template ejb
quickfix servlet test jasypt
ref smooks timer sip
restlet smpp validation db4o
rmi snmp velocity language
rnc spring-integration vm
rng spring-security xmpp
rss sql xquery
http://camel.apache.org/components.html
44 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
44
- 45. Whats
included
in
the
box?
18
Data
Formats
bindy protobuf
castor serialization
csv soap
crypto tidy markup
flatpack xml beans
gzip xml security
hl7 xstream
jaxb zip
json dozer
http://camel.apache.org/data-format.html
45 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
45
- 46. Whats
included
in
the
box?
Data
Format
from("activemq:QueueWithJavaObjects”)
.marshal().jaxb()
.to("mq:QueueWithXmlMessages");
46 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
46
- 47. Whats
included
in
the
box?
Predicates
&
Expressions
BeanShell PHP
EL Python
Groovy Ruby
JavaScript Simple
JSR 223 SQL
OGNL XPath
MVEL XQuery
http://camel.apache.org/languages.html
47 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
47
- 48. Whats
included
in
the
box?
DSL
in
3
programming
languages
Java
XML
from(A).filter(isWidget).to(B);
<route>
<from ref="A"/>
<filter>
<xpath>/quote/product = ‘widget’</xpath>
<to ref="B"/>
</filter>
</route>
from(A) filter(isWidget) --> B
Scala
48 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
48
- 49. Whats
included
in
the
box?
Type
Converters
INFO DefaultTypeConverter
- Loaded 148 type converters
49 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
49
- 50. Whats
included
in
the
box?
Custom
Type
Converters
@Converter
public class MyTypeConverter {
@Converter
public String toString(MyOrder order) {
StringBuilder sb = new StringBuilder();
...
return sb.toString();
}
}
# META-INF/services/org/apache/camel/TypeConverter
com.acme.converters
META-INF file in the JAR
50 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
50
- 51. Whats
included
in
the
box?
Powerful
bean
integraIon
• Adapt
to
your
beans
• EIP
as
@annotaIons
– @Produce
– @Consume
– @RecipientList
– @Rou6ngSlip
– @DynamicRouter
51 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
51
- 52. Whats
included
in
the
box?
Bean
as
Message
Translator
52 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
52
- 53. Whats
included
in
the
box?
Bean
as
Message
Translator
from("activemq:Incoming”).
beanRef("myBeanName”, “someMethod").
to("activemq:Outgoing");
public class Foo {
public String someMethod(String name) {
return “Hello “ + name;
}
}
53 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
53
- 54. Whats
included
in
the
box?
Bean
Parameter
Binding
public class Foo {
public String processOrder(
String orderAsXml,
@XPath(”/order/@id”) String oid,
@Header(”JMSCorrelationID”) String cid) {
...
}
}
54 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
54
- 55. Whats
included
in
the
box?
Sending
message
public class Foo {
@Produce(uri="activemq:foo.bar")
ProducerTemplate producer;
public void doSomething() {
if (whatever) {
producer.sendBody("<hello>world!</hello>");
}
}
}
55 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
55
- 56. Whats
included
in
the
box?
Receiving
message
public class Foo {
@Consume(uri="activemq:cheese")
public void onCheese(String name) {
...
}
}
56 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
56
- 57. Whats
included
in
the
box?
Test
Kit
• camel-‐test.jar
• JUnit
based
(3.x
and
4.x)
• Supports
Spring
• Easy
to
test
• Quick
prototyping
57 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
57
- 58. Whats
included
in
the
box?
extend CamelTestSupport
Test
Kit
from
IDE
Right Click ->
Run
Debug
Inline RouteBuilder
58 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
58
- 59. Whats
included
in
the
box?
Managed
• JMX
API
• REST
API
59 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
59
- 60. Whats
included
in
the
box?
Web
Console
• REST
API
60 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
60
- 61. Whats
included
in
the
box?
FuseSource
Rider
61 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
61
- 62. Whats
included
in
the
box?
Summary
• 50+
EIP
pa<erns
• 70+
ConnecIvity
components
• 18+
Data
formats
• 14+
Languages
• DSL
in
mulIple
flavors
(Java,
XML,
Scala,
Groovy)
• AutomaIc
type
conversion
• Strong
bean
support
• Test
Kit
• Management
(JMX,
REST)
• Web
console
62 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
62
- 63. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
63 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
63
- 64. Running
Camel
Riding
the
Camel
64 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
64
- 65. Running
Camel
Lightweight
and
embeddable
Known
Deployment
OpIons
• Standalone
Java
ApplicaIon
• Web
ApplicaIon Known Containers
• J2EE
ApplicaIon Apache ServiceMix
• JBI Apache ActiveMQ
Apache Tomcat
• OSGi Jetty
• Google
App
Engine JBoss
IBM WebSphere
• Java
Web
Start
BEA WebLogic
• Spring
ApplicaIon Oracle OC4j
GAE
... others
65 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
65
- 66. Running
Camel
Java
ApplicaIon
CamelContext context = new DefaultCamelContext();
context.addRoutes(new MyRouteBuilder());
context.start();
Spring
ApplicaIon
<camelContext>
<package>com.acme</package>
</camelContext>
66 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
66
- 67. Running
Camel
!"#$%&"'%()*+,!-%./01"2+%34"5#04%63
OSGi
-‐
FUSE
ESB
56 67 !"#$$%"&'()'*++",(-./0'*"1('2('0.3(4Progress
So3ware
Company
A
Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
67
- 68. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
68 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
68
- 69. Another
Example
Rider
Auto
Parts
Example
by
Jonathan
Anstey
http://architects.dzone.com/articles/apache-camel-integration
69 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
69
- 70. Another
Example
Rider
Auto
Parts
Example
-‐
3
Routes
1
70 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
70
- 71. Another
Example
Rider
Auto
Parts
Example
-‐
3
Routes
1
2
71 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
71
- 72. Another
Example
Rider
Auto
Parts
Example
-‐
3
Routes
1
3
2
72 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
72
- 73. Another
Example
Rider
Auto
Parts
Example
-‐
1st
Route
from
1
to
public class Route1 extends RouteBuilder {
public void configure() throws Exception {
from("ftp:user@rider.com?password=secret")
.to("activemq:queue:incoming");
}
}
73 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
73
- 74. Another
Example
Rider
Auto
Parts
Example
-‐
2nd
Route
2
from to
public class Route2 extends RouteBuilder {
public void configure() throws Exception {
from("jetty:http://localhost:8080/orders")
.inOnly("activemq:queue:incoming")
.transform().constant("OK");
}
}
74 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
74
- 75. Another
Example
Rider
Auto
Parts
Example
-‐
3rd
Route
3
from to
choice
route on next slide
75 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
75
- 76. Another
Example
Rider
Auto
Parts
Example
-‐
3rd
Route
public class Route3 extends RouteBuilder {
public void configure() throws Exception {
JaxbDataFormat jaxb = new JaxbDataFormat("com.rider");
BindyDataFormat bindy = new BindyDataFormat("com.rider");
from("activemq:queue:incoming")
.convertBodyTo(String.class)
.choice()
.when().method("helper”, "isXml")
.unmarshal(jaxb)
.to("activemq:queue:order")
.when().method("helper”, "isCsv")
.unmarshal(bindy)
.to("activemq:queue:order")
}
}
76 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
76
- 77. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
77 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
77
- 78. The
Camel
Community
Camel
website
• 52%
increase
(2010
over
2009)
• Average
2200
visits
per
weekday
(2000
-‐
2500)
High
acIvity
on
mailing
list
78 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
78
- 79. The
Camel
Community
20
commi<ers
High
commit
acIvity
79 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
79
- 80. The
Camel
Community
Books
• Manning
top-‐15
year
to
date
(2010)
#10
80 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
80
- 81. The
Camel
Community
Issue
Tracker
Total 3215
Open 145 (5%)
Resolved 3070 (95%)
Bugs 4 (3% open)
Oldest Bug Dec 2009
Oct 11th 2010
81 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
81
- 82. The
Camel
Community
A
lot
in
each
new
release
Release Date Tickets
Camel 2.0 Aug 2009 760
Camel 2.1 Dec 2009 303
Camel 2.2 Feb 2010 180
Camel 2.3 May 2010 273
Camel 2.4 July 2010 182
Camel 2.5 Oct 2010 270+
82 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
82
- 83. The
Camel
Community
3rd
party
integraIng
Camel
• Apache
ServiceMix
• Apache
AcIveMQ
• Apache
James
In Progress
• OpenESB
Smooks
• Progress
AcIonal
DiagnosIcs
Doozer
• FuseHQ
• Open
eHealth
IntegraIon
Plaqorm
• Grails
Camel
Plugin
• Play
Framework
• Akka
• Scalate
• JBoss
Drools
• JBoss
ESB
83 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
83
- 84. Agenda
Who
is
Claus
Ibsen?
The
birth
of
Apache
Camel
What
is
Apache
Camel
A
li<le
example
Whats
included
in
the
box?
Running
Camel
Another
Example
The
Camel
Community
Q
and
A
84 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
84
- 85. Q
and
A
Where
do
I
get
more
informaIon?
– Camel
website:
hCp://camel.apache.org
– Camel
ar6cle:
hCp://architects.dzone.com/ar6cles/apache-‐camel-‐integra6on
– FUSE
website:
hCp://fusesource.com
– Camel
in
Ac6on
book:
hCp://manning.com/ibsen
85 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
85
- 86. Q
and
A
?
86 Copyright
©
2010
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
86