SlideShare a Scribd company logo
Integration Made Easy With Apache Camel
Atanas Shindov, Software AG
Rosen Spasov, Software AG
Agenda
• What is Apache Camel?
• Live Demo
• What’s in the box?
• Deploying and Testing Camel
• Q & A
Agenda
• What is Apache Camel?
– Enterprise Integration Patterns
– Java and XML DSLs
– Architecture
• Live Demo
• What’s in the box?
• Deploying and Testing Camel
• Q & A
What is Apache Camel?
http://camel.apache.org/what-is-camel.html
Apache Camel™ is a versatile open-
source integration framework based
on known Enterprise Integration
Patterns.
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"
Enterprise Integration Patterns
http://www.enterpriseintegrationpatterns.co
● It’s a book 
● Contains 65 integration patterns
● Provides a consistent vocabulary and visual
notation to describe large-scale integration
solutions across many implementation
technologies
Enterprise Integration Patterns
http://camel.apache.org/eip
Content Based Router
Content Based Router
from newOrder
Content Based Router
from newOrder
choice
Content Based Router
from newOrder
choice
when isWidget to widget
Content Based Router
from newOrder
choice
when isWidget to widget
otherwise to gadget
Content Based Router
from(newOrder)
choice
when(isWidget) to(widget)
otherwise to(gadget)
Content Based Router
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise().to(gadget);
Content Based Router
Endpoint newOrder = endpoint("activemq:queue:newOrder");
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise().to(gadget)
Content Based Router
Endpoint newOrder = endpoint("activemq:queue:newOrder");
Predicate isWidget = xpath("/order/product = 'widget'");
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise().to(gadget)
Content Based Router
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)
Content Based Router
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();
}
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();
}
}
Camel Java DSL
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 {
from("activemq:queue:newOrder")
.choice()
.when(xpath("/order/product = 'widget'"))
.to("activemq:queue:widget")
.otherwise()
.to("activemq:queue:gadget")
.end();
}
}
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>
Camel XML DSL
<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>
use file instead
Camel XML DSL
<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>
parameters
Camel’s Architecture
Quick Summary
●
Integration Framework
●
Enterprise Integration Patterns (EIP)
●
Routing (using DSL)
●
Easy Configuration (endpoints as URIs)
●
Payload Agnostic
●
No Container Dependency
●
120+ Components (connectors)
Agenda
• What is Apache Camel?
• Live Demo
– File example using Eclipse
– Console example
– More examples…
• What’s in the box?
• Deploying and Testing Camel
• Q & A
Live Demo
Console Example
More Examples
http://camel.apache.org/examples
Agenda
• What is Apache Camel?
• Live Demo
• What’s in the box?
– EIP, Components, Data Formats, EL
– Domain Specific Languages
– Testing and Managing Applications
• Deploying and Testing Camel
• Q & A
Predefined Patterns
http://camel.apache.org/eip
What's in the box?
●
Splitter EIP
120+ Components
19 Data Formats
15 Expression Languages
5+ DSL
●
Java DSL
●
XML DSL (Spring and OSGi Blueprint)
●
Groovy DSL
●
Scala DSL
●
Kotlin DSL (work in progress)
Test Kit
●
camel-test
●
camel-test-spring
●
camel-test-blueprint
●
camel-testng
Web Console - HawtIO
http://hawt.io
What Else?
●
Interceptors
●
Security
●
Route Policy
●
Type Converters
●
Transaction
●
Asynchronous non-blocking routing engine
●
Thread management
●
Maven Tooling... and much, much more
Agenda
• What is Apache Camel?
• Live Demo
• What’s in the box?
• Deploying and Testing Camel
• Q & A
Deploying Camel
●
Deployment Strategy
●
No Container Dependency
●
Lightweight & Embeddable
●
Deployment Options
●
Standalone
●
WAR
●
Spring
●
JEE, OSGi, Cloud
Java Client Application
●
No routes required
●
Example - upload a file to an FTP server
Author and Contributors
James Strachan Claus Ibsen
What next?
●
Buy the “Camel in Action” book
●
Visit the web site - camel.apache.org
●
Go through the examples
●
Experiment…
http://manning.com/ibsen
Q&A
Thank You!
Atanas Shindov
Software Engineer, Software AG

More Related Content

PDF
Apache Camel - The integration library
ODP
Getting Started with Apache Camel - Devconf Conference - February 2013
ODP
Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
ODP
Integration using Apache Camel and Groovy
ODP
Using Apache Camel connectors for external connectivity
ODP
Getting Started with Apache Camel at DevNation 2014
PDF
Introduction to Apache Camel
ODP
Microservices with apache_camel_barcelona
Apache Camel - The integration library
Getting Started with Apache Camel - Devconf Conference - February 2013
Getting started with Apache Camel - Javagruppen Copenhagen - April 2014
Integration using Apache Camel and Groovy
Using Apache Camel connectors for external connectivity
Getting Started with Apache Camel at DevNation 2014
Introduction to Apache Camel
Microservices with apache_camel_barcelona

What's hot (20)

PPTX
Introduction to Apache Camel
PDF
Enterprise Integration Patterns with Apache Camel
PDF
Getting started with Apache Camel - jDays 2013
PDF
Developing Java based microservices ready for the world of containers
PDF
Apache Camel - FUSE community day London 2010 presentation
PDF
Apache Camel Introduction & What's in the box
PPTX
ApacheCon EU 2016 - Apache Camel the integration library
PPT
Simplify your integrations with Apache Camel
PDF
Taking Apache Camel For A Ride
PDF
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
ODP
Developing Microservices with Apache Camel
PDF
Developing, Testing and Scaling with Apache Camel - UberConf 2015
ODP
Getting Started with Apache Camel - Malmo JUG - March 2013
PPTX
Apache Camel K - Copenhagen
PDF
DOSUG Taking Apache Camel For A Ride
PDF
Event Driven Architecture with Apache Camel
PPTX
Using Apache Camel as AKKA
PDF
State of integration with Apache Camel (ApacheCon 2019)
PDF
Developing Java based microservices ready for the world of containers
PPTX
Apache Camel K - Fredericia
Introduction to Apache Camel
Enterprise Integration Patterns with Apache Camel
Getting started with Apache Camel - jDays 2013
Developing Java based microservices ready for the world of containers
Apache Camel - FUSE community day London 2010 presentation
Apache Camel Introduction & What's in the box
ApacheCon EU 2016 - Apache Camel the integration library
Simplify your integrations with Apache Camel
Taking Apache Camel For A Ride
Easy Enterprise Integration Patterns with Apache Camel, ActiveMQ and ServiceMix
Developing Microservices with Apache Camel
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Getting Started with Apache Camel - Malmo JUG - March 2013
Apache Camel K - Copenhagen
DOSUG Taking Apache Camel For A Ride
Event Driven Architecture with Apache Camel
Using Apache Camel as AKKA
State of integration with Apache Camel (ApacheCon 2019)
Developing Java based microservices ready for the world of containers
Apache Camel K - Fredericia
Ad

Similar to Integration made easy with Apache Camel (20)

PPTX
Apache Camel framework Presentation and selection of apache camel for various...
PPTX
Apache camel
PDF
Apache Camel Introduction
PDF
Introduction To Apache Camel
ODP
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
PDF
Camel manual-2.11.0
PDF
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
ODP
Red Hat Open Day JBoss Fuse
PDF
Integration using Apache Camel and Groovy
PDF
Introduction of Apache Camel
ODP
01 apache camel-intro
ODP
Getting started with Apache Camel - May 2013
PDF
EIP In Practice
PDF
Apache Camel - Stéphane Kay - April 2011
PDF
A first taste of integration with Apache Camel
PDF
Using Enterprise Integration Patterns as Your Camel Jockey
PPT
Xke - Introduction to Apache Camel
PDF
Solving Enterprise Integration with Apache Camel
PDF
Apache Camel with Spring boot
PDF
Apache Camel with Spring boot
Apache Camel framework Presentation and selection of apache camel for various...
Apache camel
Apache Camel Introduction
Introduction To Apache Camel
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Camel manual-2.11.0
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
Red Hat Open Day JBoss Fuse
Integration using Apache Camel and Groovy
Introduction of Apache Camel
01 apache camel-intro
Getting started with Apache Camel - May 2013
EIP In Practice
Apache Camel - Stéphane Kay - April 2011
A first taste of integration with Apache Camel
Using Enterprise Integration Patterns as Your Camel Jockey
Xke - Introduction to Apache Camel
Solving Enterprise Integration with Apache Camel
Apache Camel with Spring boot
Apache Camel with Spring boot
Ad

Recently uploaded (20)

PDF
AI in Product Development-omnex systems
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
System and Network Administration Chapter 2
PDF
Nekopoi APK 2025 free lastest update
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPT
Introduction Database Management System for Course Database
PPTX
L1 - Introduction to python Backend.pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Understanding Forklifts - TECH EHS Solution
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
AI in Product Development-omnex systems
Operating system designcfffgfgggggggvggggggggg
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
System and Network Administration Chapter 2
Nekopoi APK 2025 free lastest update
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Design an Analysis of Algorithms II-SECS-1021-03
How Creative Agencies Leverage Project Management Software.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Introduction Database Management System for Course Database
L1 - Introduction to python Backend.pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Online Work Permit System for Fast Permit Processing
Design an Analysis of Algorithms I-SECS-1021-03
Understanding Forklifts - TECH EHS Solution
2025 Textile ERP Trends: SAP, Odoo & Oracle

Integration made easy with Apache Camel