This session will teach you how to get a good start with Apache Camel.
We will introduce you to Apache Camel and how Camel its related to Enterprise Integration Patterns. And how you go about using these patterns in Camel routes, written in Java code or XML files.
We will then discuss how you can get started developing with Camel, and how to setup a new project from scratch using Maven and Eclipse tooling.
This session includes live demos that show how to build Camel applications in Java, Spring, OSGi Blueprint and alternative languages such as Scala and Groovy.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
Before opening up for QA, we will share useful links where you can dive into learning more about Camel.
This presentation was video taped which you can find here: http://javagruppen.dk/index.php/moder/historiske-moder/285-javagruppemode-115-apache-camel-i-aarhus
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Getting started with Apache Camel - May 2013
1. PUBLIC PRESENTATION | CLAUS IBSEN1
Getting Started with Apache Camel
Claus Ibsen (@davsclaus)
Principal Software Engineer, Red Hat
Javagruppen Århus, may 2013
2. PUBLIC PRESENTATION | CLAUS IBSEN2
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
3. PUBLIC PRESENTATION | CLAUS IBSEN3
Your Speaker
● Principal Software Engineer at Red Hat
● Apache Camel
● 5 years working with Camel
● Author of Camel in Action book
● Contact
● EMail: cibsen@redhat.com
● Twitter: @davsclaus
● Blog: http://davsclaus.com
● Linkedin: http://www.linkedin.com/in/davsclaus
11. PUBLIC PRESENTATION | CLAUS IBSEN11
The birth of Camel
● First Release
● Apache Camel 1.0
June 2007
http://www.davsclaus.com/2012/05/looking-at-impressive-first-apache.html
12. PUBLIC PRESENTATION | CLAUS IBSEN12
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
14. PUBLIC PRESENTATION | CLAUS IBSEN14
What is Apache Camel?
● Why do we need integration?
● Critical for your business to integrate
● Why Integration Framework?
● Framework do the heavy lifting
● You can focus on business problem
● Not "reinventing the wheel"
15. PUBLIC PRESENTATION | CLAUS IBSEN15
What is Apache Camel?
● What is Enterprise Integration Patterns?
It's a book
16. PUBLIC PRESENTATION | CLAUS IBSEN16
What is Apache Camel?
● Enterprise Integration Patterns
http://camel.apache.org/eip
17. PUBLIC PRESENTATION | CLAUS IBSEN17
What is Apache Camel?
● EIP - Content Based Router
36. PUBLIC PRESENTATION | CLAUS IBSEN36
What is Apache Camel?
● Summary
● Integration Framework
● Enterprise Integration Patterns (EIP)
● Routing (using DSL)
● Easy Configuration (endpoint as uri's)
● Payload Agnostic
● No Container Dependency
● A lot of components
37. PUBLIC PRESENTATION | CLAUS IBSEN37
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Extending Camel
● Q and A
43. PUBLIC PRESENTATION | CLAUS IBSEN43
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
45. PUBLIC PRESENTATION | CLAUS IBSEN45
Riding Camel
● Using Command Shell
● Requires: Apache Maven
● From Eclipse
46. PUBLIC PRESENTATION | CLAUS IBSEN46
Riding Camel
● Console Example
● cd examples/camel-example-console
● mvn compile exec:java
47. PUBLIC PRESENTATION | CLAUS IBSEN47
Riding Camel
● Twitter Example
● cd examples/camel-example-twitter-websocket
● mvn compile exec:java http://localhost:9090/index.html
48. PUBLIC PRESENTATION | CLAUS IBSEN48
Riding Camel
● More examples ...
... and further details at website.
http://camel.apache.org/examples
49. PUBLIC PRESENTATION | CLAUS IBSEN49
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
60. PUBLIC PRESENTATION | CLAUS IBSEN60
What's in the box?
5+ DSL in multiple languages
● Java DSL
● XML DSL (Spring and OSGi Blueprint)
● Groovy DSL
● Scala DSL
● Kotlin DSL (work in progress)
75. PUBLIC PRESENTATION | CLAUS IBSEN75
What's in the box?
Dead Letter Channel (EIP style)
76. PUBLIC PRESENTATION | CLAUS IBSEN76
What's in the box?
Dead Letter Channel (EIP style)
77. PUBLIC PRESENTATION | CLAUS IBSEN77
What's in the box?
The Rest
● Interceptors
● Security
● Route Policy
● Type Converters
● Transaction
● Compensation as rollback
● Asynchronous non-blocking routing engine
● Thread management
● Maven Tooling
● ... and much more
78. PUBLIC PRESENTATION | CLAUS IBSEN78
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Extending Camel
● Q and A
79. PUBLIC PRESENTATION | CLAUS IBSEN79
Deploying Camel
● Deployment Strategy
● No Container Dependency
● Lightweight & Embeddable
● Deployment Options
● Standalone
● WAR
● Spring
● JEE
● OSGi
● Cloud
80. PUBLIC PRESENTATION | CLAUS IBSEN80
Camel as a Client
● Java Client Application (no routes)
● Example
● Upload a file to a FTP server
81. PUBLIC PRESENTATION | CLAUS IBSEN81
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
82. PUBLIC PRESENTATION | CLAUS IBSEN82
Creating new Camel Projects
● Using Command Shell
● From Eclipse
84. PUBLIC PRESENTATION | CLAUS IBSEN84
Creating new Camel Projects
● camel-archetype-blueprint
85. PUBLIC PRESENTATION | CLAUS IBSEN85
Creating new Camel Projects
● Importing into Eclipse
Existing Maven Project
86. PUBLIC PRESENTATION | CLAUS IBSEN86
Creating new Camel Projects
● Testing Camel Projects
● ... from inside Eclipse
87. PUBLIC PRESENTATION | CLAUS IBSEN87
Agenda
● History of Camel
● What is Apache Camel?
● A little Example
● Riding Camel
● What's in the Camel box?
● Deploying Camel
● Creating new Camel Projects
● Q and A
88. PUBLIC PRESENTATION | CLAUS IBSEN88
Where do I get more information?
● Best Article covering what Apache Camel is
● http://java.dzone.com/articles/open-source-integration-
apache
Link to article from “Getting Started”
89. PUBLIC PRESENTATION | CLAUS IBSEN89
Where do I get more information?
● Try Camel Examples
● http://camel.apache.org/examples.html
● Read other blogs and articles
● http://camel.apache.org/articles.html
● Use the “search box” on the Camel front page
90. PUBLIC PRESENTATION | CLAUS IBSEN90
Where do I get more information?
● Use the mailing list / forum
● http://camel.apache.org/mailing-lists.html
● Use stackoverflow
● http://stackoverflow.com/questions/tagged/apache-camel
91. PUBLIC PRESENTATION | CLAUS IBSEN91
Where do I get more information?
● Buy the Camel in Action book
http://manning.com/ibsen/
Use code ...
camel40
… for 40% discount