Escolar Documentos
Profissional Documentos
Cultura Documentos
61
62
2010 Progress Software Corporation
What's included in the box?
Summary
50+ EIP patterns
70+ Connectivity components
15+ Data formats
10+ Languages
DSL in multiple flavors (Java, XML, Scala, Groovy)
Automatic type conversion
Strong bean support
Test Kit
Management (JMX, REST)
Web console
62
63
2010 Progress Software Corporation
63
Agenda
The birth of Apache Camel
What is Apache Camel
A little example
What's included in the box?
Running Camel
Another Example
The Camel Community
Q and A
64
2010 Progress Software Corporation
Running Camel
Riding the Camel
64
65
2010 Progress Software Corporation
Running Camel
Camel is not a server
Camel is lightweight and embeddable
Known Deployment Options
Standalone Java Application
Web Application
J2EE Application
JBI
OSGi
Google App Engine
Java Web Start
Spring Application
65
Known Containers
Apache ServiceMix
Apache ActiveMQ
Apache Tomcat
Jetty
JBoss
IBM WebSphere
BEA WebLogic
Oracle OC4j
GAE
... others
66
2010 Progress Software Corporation
Running Camel
Java Application
Spring Application
66
CamelContext context = new DefaultCamelContext();
context.addRoutes(new MyRouteBuilder());
context.start();
<camelContext>
<package>com.acme.quotes</package>
</camelContext>
67
2010 Progress Software Corporation
Agenda
The birth of Apache Camel
What is Apache Camel
A little example
What's included in the box?
Running Camel
Another Example
The Camel Community
Q and A
67
68
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example by Jonathan Anstey
68
http://architects.dzone.com/articles/apache-camel-integration
69
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 3 Routes
69
1
70
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 3 Routes
70
2
1
71
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 3 Routes
71
3
2
1
72
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 1st Route
72
from
to
1
public class Route1 extends RouteBuilder {
public void configure() throws Exception {
from("ftp:user@rider.com?password=secret")
.to("activemq:queue:incoming");
}
}
73
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 2nd Route
73
to from
public class Route2 extends RouteBuilder {
public void configure() throws Exception {
from("jetty:http://localhost:8080/orders")
.inOnly("activemq:queue:incoming")
.transform().constant("OK");
}
}
2
74
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 3rd Route
74
from to
choice
3
route on next slide
75
2010 Progress Software Corporation
Another Example
Rider Auto Parts Example - 3rd Route
75
public class Route3 extends RouteBuilder {
public void configure() throws Exception {
JaxbDataFormat jaxb = new JaxbDataFormat("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().csv()
.beanRef("orderService, "csvToXml")
.to("activemq:queue:order")
}
}
76
2010 Progress Software Corporation
76
Agenda
The birth of Apache Camel
What is Apache Camel
A little example
What's included in the box?
Running Camel
Another Example
The Camel Community
Q and A
77
2010 Progress Software Corporation
77
The Camel Community
Camel website
52% increase (2010 over 2009)
Average 2200 visits per weekday (2000 - 2500)
High activity on mailing list
78
2010 Progress Software Corporation
78
The Camel Community
20 committers
High commit activity
http://markmail.org/
79
2010 Progress Software Corporation
The Camel Community
Books - Bestseller
Manning top-15 year to date (2010)
79
#10
80
2010 Progress Software Corporation
80
The Camel Community
JIRA tickets
Total 3106
Open 136 (4%)
Resolved 2970 (96%)
Bugs 2 (2% open)
Oldest Bug Dec 2009
Sep 6th 2010
81
2010 Progress Software Corporation
81
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 278
Camel 2.4 July 2010 182
Camel 2.5 Sep 2010 170+
82
2010 Progress Software Corporation
82
The Camel Community
3rd party integrating Camel
Apache ServiceMix
Apache ActiveMQ
Apache James
OpenESB
Progress Actional Diagnostics
FuseHQ
Open eHealth Integration Platform
Grails Camel Plugin
Play Framework
Akka
Scalate
JBoss Drools
JBoss ESB
In Progress
Smooks
Doozer
83
2010 Progress Software Corporation
83
Agenda
The birth of Apache Camel
What is Apache Camel
A little example
What's included in the box?
Running Camel
Another Example
The Camel Community
Q and A
84
2010 Progress Software Corporation
84
Where do I get more information?
Camel website: http://camel.apache.org
Camel article: http://architects.dzone.com/articles/apache-camel-integration
FuseSource website: http://fusesource.com
Camel in Action book: http://manning.com/ibsen
Q and A
85
2010 Progress Software Corporation
85
Q and A