SlideShare a Scribd company logo
MASTER YOUR INTEGRATION PROJECTS
ON-PREMISE AND IN THE CLOUD
WITH FUSE TOOLING
Aurélien Pupier
Senior Software Engineer in Fuse Tooling Team
12/04/17
@apupier
INSERT DESIGNATOR, IF NEEDED
Integration Project
2
●Heterogeneity
○Technology
○Teams
●Large size
⇒Complex
INSERT DESIGNATOR, IF NEEDED
Enterprise Integration Patterns
3
“Recipes” to handle
complexity
in Integration projects
INSERT DESIGNATOR, IF NEEDED
Apache Camel
4
Well-established
Open-source integration framework
based on known
Enterprise Integration Patterns
INSERT DESIGNATOR, IF NEEDED
well-established?
5
2007 2017
INSERT DESIGNATOR, IF NEEDED
Apache Camel - EIP
6
●Messaging Channels
●Message Construction
●Message Routing
●Message Transformation
●Messaging Endpoints
●System Management
INSERT DESIGNATOR, IF NEEDED
Apache Camel - Components
7
●200+ by default
●Extensible
INSERT DESIGNATOR, IF NEEDED
Apache Camel - Components
8
INSERT DESIGNATOR, IF NEEDED
Apache Camel - DSL
9
●Domain Specific Languages:
○Spring XML
○Blueprint XML
○Java
Dive into with an example:
Content-based router pattern
INSERT DESIGNATOR, IF NEEDED
Content-based router
1
INSERT DESIGNATOR, IF NEEDED
Content-based router
1
INSERT DESIGNATOR, IF NEEDED
Content-based router
1
INSERT DESIGNATOR, IF NEEDED
Content-based router
1
INSERT DESIGNATOR, IF NEEDED
CBR xml
1
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - consumer
1
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - endpoint type
1
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - endpoint parameters
1
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - choice
1
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - expression language
2
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR xml - producer
2
<from uri="file:work/cbr/input"/>
<choice>
<when>
<xpath>/order/customer/country = 'UK'</xpath>
<to uri="file:work/cbr/output/uk"/>
</when>
<when>
<xpath>/order/customer/country = 'US'</xpath>
<to uri="file:work/cbr/output/us"/>
</when>
<otherwise>
<to uri="file:work/cbr/output/others"/>
</otherwise>
</choice>
INSERT DESIGNATOR, IF NEEDED
CBR Java
2
from("file:work/cbr/input")
.choice()
.when().xpath("//order/customer/country[text() = 'UK']")
.to("file:work/cbr/output/uk")
.when().xpath("//order/customer/country[text() = 'US']")
.to("file:work/cbr/output/us")
.otherwise()
.to("file:work/cbr/output/others");
INSERT DESIGNATOR, IF NEEDED
CBR Java - consumer
2
from("file:work/cbr/input")
.choice()
.when().xpath("//order/customer/country[text() = 'UK']")
.to("file:work/cbr/output/uk")
.when().xpath("//order/customer/country[text() = 'US']")
.to("file:work/cbr/output/us")
.otherwise()
.to("file:work/cbr/output/others");
INSERT DESIGNATOR, IF NEEDED
CBR Java - consumer
2
from("file:work/cbr/input")
.choice()
.when().xpath("//order/customer/country[text() = 'UK']")
.to("file:work/cbr/output/uk")
.when().xpath("//order/customer/country[text() = 'US']")
.to("file:work/cbr/output/us")
.otherwise()
.to("file:work/cbr/output/others");
INSERT DESIGNATOR, IF NEEDED
CBR Java - consumer
2
from("file:work/cbr/input")
.choice()
.when().xpath("//order/customer/country[text() = 'UK']")
.to("file:work/cbr/output/uk")
.when().xpath("//order/customer/country[text() = 'US']")
.to("file:work/cbr/output/us")
.otherwise()
.to("file:work/cbr/output/others");
INSERT DESIGNATOR, IF NEEDED
CBR graphic
2
INSERT DESIGNATOR, IF NEEDED
Apache Camel and Fuse Tooling
2
● Fuse:
○ productized Camel version
●Fuse Tooling:
○focused on Fuse
○community version working
INSERT DESIGNATOR, IF NEEDED
Fuse Tooling - IDE
2
● Graphical route definition
●Validation
●Debugging
●Testing
●Completion
●Integration with servers:
○On-premise: Jboss Fuse, EAP
○Cloud: OpenShift using Fuse Integration Services
INSERT DESIGNATOR, IF NEEDED
Fuse Tooling - templates
2
Fuse Tooling demo
Integrate with pleasure!
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews
INSERT DESIGNATOR, IF NEEDED
References
3
● Apache Camel
● Apache Camel EIPs
●Fuse download

More Related Content

Similar to Master your integration projects on premise and in the cloud with fuse tooling (20)

PPTX
Apache Camel framework Presentation and selection of apache camel for various...
chetansharma041
 
PDF
Simplify integrations-final-pdf
Christian Posta
 
PDF
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
José Román Martín Gil
 
PDF
Introductiontoapachecamel 110131060022-phpapp01
dheeraj kumar
 
PDF
Agile integration workshop Atlanta
Jeremy Davis
 
PDF
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
 
PDF
Solving Enterprise Integration with Apache Camel
Christian Posta
 
PDF
Apache Camel Introduction
Claus Ibsen
 
PPT
Simplify your integrations with Apache Camel
Kenneth Peeples
 
PPTX
Essential Camel Components
Christian Posta
 
PPT
Integration made easy with Apache Camel
Rosen Spasov
 
PPTX
Using Apache Camel as AKKA
Johan Edstrom
 
ODP
01 apache camel-intro
RedpillLinpro
 
ODP
Red Hat Open Day JBoss Fuse
Adrian Gigante
 
PPTX
Apache camel overview dec 2011
Marcelo Jabali
 
PDF
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
 
PDF
Apache Camel: rotas para as suas mensagens
Bruno Borges
 
PDF
Red Hat Agile integration Workshop Labs
Judy Breedlove
 
PPSX
SOA the Oracle way
Darley Stephen
 
PDF
DOSUG Taking Apache Camel For A Ride
Matthew McCullough
 
Apache Camel framework Presentation and selection of apache camel for various...
chetansharma041
 
Simplify integrations-final-pdf
Christian Posta
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
José Román Martín Gil
 
Introductiontoapachecamel 110131060022-phpapp01
dheeraj kumar
 
Agile integration workshop Atlanta
Jeremy Davis
 
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
 
Solving Enterprise Integration with Apache Camel
Christian Posta
 
Apache Camel Introduction
Claus Ibsen
 
Simplify your integrations with Apache Camel
Kenneth Peeples
 
Essential Camel Components
Christian Posta
 
Integration made easy with Apache Camel
Rosen Spasov
 
Using Apache Camel as AKKA
Johan Edstrom
 
01 apache camel-intro
RedpillLinpro
 
Red Hat Open Day JBoss Fuse
Adrian Gigante
 
Apache camel overview dec 2011
Marcelo Jabali
 
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
 
Apache Camel: rotas para as suas mensagens
Bruno Borges
 
Red Hat Agile integration Workshop Labs
Judy Breedlove
 
SOA the Oracle way
Darley Stephen
 
DOSUG Taking Apache Camel For A Ride
Matthew McCullough
 

More from Aurélien Pupier (14)

PDF
How to contribute textual tooling for apache camel in several id es
Aurélien Pupier
 
PDF
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
PDF
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Aurélien Pupier
 
PDF
Why and how to leverage apache camel integration framework in your io t archi...
Aurélien Pupier
 
ODP
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
PDF
Fast unit tests for Eclipse Plugins
Aurélien Pupier
 
PDF
Functional Testing made easy with SWTBot for Developers and Testers
Aurélien Pupier
 
PDF
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Aurélien Pupier
 
PPTX
How to contribute to Eclipse
Aurélien Pupier
 
PDF
Time to build and test results 3x faster - how we did it
Aurélien Pupier
 
PDF
Take advantage of memory analyzer tool inside your continuous integration
Aurélien Pupier
 
PDF
Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)
Aurélien Pupier
 
PDF
What's new GMF for Juno?
Aurélien Pupier
 
PDF
What's hot Juno?
Aurélien Pupier
 
How to contribute textual tooling for apache camel in several id es
Aurélien Pupier
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Aurélien Pupier
 
Why and how to leverage apache camel integration framework in your io t archi...
Aurélien Pupier
 
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
Fast unit tests for Eclipse Plugins
Aurélien Pupier
 
Functional Testing made easy with SWTBot for Developers and Testers
Aurélien Pupier
 
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Aurélien Pupier
 
How to contribute to Eclipse
Aurélien Pupier
 
Time to build and test results 3x faster - how we did it
Aurélien Pupier
 
Take advantage of memory analyzer tool inside your continuous integration
Aurélien Pupier
 
Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)
Aurélien Pupier
 
What's new GMF for Juno?
Aurélien Pupier
 
What's hot Juno?
Aurélien Pupier
 
Ad

Recently uploaded (20)

PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Ad

Master your integration projects on premise and in the cloud with fuse tooling

  • 1. MASTER YOUR INTEGRATION PROJECTS ON-PREMISE AND IN THE CLOUD WITH FUSE TOOLING Aurélien Pupier Senior Software Engineer in Fuse Tooling Team 12/04/17 @apupier
  • 2. INSERT DESIGNATOR, IF NEEDED Integration Project 2 ●Heterogeneity ○Technology ○Teams ●Large size ⇒Complex
  • 3. INSERT DESIGNATOR, IF NEEDED Enterprise Integration Patterns 3 “Recipes” to handle complexity in Integration projects
  • 4. INSERT DESIGNATOR, IF NEEDED Apache Camel 4 Well-established Open-source integration framework based on known Enterprise Integration Patterns
  • 5. INSERT DESIGNATOR, IF NEEDED well-established? 5 2007 2017
  • 6. INSERT DESIGNATOR, IF NEEDED Apache Camel - EIP 6 ●Messaging Channels ●Message Construction ●Message Routing ●Message Transformation ●Messaging Endpoints ●System Management
  • 7. INSERT DESIGNATOR, IF NEEDED Apache Camel - Components 7 ●200+ by default ●Extensible
  • 8. INSERT DESIGNATOR, IF NEEDED Apache Camel - Components 8
  • 9. INSERT DESIGNATOR, IF NEEDED Apache Camel - DSL 9 ●Domain Specific Languages: ○Spring XML ○Blueprint XML ○Java
  • 10. Dive into with an example: Content-based router pattern
  • 11. INSERT DESIGNATOR, IF NEEDED Content-based router 1
  • 12. INSERT DESIGNATOR, IF NEEDED Content-based router 1
  • 13. INSERT DESIGNATOR, IF NEEDED Content-based router 1
  • 14. INSERT DESIGNATOR, IF NEEDED Content-based router 1
  • 15. INSERT DESIGNATOR, IF NEEDED CBR xml 1 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 16. INSERT DESIGNATOR, IF NEEDED CBR xml - consumer 1 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 17. INSERT DESIGNATOR, IF NEEDED CBR xml - endpoint type 1 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 18. INSERT DESIGNATOR, IF NEEDED CBR xml - endpoint parameters 1 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 19. INSERT DESIGNATOR, IF NEEDED CBR xml - choice 1 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 20. INSERT DESIGNATOR, IF NEEDED CBR xml - expression language 2 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 21. INSERT DESIGNATOR, IF NEEDED CBR xml - producer 2 <from uri="file:work/cbr/input"/> <choice> <when> <xpath>/order/customer/country = 'UK'</xpath> <to uri="file:work/cbr/output/uk"/> </when> <when> <xpath>/order/customer/country = 'US'</xpath> <to uri="file:work/cbr/output/us"/> </when> <otherwise> <to uri="file:work/cbr/output/others"/> </otherwise> </choice>
  • 22. INSERT DESIGNATOR, IF NEEDED CBR Java 2 from("file:work/cbr/input") .choice() .when().xpath("//order/customer/country[text() = 'UK']") .to("file:work/cbr/output/uk") .when().xpath("//order/customer/country[text() = 'US']") .to("file:work/cbr/output/us") .otherwise() .to("file:work/cbr/output/others");
  • 23. INSERT DESIGNATOR, IF NEEDED CBR Java - consumer 2 from("file:work/cbr/input") .choice() .when().xpath("//order/customer/country[text() = 'UK']") .to("file:work/cbr/output/uk") .when().xpath("//order/customer/country[text() = 'US']") .to("file:work/cbr/output/us") .otherwise() .to("file:work/cbr/output/others");
  • 24. INSERT DESIGNATOR, IF NEEDED CBR Java - consumer 2 from("file:work/cbr/input") .choice() .when().xpath("//order/customer/country[text() = 'UK']") .to("file:work/cbr/output/uk") .when().xpath("//order/customer/country[text() = 'US']") .to("file:work/cbr/output/us") .otherwise() .to("file:work/cbr/output/others");
  • 25. INSERT DESIGNATOR, IF NEEDED CBR Java - consumer 2 from("file:work/cbr/input") .choice() .when().xpath("//order/customer/country[text() = 'UK']") .to("file:work/cbr/output/uk") .when().xpath("//order/customer/country[text() = 'US']") .to("file:work/cbr/output/us") .otherwise() .to("file:work/cbr/output/others");
  • 26. INSERT DESIGNATOR, IF NEEDED CBR graphic 2
  • 27. INSERT DESIGNATOR, IF NEEDED Apache Camel and Fuse Tooling 2 ● Fuse: ○ productized Camel version ●Fuse Tooling: ○focused on Fuse ○community version working
  • 28. INSERT DESIGNATOR, IF NEEDED Fuse Tooling - IDE 2 ● Graphical route definition ●Validation ●Debugging ●Testing ●Completion ●Integration with servers: ○On-premise: Jboss Fuse, EAP ○Cloud: OpenShift using Fuse Integration Services
  • 29. INSERT DESIGNATOR, IF NEEDED Fuse Tooling - templates 2
  • 32. INSERT DESIGNATOR, IF NEEDED References 3 ● Apache Camel ● Apache Camel EIPs ●Fuse download