SlideShare a Scribd company logo
Pacemaker:Java
When Camel Smiles
OREST IVASIV
1/18/2015 @halyph
Pacemaker:Java
Integration concept
Camel Intro
Sample route
Camel community
1/18/2015 @halyph2
Agenda
Pacemaker:Java
1/18/2015 @halyph3
What is Apache Camel?
Apache Camel ™ is a versatile open-source integration framework based on
known Enterprise Integration Patterns.
Is not ESB (Servicemix, Mule)
Is not Message Broker (ActiveMQ, RabbitMQ)
Is not a runtime container (see Tomcat)
Pacemaker:Java
1. Enterprise integration—how to integrate independent applications so that they can work
together.
2. An enterprise application often incorporates an n-tier architecture enabling it to be
distributed across several computers.
3. Q: Why is an n-tier architecture considered application distribution and not application
integration?
◦ the communicating parts are tightly coupled
◦ communication between tiers tends to be synchronous
4. Communication between tiers tends to be synchronous
1/18/2015 @halyph4
Distributed Applications vs. Integration
Pacemaker:Java
1/18/2015 @halyph5
Complexity of Integration
No Tool
Integration
Framework
Enterprise
Service Bus
Integration Suite
Low High
Connectivity
Routing
Transformation
Integration
Tooling
Monitoring
Support
Business Process Management
Big Data / MDM
Registry / Repository
Rule Engine
“You Name It”
Custom
integration
Pacemaker:Java
1/18/2015 @halyph6
Message
Pacemaker:Java
1/18/2015 @halyph7
Exchange
Pacemaker:Java
1/18/2015 @halyph8
CamelContext
Pacemaker:Java
1/18/2015 @halyph9
Camel Architecture
Pacemaker:Java
General use
 Direct, seda, file, bean, log, timer
Search, big data, cashing
 Lucene, solr, elasticsearch
 Hdfs, s3, mongodb
 Ehcache, hazelcast
Management
 Jmx, ldap, splunk, zookeeper
Integration
 http, servlet, cxf, jms
protocols
 Mina, netty, pop3, imap
1/18/2015 @halyph10
Component Categories
Pacemaker:Java
1/18/2015 @halyph11
ls camel/components
Pacemaker:Java
• You found a component… now what?
◦ Review the spec page, samples, unit tests
◦ Include camel-[component] jar in your project
◦ Add dependency to your pom.xml
◦ w/o maven (gradle) just add your jars to your classpath
◦ Create a basic unit test
◦ Copy/paste from component test
◦ Sanity test your setup
◦ Validate desired config option
◦ Integrate your component with your app
◦ Is you CamelContent setup?
◦ Is your RouteBuilder wired in?
1/18/2015 @halyph12
How to use a component
Pacemaker:Java
1/18/2015 @halyph13
Sample Route
Pacemaker:Java
1/18/2015 @halyph14
Sample Route (cont.)
Pacemaker:Java
1/18/2015 @halyph15
Top Camel contributors
$ git shortlog -ns
8095 Claus Ibsen
2853 Willem Ning Jiang
1385 James Strachan
930 Willem Jiang
757 Hadrian Zbarcea
648 Babak Vahdat
487 Christian Mueller
478 Jonathan Anstey
196 cmueller
194 Hiram R. Chirino
143 Christian Schneider
139 Henryk Konsek
136 Daniel Kulp
130 Moulliard Charles
108 Gert Vanthienen
100 Dhiraj Bokde
Pacemaker:Java
Author: James Strachan <jstrachan@apache.org> 2007-03-19 12:54:57
1/18/2015 @halyph16
Camel initial commit
`
Apache ActiveMQ
Apache Camel
Apache ServiceMix
Groovy programming language
Pacemaker:Java
1/18/2015 @halyph17
Books
Pacemaker:Java
• Camel One 2011-2013 (http://camelone.org)
• DevNation 2014 (http://www.devnation.org)
1/18/2015 @halyph18
Conferences
Pacemaker:Java
Q&A
1/18/2015 @halyph19

More Related Content

PDF
Laravel and CodeIgniter: pros & cons
ODP
Projects In Laravel : Learn Laravel Building 10 Projects
PPTX
What's New in Mulesoft Anypoint 7.4
PPTX
Laravel Tutorial PPT
PPTX
Laravel overview
PDF
Laravel 5.4
PDF
SpringPeople Introduction to Spring Framework
PDF
The automation challenge: Kubernetes Operators vs Helm Charts
Laravel and CodeIgniter: pros & cons
Projects In Laravel : Learn Laravel Building 10 Projects
What's New in Mulesoft Anypoint 7.4
Laravel Tutorial PPT
Laravel overview
Laravel 5.4
SpringPeople Introduction to Spring Framework
The automation challenge: Kubernetes Operators vs Helm Charts

What's hot (20)

PPTX
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
PDF
Laravel - The PHP Framework for Web Artisans
PPTX
A introduction to Laravel framework
PDF
automationframework
PDF
PHP Laravel Framework'üne Dalış
PDF
Laravel Introduction
PDF
DevJam 2019 - Building an ALEC Time Engine
PDF
The JavaFX Ecosystem
PDF
Taking your “web” app to places you never expected - Ember Fest 2014
PPTX
Selenium Topic 2 IDE
PDF
Ember App Kit & The Ember Resolver
PPTX
Selenium and Appium Training from Sauce Labs
PPTX
Getting started with laravel
PDF
Introduction to Selenium Webdriver - SpringPeople
PDF
Five tips for performant microservices on quarkus
PDF
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
PDF
Laravel tutorial
PDF
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
PDF
Grape(Ruby on Rails)
PPT
ColdFusion Components
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Laravel - The PHP Framework for Web Artisans
A introduction to Laravel framework
automationframework
PHP Laravel Framework'üne Dalış
Laravel Introduction
DevJam 2019 - Building an ALEC Time Engine
The JavaFX Ecosystem
Taking your “web” app to places you never expected - Ember Fest 2014
Selenium Topic 2 IDE
Ember App Kit & The Ember Resolver
Selenium and Appium Training from Sauce Labs
Getting started with laravel
Introduction to Selenium Webdriver - SpringPeople
Five tips for performant microservices on quarkus
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Laravel tutorial
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
Grape(Ruby on Rails)
ColdFusion Components
Ad

Similar to When Camel Smiles (20)

PDF
JavaEE6 my way
PPTX
2014 Joker - Integration Testing from the Trenches
PDF
Java servlet technology
PDF
Spring Boot
PDF
What's New in AppFuse 2.0
PPTX
Apache Camel framework Presentation and selection of apache camel for various...
PPT
Selenium-Browser-Based-Automated-Testing-for-Grails-Apps
PPT
Java2 platform
PDF
Low Code Integration with Apache Camel.pdf
PDF
Declaring Server App Components in Pure Java
PDF
FOSSASIA 2015: MySQL Group Replication
PDF
OpenShift/Kubernetes to Splunk log integration
PDF
ApacheCon NA - Apache Camel K: a cloud-native integration platform
PPT
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
PDF
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 5...
PDF
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
PDF
Overview of the AngularJS framework
PPTX
Chapter 3 servlet & jsp
PPTX
Apache Camel interview Questions and Answers
JavaEE6 my way
2014 Joker - Integration Testing from the Trenches
Java servlet technology
Spring Boot
What's New in AppFuse 2.0
Apache Camel framework Presentation and selection of apache camel for various...
Selenium-Browser-Based-Automated-Testing-for-Grails-Apps
Java2 platform
Low Code Integration with Apache Camel.pdf
Declaring Server App Components in Pure Java
FOSSASIA 2015: MySQL Group Replication
OpenShift/Kubernetes to Splunk log integration
ApacheCon NA - Apache Camel K: a cloud-native integration platform
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 5...
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
Overview of the AngularJS framework
Chapter 3 servlet & jsp
Apache Camel interview Questions and Answers
Ad

More from Orest Ivasiv (8)

PDF
Why don't you Groovy?
PDF
Vagrant or docker for java dev environment
PDF
OAuth2 and Spring Security
PDF
Dockerizing development workflow
PPTX
Adventures of java developer in ruby world
PDF
Math synonyms
PPTX
Java Code Quality Tools
PPTX
Time Management: the Hidden Power of Pomodoro
Why don't you Groovy?
Vagrant or docker for java dev environment
OAuth2 and Spring Security
Dockerizing development workflow
Adventures of java developer in ruby world
Math synonyms
Java Code Quality Tools
Time Management: the Hidden Power of Pomodoro

Recently uploaded (20)

PPTX
t_and_OpenAI_Combined_two_pressentations
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
PPTX
artificialintelligenceai1-copy-210604123353.pptx
PPTX
IPCNA VIRTUAL CLASSES INTERMEDIATE 6 PROJECT.pptx
PDF
Uptota Investor Deck - Where Africa Meets Blockchain
PPT
Ethics in Information System - Management Information System
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
simpleintnettestmetiaerl for the simple testint
PPTX
E -tech empowerment technologies PowerPoint
DOC
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
PPTX
newyork.pptxirantrafgshenepalchinachinane
PPTX
Introduction to cybersecurity and digital nettiquette
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PPTX
Funds Management Learning Material for Beg
PDF
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
PPT
250152213-Excitation-SystemWERRT (1).ppt
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PPTX
artificial intelligence overview of it and more
t_and_OpenAI_Combined_two_pressentations
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
artificialintelligenceai1-copy-210604123353.pptx
IPCNA VIRTUAL CLASSES INTERMEDIATE 6 PROJECT.pptx
Uptota Investor Deck - Where Africa Meets Blockchain
Ethics in Information System - Management Information System
The New Creative Director: How AI Tools for Social Media Content Creation Are...
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
simpleintnettestmetiaerl for the simple testint
E -tech empowerment technologies PowerPoint
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
newyork.pptxirantrafgshenepalchinachinane
Introduction to cybersecurity and digital nettiquette
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
Funds Management Learning Material for Beg
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
250152213-Excitation-SystemWERRT (1).ppt
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
SASE Traffic Flow - ZTNA Connector-1.pdf
artificial intelligence overview of it and more

When Camel Smiles

Editor's Notes

  • #5: http://www.eaipatterns.com/Introduction.html Distributed Applications vs. Integration This book is about enterprise integration—how to integrate independent applications so that they can work together. An enterprise application often incorporates an n-tier architecture (a more sophisticated version of a client/server architecture) enabling it to be distributed across several computers. Even though this results in processes on different machines communicating with each other, this is application distribution, not application integration. Why is an n-tier architecture considered application distribution and not application integration? First, the communicating parts are tightly coupled—they dependent directly on each other, so that one tier cannot function without the others. Second, communication between tiers tends to be synchronous. Third, an application (n-tier or atomic) tends to have human users that will only accept rapid system response. In contrast, integrated applications are independent applications that can each run by itself, but coordinate with each other in a loosely coupled way. This enables each application to focus on one comprehensive set of functionality and yet delegate to other applications for related functionality. Integrated applications communicating asynchronously don’t have to wait for a response; they can proceed without a response or perform other tasks concurrently until the response is available. Integrated applications tend to have a broad time constraint, such that they can work on other tasks until a result becomes available, and therefore are more patient than most human users waiting real-time for a result.
  • #6: http://www.kai-waehner.de/blog/2011/06/02/when-to-use-apache-camel/ http://www.slideshare.net/KaiWaehner/spoilt-for-choice-how-to-choose-the If you have to integrate just one or two technologies, e.g. reading a file or sending a JMS message, it is probably much easier and faster to use some well known libraries such as Apache Commons IO or Spring JmsTemplate. But please do always use these helper classes, pure File or JMS integration with try-catch-error is soooo ugly!
  • #7: $ ls -d */ | wc -l 187
  • #8: MEPs are used to differentiate between one-way and request-response messaging styles. The Camel exchange holds a pattern property that can be either
  • #9: From book “Camel in Action”
  • #13: http://www.consulting-notes.com/2014/06/apachecon-2014-presentation-apache.html#comment-form
  • #18: http://camel.apache.org/books.html Camel in Action Apache Camel Developer's Cookbook Instant Apache Camel Message Routing Instant Apache Camel Messaging System Enterprise Integration Patterns Apache Camel Developer's Cookbook by Scott Cranton and Jakub Korab (Packt Publishing, December 2013) Instant Apache Camel Messaging System by Evgeniy Sharapov (Packt Publishing, September 2013) Instant Apache Camel Message Routing by Bilgin Ibryam (Packt Publishing, August 2013) Camel in Action by Claus Ibsen and Jonathan Anstey (Manning, December 2010) Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf (Addison Wesley, October 2003)