+ All Categories
Home > Documents > Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author...

Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author...

Date post: 04-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
69
Taking Apache Camel For a Ride Bruce Snyder [email protected] October 2008 Keystone, Colorado Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element Bruce Snyder — Taking Apache Camel for a Ride Slide 1
Transcript
Page 1: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Taking Apache Camel For a RideBruce [email protected] 2008Keystone, Colorado

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 1

Page 2: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Taking Apache Camel

For a Ride

Taking Apache Camel

For a Ride

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 2

Page 3: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 3

Page 4: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Protocol Integration is Common

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 4

Page 5: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Data Format Integration is Common

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 5

Page 6: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Integration is Messy!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 6

Page 7: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 7

Page 8: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

SOA = Spaghetti Oriented Architecture

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 8

Page 9: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 9

Page 10: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Options For Integration

1 2

3

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 10

Page 11: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Too Many Choices!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 11

Page 12: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

The Easiest Solution - Apache Camel

http://activemq.apache.org/camel/

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 12

Page 13: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Enterprise Integration Patterns

http://enterpriseintegrationpatterns.com/

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 13

Page 14: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Routing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 14

Page 15: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 15

Page 16: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

History of Apache Camel

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 16

Page 17: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Camel Components

http://activemq.apache.org/camel/components.html

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 17

Page 18: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Camel Components

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 18

Page 19: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Simple Routing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 19

Page 20: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

More Simple Routing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 20

Page 21: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Pipeline Routing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 21

Page 22: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Multicast Routing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 22

Page 23: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Multicast-to-Many Pipeline Routes

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 23

Page 24: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Language Support

BeanShellJavascriptGroovyPythonPHPRuby

JSP ELOGNLSQLXPathXQuery

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 24

Page 25: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Getting Started - The Camel Context

<camelContext

xmlns="http://activemq.apache.org/camel/schema/spring">

<package>com.acme.quotes</package>

</camelContext>

CamelContext context = new DefaultCamelContext();

context.addRoutes(new MyRouteBuilder());

context.start();

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 25

Page 26: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Pattern

Examples

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 26

Page 27: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 27

Page 28: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Content Based Router

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 28

Page 29: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

<camelContext

xmlns="http://activemq.apache.org/camel/schema/spring"> <route>

<from uri="activemq:NewOrders"/> <choice>

<when> <xpath>/order/product = 'widget'</xpath>

<to uri="activemq:Orders.Widgets"/> </when>

<when> <xpath>/order/product = 'gadget'</xpath>

<to uri="activemq:Orders.Gadgets"/> </when>

<otherwise> <to uri="activemq:Orders.Bad"/>

</otherwise> </choice>

</route> </camelContext>

Content Based Router

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 29

Page 30: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Filter

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 30

Page 31: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Filter

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 31

Page 32: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Splitter

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 32

Page 33: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Splitter Using XQuery

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 33

Page 34: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Aggregator

public class MyRouteBuilder extends RouteBuilder {

public void configure() {

from("activemq:Inventory.Items").

aggregator(header("symbol").isEqualTo("IBM").

to("activemq:Inventory.Order");

}

}

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 34

Page 35: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Translator

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 35

Page 36: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Resequencer

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 36

Page 37: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Routing Slip

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 37

Page 38: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Throttler

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 38

Page 39: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Delayer

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 39

Page 40: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Load Balancer

Policy Description

Round Robin Balance the exchange load across the available endpoints

Random Randomly choose an endpoint to send the exchange

Sticky Sticky load balancing of exchanges using an expression

Topic Send exchange to all endpoints (like a JMS topic)

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 40

Page 41: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Multicast

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 41

Page 42: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Demo

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 42

Page 43: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

More

Patterns

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 43

Page 44: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Wire Tap

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 44

Page 45: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Content Enricher

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 45

Page 46: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

More Content Enricher

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 46

Page 47: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Content Filter

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 47

Page 48: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Combine Patterns

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 48

Page 49: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Configure Error Handling

RouteBuilder builder = new RouteBuilder() {

public void configure() {

errorHandler(deadLetterChannel("file:errors"));

from("bean:foo").to("seda:b");

}

};

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 49

Page 50: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Configure Error Handling

RouteBuilder builder = new RouteBuilder() {

public void configure() {

from("seda:a").errorHandler(loggingErrorHandler("FOO.BAR")).

to("seda:b");

from("seda:b").to("seda:c");

}

};

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 50

Page 51: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Configure Exception Policies

RouteBuilder builder = new RouteBuilder() {

public void configure() { exception(IOException.class)

.initialRedeliveryDelay(5000L)

.maximumRedeliveries(3)

.maximumRedeliveryDelay(30000L)

.backOffMultiplier(1.0)

.useExponentialBackOff()

.setHeader(MESSAGE_INFO, constant("Damned IOException!"))

.to("activemq:errors");

from("seda:a").to("seda:b"); }

};

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 51

Page 52: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Beans

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 52

Page 53: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Make Context Discover Beans

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 53

Page 54: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Bean as a Message Translator

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 54

Page 55: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Bean as a Message Translator

public class MyRouteBuilder extends RouteBuilder {

public void configure() {

from("activemq:Incoming”).

beanRef("myBean", "someMethod").

to("activemq:Outgoing");

}

}

*With Method Name

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 55

Page 56: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Binding Beans to Camel Endpoints

public class Foo {

@MessageDriven(uri="activemq:cheese")

public void onCheese(String name) {

...

}

}

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 56

Page 57: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Binding Method Arguments

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 57

Page 58: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Injecting Endpoints Into Beans

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 58

Page 59: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Type Conversion

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 59

Page 60: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Type Conversion

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 60

Page 61: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Type ConvertorsSupport for the following types:

FileStringbyte[] and ByteBuffer InputStream and OutputStream Reader and Writer Document and Source

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 61

Page 62: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Mapper

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 62

Page 63: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Message Translator

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 63

Page 64: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Another Message Translator

public class MyRouteBuilder extends RouteBuilder {

public void configure() {

from("activemq:FOO.TEST”).

transform(body().append(getDynamicText())).

to("http://outgoing.com/foo");

}

}

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 64

Page 65: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Business Activity Monitoring (BAM)

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 65

Page 66: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Business Activity Monitoring (BAM)

public class MyActivities extends ProcessBuilder {

public void configure() throws Exception {

// lets define some activities, correlating on an

// XPath query of the message body ActivityBuilder purchaseOrder = activity("activemq:PurchaseOrders")

.correlate(xpath("/purchaseOrder/@id").stringResult());

ActivityBuilder invoice = activity("activemq:Invoices") .correlate(xpath("/invoice/@purchaseOrderId").stringResult());

// now lets add some BAM rules

invoice.starts().after(purchaseOrder.completes()) .expectWithin(seconds(1))

.errorIfOver(seconds(2)).to("activemq:FailedProcesses"); }

}

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 66

Page 67: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Complex Routing is Easier from(“http://localhost:8080/requests/”). tryBlock(). to(“activemq:queue:requests”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”));

from((“activemq:queue:requests?transacted=true”). process(requestTransformer). to(“http://host:8080/Request”). filter(xpath(“//nack”)). process(nackTransformer). to(“jdbc:store”);

from(“http://localhost:8080/responses/”). tryBlock(). to(“activemq:queue:responses”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”));

from(“activemq:queue:responses?transacted=true”). process(responseTransformer). to(“jdbc:store”);

from(“http://localhost:8080/pull/”). to(“jdbc:load”);

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 67

Page 68: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Finally, the Camel Truck!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 68

Page 69: Taking Apache Camel For a Ride - Software Summit...Title SnyderTakingApacheCamelForARide.key Author Peggy Kovsky Created Date 11/2/2008 3:34:49 PM

Ride the Camel!

http://activemq.apache.org/camel/

Ride the Camel!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Organic Element

Bruce Snyder — Taking Apache Camel for a Ride Slide 69


Recommended