Getting Started with Apache Camel.
Presentation and Workshop at
BarcelonaJUG, January 2014

Claus Ibsen (@davsclaus)
Princ...
Agenda
●

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●

Deploying Camel
...
Your Speaker
●

Principal Software Engineer at Red Hat

●

Apache Camel
●

6 years working with Camel

●

Author of Camel ...
Why the name Camel?

4

PUBLIC PRESENTATION | CLAUS IBSEN
Why the name Camel?

Because Camel is
easy to remember and type ...
5

PUBLIC PRESENTATION | CLAUS IBSEN
Why the name Camel?

… or the creator used to smoke cigarets!
http://camel.apache.org/why-the-name-camel.html
6

PUBLIC PR...
Camel's parents

7

PUBLIC PRESENTATION | CLAUS IBSEN
Camel's parents

James Strachan (creator of Camel)
Gregor Hohpe (author of EIP book)

8

PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel
●

9

First Commit

PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel
●

10

My first Commit

PUBLIC PRESENTATION | CLAUS IBSEN
The birth of Camel
●

First Release
●

Apache Camel 1.0
June 2007

http://www.davsclaus.com/2012/05/looking-at-impressive-...
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
What is Apache Camel?
●

13

Quote from the website

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
●

Why do we need integration?
●

●

Critical for your business to integrate

Why Integration Framew...
What is Apache Camel?
●

What is Enterprise Integration Patterns?

It's a book
15

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
●

Enterprise Integration Patterns

http://camel.apache.org/eip
16

PUBLIC PRESENTATION | CLAUS IBSE...
What is Apache Camel?
●

17

EIP - Content Based Router

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

from newOrder

18

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

from newOrder
choice

19

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

from newOrder
choice
when isWidget to widget

20

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?

from newOrder
choice
when isWidget to widget
otherwise to gadget

21

PUBLIC PRESENTATION | CLAUS I...
What is Apache Camel?

from(newOrder)
choice
when(isWidget) to(widget)
otherwise to(gadget)

22

PUBLIC PRESENTATION | CLA...
What is Apache Camel?

from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise().to(gadget);

23

PUBLIC PRESENTATI...
What is Apache Camel?

Endpoint newOrder = endpoint("activemq:queue:newOrder");

from(newOrder)
.choice()
.when(isWidget)....
What is Apache Camel?

Endpoint newOrder = endpoint("activemq:queue:newOrder");
Predicate isWidget = xpath("/order/product...
What is Apache Camel?

Endpoint newOrder = endpoint("activemq:queue:newOrder");
Predicate isWidget = xpath("/order/product...
What is Apache Camel?
●

Java Code

public void configure() throws Exception {
Endpoint newOrder = endpoint("activemq:queu...
What is Apache Camel?
●

Java Code
import org.apache.camel.Endpoint;
import org.apache.camel.Predicate;
import org.apache....
What is Apache Camel?
●

Camel Java DSL
import org.apache.camel.builder.RouteBuilder;
public class MyRoute extends RouteBu...
What is Apache Camel?
●

Camel XML DSL
<route>
<from uri="activemq:queue:newOrder"/>
<choice>
<when>
<xpath>/order/product...
What is Apache Camel?
●

Endpoint as URIs

use file instead

<route>
<from uri="file:inbox/orders"/>
<choice>
<when>
<xpat...
What is Apache Camel?
parameters
●

Endpoint as URIs
<route>
<from uri="file:inbox/orders?delete=true"/>
<choice>
<when>
<...
Standard Java or XML
●

33

Java DSL is just Java

PUBLIC PRESENTATION | CLAUS IBSEN
Standard Java or XML
●

XML DSL is just XML

●

34

… with XSD schema for validation/tooling

PUBLIC PRESENTATION | CLAUS ...
What is Apache Camel?
●

35

Camel's Architecture

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
150+ Components

36

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
150+ Components

37

PUBLIC PRESENTATION | CLAUS IBSEN
What is Apache Camel?
●

Summary
●
●

Enterprise Integration Patterns (EIP)

●

Routing (using DSL)

●

Easy Configuration...
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
A Little Example
●

40

File Copier Example

PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example
●

41

File Copier Example

PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example
●

42

File Copier Example

PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example
●

43

File Copier Example

PUBLIC PRESENTATION | CLAUS IBSEN
A Little Example
●

44

File Copier Example

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
Riding Camel
●

Downloading Apache Camel
●

zip/tarball (approx 8mb)

http://camel.apache.org

46

PUBLIC PRESENTATION | C...
Riding Camel
●

Using Command Shell
●

●

47

Requires: Apache Maven

From Eclipse

PUBLIC PRESENTATION | CLAUS IBSEN
Riding Camel
●

Console Example

●

cd examples/camel-example-console

●

mvn compile exec:java

48

PUBLIC PRESENTATION |...
Riding Camel
●

Twitter Example

●

cd examples/camel-example-twitter-websocket

●

mvn compile exec:java

49

http://loca...
Riding Camel
●

More examples ...

... and further details at website.
http://camel.apache.org/examples

50

PUBLIC PRESEN...
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the box?

●

Depl...
What's in the box?

52

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

Enterprise Integration Patterns

http://camel.apache.org/eip
53

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

54

Pipes and Filters EIP

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

55

Pipes and Filters EIP

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

56

Recipient List EIP

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

57

Recipient List EIP

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

58

Splitter EIP

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
150+ Components

59

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
19 Data Formats

60

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
15 Expression Languages

61

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
5+ DSL in multiple languages
●
●

XML DSL (Spring and OSGi Blueprint)

●

Groovy DSL

●

Scala DSL

●

...
What's in the box?
●

Mixing Java and XML

●

●

63

Java DSL

Spring XML file

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

Mixing Java and XML
●

.. having both XML and Java routes

Java route

XML route
64

PUBLIC PRESENTA...
What's in the box?
●

Multiple XML files

myCoolRoutes.xml
myOtherCoolRoutes.xml

myCamel.xml
65

PUBLIC PRESENTATION | CL...
What's in the box?
●

Scanning on classpath for Java routes
●

●

66

… with packageScan

… supports excludes/includes

PU...
What's in the box?
●

Scanning Spring ApplicationContext for Java routes
●

67

… with <contextScan/>

PUBLIC PRESENTATION...
What's in the box?
●

Scanning Spring ApplicationContext for Java routes
●

68

… and routes uses @Component

PUBLIC PRESE...
What's in the box?
●

69

Type Converters

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

70

Writing Custom Type Converter

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

71

Bean as Message Translator

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

72

Bean as Message Translator

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

73

Working with beans

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

74

Working with beans

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

75

Working with beans

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
●

76

Working with beans

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
Test Kit
●

camel-test-spring

●

77

camel-test
camel-test-blueprint

camel-testng

PUBLIC PRESENTATIO...
What's in the box?
Management
●
●

78

JMX
REST (w/ Jolokia)

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
Error Handling

79

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
try .. catch style

80

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
Dead Letter Channel (EIP style)

81

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
Dead Letter Channel (EIP style)

82

PUBLIC PRESENTATION | CLAUS IBSEN
What's in the box?
The Rest
●

Interceptors

●

Security

●

Route Policy

●

Type Converters

●

Transaction
●

Compensat...
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
Deploying Camel
●

Deployment Strategy
●
●

●

No Container Dependency
Lightweight & Embeddable

Deployment Options
●
●

W...
Camel as a Client
●

Java Client Application (no routes)

●

Example
●

86

Upload a file to a FTP server

PUBLIC PRESENTA...
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
Creating new Camel Projects
●

Using Command Shell

●

From Eclipse

88

PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects
●

89

Maven Archetypes

PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects
●

90

camel-archetype-blueprint

PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects
●

Importing into Eclipse

Existing Maven Project

91

PUBLIC PRESENTATION | CLAUS IBSEN
Creating new Camel Projects
●

Testing Camel Projects

●

... from inside Eclipse

92

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
What's not in the Camel box?
●

3rd party Apache Camel software

●

Commercial Support
●

●

User Stories
●

●

http://cam...
What's not in the Camel box?
Tooling – Eclipse Plugin – Fuse IDE

http://github.com/fusesource/fuseide
95

PUBLIC PRESENTA...
What's not in the Camel box?
Tooling – Web console - HawtIO

http://hawt.io
96

PUBLIC PRESENTATION | CLAUS IBSEN
What's not in the Camel box?
●

Integration Platform

http://fabric8.io
97

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

History of Camel

●

What is Apache Camel?

●

A little Example

●

Riding Camel

●

What's in the Camel box?

●...
Where do I get more information?
●

Best Article covering what Apache Camel is
●

http://java.dzone.com/articles/open-sour...
Where do I get more information?
●

Try Camel Examples
●

●

Read other blogs and articles
●

●

100

http://camel.apache....
Where do I get more information?
●

Use the mailing list / forum
●

●

Use stackoverflow
●

●

http://stackoverflow.com/qu...
Where do I get more information?
●

Buy the Camel in Action book

Use code ...
camel40
… for 40% discount

http://manning....
Where do I get more information?
●

.. and/or any of the other Camel books in the market

http://camel.apache.org/books

1...
Where do I get more information?
●

Attend the CamelOne conferences

The conference formerly known as CamelOne,
is now par...
Any Questions ?

●

Contact
●
EMail: cibsen@redhat.com / claus.ibsen@gmail.com
●
Twitter: @davsclaus
●
Blog: http://davscl...
Upcoming SlideShare
Loading in …5
×

Getting started with Apache Camel presentation at BarcelonaJUG, january 2014

2,875
-1

Published on

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 new projects 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.


We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities.

Published in: Technology

Getting started with Apache Camel presentation at BarcelonaJUG, january 2014

  1. 1. Getting Started with Apache Camel. Presentation and Workshop at BarcelonaJUG, January 2014 Claus Ibsen (@davsclaus) Principal Software Engineer, Red Hat 1 PUBLIC PRESENTATION | CLAUS IBSEN
  2. 2. Agenda ● ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the Camel box? ● Deploying Camel ● Creating new Camel Projects ● What's not in the Camel box? ● 2 History of Camel More Information PUBLIC PRESENTATION | CLAUS IBSEN
  3. 3. Your Speaker ● Principal Software Engineer at Red Hat ● Apache Camel ● 6 years working with Camel ● Author of Camel in Action book ● Contact ● ● Twitter: @davsclaus ● Blog: http://davsclaus.com ● 3 EMail: cibsen@redhat.com Linkedin: http://www.linkedin.com/in/davsclaus PUBLIC PRESENTATION | CLAUS IBSEN
  4. 4. Why the name Camel? 4 PUBLIC PRESENTATION | CLAUS IBSEN
  5. 5. Why the name Camel? Because Camel is easy to remember and type ... 5 PUBLIC PRESENTATION | CLAUS IBSEN
  6. 6. Why the name Camel? … or the creator used to smoke cigarets! http://camel.apache.org/why-the-name-camel.html 6 PUBLIC PRESENTATION | CLAUS IBSEN
  7. 7. Camel's parents 7 PUBLIC PRESENTATION | CLAUS IBSEN
  8. 8. Camel's parents James Strachan (creator of Camel) Gregor Hohpe (author of EIP book) 8 PUBLIC PRESENTATION | CLAUS IBSEN
  9. 9. The birth of Camel ● 9 First Commit PUBLIC PRESENTATION | CLAUS IBSEN
  10. 10. The birth of Camel ● 10 My first Commit PUBLIC PRESENTATION | CLAUS IBSEN
  11. 11. The birth of Camel ● First Release ● Apache Camel 1.0 June 2007 http://www.davsclaus.com/2012/05/looking-at-impressive-first-apache.html 11 PUBLIC PRESENTATION | CLAUS IBSEN
  12. 12. 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 ● What's not in the Camel box? ● More Information 12 PUBLIC PRESENTATION | CLAUS IBSEN
  13. 13. What is Apache Camel? ● 13 Quote from the website PUBLIC PRESENTATION | CLAUS IBSEN
  14. 14. What is Apache Camel? ● Why do we need integration? ● ● Critical for your business to integrate Why Integration Framework? ● ● You can focus on business problem ● 14 Framework do the heavy lifting Not "reinventing the wheel" PUBLIC PRESENTATION | CLAUS IBSEN
  15. 15. What is Apache Camel? ● What is Enterprise Integration Patterns? It's a book 15 PUBLIC PRESENTATION | CLAUS IBSEN
  16. 16. What is Apache Camel? ● Enterprise Integration Patterns http://camel.apache.org/eip 16 PUBLIC PRESENTATION | CLAUS IBSEN
  17. 17. What is Apache Camel? ● 17 EIP - Content Based Router PUBLIC PRESENTATION | CLAUS IBSEN
  18. 18. What is Apache Camel? from newOrder 18 PUBLIC PRESENTATION | CLAUS IBSEN
  19. 19. What is Apache Camel? from newOrder choice 19 PUBLIC PRESENTATION | CLAUS IBSEN
  20. 20. What is Apache Camel? from newOrder choice when isWidget to widget 20 PUBLIC PRESENTATION | CLAUS IBSEN
  21. 21. What is Apache Camel? from newOrder choice when isWidget to widget otherwise to gadget 21 PUBLIC PRESENTATION | CLAUS IBSEN
  22. 22. What is Apache Camel? from(newOrder) choice when(isWidget) to(widget) otherwise to(gadget) 22 PUBLIC PRESENTATION | CLAUS IBSEN
  23. 23. What is Apache Camel? from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 23 PUBLIC PRESENTATION | CLAUS IBSEN
  24. 24. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 24 PUBLIC PRESENTATION | CLAUS IBSEN
  25. 25. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 25 PUBLIC PRESENTATION | CLAUS IBSEN
  26. 26. What is Apache Camel? Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget); 26 PUBLIC PRESENTATION | CLAUS IBSEN
  27. 27. What is Apache Camel? ● Java Code public void configure() throws Exception { Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget) .end(); } 27 PUBLIC PRESENTATION | CLAUS IBSEN
  28. 28. What is Apache Camel? ● Java Code import org.apache.camel.Endpoint; import org.apache.camel.Predicate; import org.apache.camel.builder.RouteBuilder; public class MyRoute extends RouteBuilder { public void configure() throws Exception { Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget) .end(); } } 28 PUBLIC PRESENTATION | CLAUS IBSEN
  29. 29. What is Apache Camel? ● Camel Java DSL import org.apache.camel.builder.RouteBuilder; public class MyRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:queue:newOrder") .choice() .when(xpath("/order/product = 'widget'")) .to("activemq:queue:widget") .otherwise() .to("activemq:queue:gadget") .end(); } } 29 PUBLIC PRESENTATION | CLAUS IBSEN
  30. 30. What is Apache Camel? ● Camel XML DSL <route> <from uri="activemq:queue:newOrder"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 30 PUBLIC PRESENTATION | CLAUS IBSEN
  31. 31. What is Apache Camel? ● Endpoint as URIs use file instead <route> <from uri="file:inbox/orders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 31 PUBLIC PRESENTATION | CLAUS IBSEN
  32. 32. What is Apache Camel? parameters ● Endpoint as URIs <route> <from uri="file:inbox/orders?delete=true"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="activemq:queue:gadget"/> </otherwise> </choice> </route> 32 PUBLIC PRESENTATION | CLAUS IBSEN
  33. 33. Standard Java or XML ● 33 Java DSL is just Java PUBLIC PRESENTATION | CLAUS IBSEN
  34. 34. Standard Java or XML ● XML DSL is just XML ● 34 … with XSD schema for validation/tooling PUBLIC PRESENTATION | CLAUS IBSEN
  35. 35. What is Apache Camel? ● 35 Camel's Architecture PUBLIC PRESENTATION | CLAUS IBSEN
  36. 36. What is Apache Camel? 150+ Components 36 PUBLIC PRESENTATION | CLAUS IBSEN
  37. 37. What is Apache Camel? 150+ Components 37 PUBLIC PRESENTATION | CLAUS IBSEN
  38. 38. What is Apache Camel? ● Summary ● ● Enterprise Integration Patterns (EIP) ● Routing (using DSL) ● Easy Configuration (endpoint as uri's) ● Just Java or XML code ● No Container Dependency ● 38 Integration Framework A lot of components PUBLIC PRESENTATION | CLAUS IBSEN
  39. 39. 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 ● What's not in the Camel box? ● More Information 39 PUBLIC PRESENTATION | CLAUS IBSEN
  40. 40. A Little Example ● 40 File Copier Example PUBLIC PRESENTATION | CLAUS IBSEN
  41. 41. A Little Example ● 41 File Copier Example PUBLIC PRESENTATION | CLAUS IBSEN
  42. 42. A Little Example ● 42 File Copier Example PUBLIC PRESENTATION | CLAUS IBSEN
  43. 43. A Little Example ● 43 File Copier Example PUBLIC PRESENTATION | CLAUS IBSEN
  44. 44. A Little Example ● 44 File Copier Example PUBLIC PRESENTATION | CLAUS IBSEN
  45. 45. 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 ● What's not in the Camel box? ● More Information 45 PUBLIC PRESENTATION | CLAUS IBSEN
  46. 46. Riding Camel ● Downloading Apache Camel ● zip/tarball (approx 8mb) http://camel.apache.org 46 PUBLIC PRESENTATION | CLAUS IBSEN
  47. 47. Riding Camel ● Using Command Shell ● ● 47 Requires: Apache Maven From Eclipse PUBLIC PRESENTATION | CLAUS IBSEN
  48. 48. Riding Camel ● Console Example ● cd examples/camel-example-console ● mvn compile exec:java 48 PUBLIC PRESENTATION | CLAUS IBSEN
  49. 49. Riding Camel ● Twitter Example ● cd examples/camel-example-twitter-websocket ● mvn compile exec:java 49 http://localhost:9090/index.html PUBLIC PRESENTATION | CLAUS IBSEN
  50. 50. Riding Camel ● More examples ... ... and further details at website. http://camel.apache.org/examples 50 PUBLIC PRESENTATION | CLAUS IBSEN
  51. 51. Agenda ● History of Camel ● What is Apache Camel? ● A little Example ● Riding Camel ● What's in the box? ● Deploying Camel ● Creating new Camel Projects ● What's not in the Camel box? ● More Information 51 PUBLIC PRESENTATION | CLAUS IBSEN
  52. 52. What's in the box? 52 PUBLIC PRESENTATION | CLAUS IBSEN
  53. 53. What's in the box? ● Enterprise Integration Patterns http://camel.apache.org/eip 53 PUBLIC PRESENTATION | CLAUS IBSEN
  54. 54. What's in the box? ● 54 Pipes and Filters EIP PUBLIC PRESENTATION | CLAUS IBSEN
  55. 55. What's in the box? ● 55 Pipes and Filters EIP PUBLIC PRESENTATION | CLAUS IBSEN
  56. 56. What's in the box? ● 56 Recipient List EIP PUBLIC PRESENTATION | CLAUS IBSEN
  57. 57. What's in the box? ● 57 Recipient List EIP PUBLIC PRESENTATION | CLAUS IBSEN
  58. 58. What's in the box? ● 58 Splitter EIP PUBLIC PRESENTATION | CLAUS IBSEN
  59. 59. What's in the box? 150+ Components 59 PUBLIC PRESENTATION | CLAUS IBSEN
  60. 60. What's in the box? 19 Data Formats 60 PUBLIC PRESENTATION | CLAUS IBSEN
  61. 61. What's in the box? 15 Expression Languages 61 PUBLIC PRESENTATION | CLAUS IBSEN
  62. 62. What's in the box? 5+ DSL in multiple languages ● ● XML DSL (Spring and OSGi Blueprint) ● Groovy DSL ● Scala DSL ● 62 Java DSL Kotlin DSL (work in progress) PUBLIC PRESENTATION | CLAUS IBSEN
  63. 63. What's in the box? ● Mixing Java and XML ● ● 63 Java DSL Spring XML file PUBLIC PRESENTATION | CLAUS IBSEN
  64. 64. What's in the box? ● Mixing Java and XML ● .. having both XML and Java routes Java route XML route 64 PUBLIC PRESENTATION | CLAUS IBSEN
  65. 65. What's in the box? ● Multiple XML files myCoolRoutes.xml myOtherCoolRoutes.xml myCamel.xml 65 PUBLIC PRESENTATION | CLAUS IBSEN
  66. 66. What's in the box? ● Scanning on classpath for Java routes ● ● 66 … with packageScan … supports excludes/includes PUBLIC PRESENTATION | CLAUS IBSEN
  67. 67. What's in the box? ● Scanning Spring ApplicationContext for Java routes ● 67 … with <contextScan/> PUBLIC PRESENTATION | CLAUS IBSEN
  68. 68. What's in the box? ● Scanning Spring ApplicationContext for Java routes ● 68 … and routes uses @Component PUBLIC PRESENTATION | CLAUS IBSEN
  69. 69. What's in the box? ● 69 Type Converters PUBLIC PRESENTATION | CLAUS IBSEN
  70. 70. What's in the box? ● 70 Writing Custom Type Converter PUBLIC PRESENTATION | CLAUS IBSEN
  71. 71. What's in the box? ● 71 Bean as Message Translator PUBLIC PRESENTATION | CLAUS IBSEN
  72. 72. What's in the box? ● 72 Bean as Message Translator PUBLIC PRESENTATION | CLAUS IBSEN
  73. 73. What's in the box? ● 73 Working with beans PUBLIC PRESENTATION | CLAUS IBSEN
  74. 74. What's in the box? ● 74 Working with beans PUBLIC PRESENTATION | CLAUS IBSEN
  75. 75. What's in the box? ● 75 Working with beans PUBLIC PRESENTATION | CLAUS IBSEN
  76. 76. What's in the box? ● 76 Working with beans PUBLIC PRESENTATION | CLAUS IBSEN
  77. 77. What's in the box? Test Kit ● camel-test-spring ● 77 camel-test camel-test-blueprint camel-testng PUBLIC PRESENTATION | CLAUS IBSEN
  78. 78. What's in the box? Management ● ● 78 JMX REST (w/ Jolokia) PUBLIC PRESENTATION | CLAUS IBSEN
  79. 79. What's in the box? Error Handling 79 PUBLIC PRESENTATION | CLAUS IBSEN
  80. 80. What's in the box? try .. catch style 80 PUBLIC PRESENTATION | CLAUS IBSEN
  81. 81. What's in the box? Dead Letter Channel (EIP style) 81 PUBLIC PRESENTATION | CLAUS IBSEN
  82. 82. What's in the box? Dead Letter Channel (EIP style) 82 PUBLIC PRESENTATION | CLAUS IBSEN
  83. 83. What's in the box? The Rest ● Interceptors ● Security ● Route Policy ● Type Converters ● Transaction ● Compensation as rollback ● ● Thread management ● Maven Tooling ● 83 Asynchronous non-blocking routing engine ... and much more PUBLIC PRESENTATION | CLAUS IBSEN
  84. 84. 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 ● What's not in the Camel box? ● More Information 84 PUBLIC PRESENTATION | CLAUS IBSEN
  85. 85. Deploying Camel ● Deployment Strategy ● ● ● No Container Dependency Lightweight & Embeddable Deployment Options ● ● WAR ● Spring ● JEE ● OSGi ● 85 Standalone Cloud PUBLIC PRESENTATION | CLAUS IBSEN
  86. 86. Camel as a Client ● Java Client Application (no routes) ● Example ● 86 Upload a file to a FTP server PUBLIC PRESENTATION | CLAUS IBSEN
  87. 87. 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 ● What's not in the Camel box? ● More Information 87 PUBLIC PRESENTATION | CLAUS IBSEN
  88. 88. Creating new Camel Projects ● Using Command Shell ● From Eclipse 88 PUBLIC PRESENTATION | CLAUS IBSEN
  89. 89. Creating new Camel Projects ● 89 Maven Archetypes PUBLIC PRESENTATION | CLAUS IBSEN
  90. 90. Creating new Camel Projects ● 90 camel-archetype-blueprint PUBLIC PRESENTATION | CLAUS IBSEN
  91. 91. Creating new Camel Projects ● Importing into Eclipse Existing Maven Project 91 PUBLIC PRESENTATION | CLAUS IBSEN
  92. 92. Creating new Camel Projects ● Testing Camel Projects ● ... from inside Eclipse 92 PUBLIC PRESENTATION | CLAUS IBSEN
  93. 93. 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 ● What's not in the Camel box? ● More Information 93 PUBLIC PRESENTATION | CLAUS IBSEN
  94. 94. What's not in the Camel box? ● 3rd party Apache Camel software ● Commercial Support ● ● User Stories ● ● http://camel.apache.org/user-stories.html External Components ● ● http://camel.apache.org/commercial-camel-offerings.html http://camel.apache.org/components.html (bottom) Apache Camel Extra ● 94 https://code.google.com/a/apache-extras.org/p/camel-extra PUBLIC PRESENTATION | CLAUS IBSEN
  95. 95. What's not in the Camel box? Tooling – Eclipse Plugin – Fuse IDE http://github.com/fusesource/fuseide 95 PUBLIC PRESENTATION | CLAUS IBSEN
  96. 96. What's not in the Camel box? Tooling – Web console - HawtIO http://hawt.io 96 PUBLIC PRESENTATION | CLAUS IBSEN
  97. 97. What's not in the Camel box? ● Integration Platform http://fabric8.io 97 PUBLIC PRESENTATION | CLAUS IBSEN
  98. 98. 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 ● What's not in the Camel box? ● More Information 98 PUBLIC PRESENTATION | CLAUS IBSEN
  99. 99. Where do I get more information? ● Best Article covering what Apache Camel is ● http://java.dzone.com/articles/open-source-integrationapache Link to article from “Getting Started” 99 PUBLIC PRESENTATION | CLAUS IBSEN
  100. 100. Where do I get more information? ● Try Camel Examples ● ● Read other blogs and articles ● ● 100 http://camel.apache.org/examples.html http://camel.apache.org/articles.html Use the “search box” on the Camel front page PUBLIC PRESENTATION | CLAUS IBSEN
  101. 101. Where do I get more information? ● Use the mailing list / forum ● ● Use stackoverflow ● ● http://stackoverflow.com/questions/tagged/apache-camel Use IRC chat ● 101 http://camel.apache.org/mailing-lists.html http://camel.apache.org/irc-room.html PUBLIC PRESENTATION | CLAUS IBSEN
  102. 102. Where do I get more information? ● Buy the Camel in Action book Use code ... camel40 … for 40% discount http://manning.com/ibsen/ 102 PUBLIC PRESENTATION | CLAUS IBSEN
  103. 103. Where do I get more information? ● .. and/or any of the other Camel books in the market http://camel.apache.org/books 103 PUBLIC PRESENTATION | CLAUS IBSEN
  104. 104. Where do I get more information? ● Attend the CamelOne conferences The conference formerly known as CamelOne, is now part of larger conference named DevNation http://www.devnation.org 104 PUBLIC PRESENTATION | CLAUS IBSEN
  105. 105. Any Questions ? ● Contact ● EMail: cibsen@redhat.com / claus.ibsen@gmail.com ● Twitter: @davsclaus ● Blog: http://davsclaus.com ● Linkedin: http://www.linkedin.com/in/davsclaus 105 PUBLIC PRESENTATION | CLAUS IBSEN
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×