4. Where does complexity come from?
Much of the complexity comes from two issues:
• dealing with the specifics of applications and transports
• coming up with good solutions to integration problems
5. Integrations patterns
- Visual pattern language for message-based enterprise
integration solutions
- Pattern language comprises of 65 patterns in 6 categories
9. What is Apache Camel?
• Java framework for integration and mediation
• Enterprise Integration Patterns
• Domain Specific Languages:
• Fluent Java
• Spring XML
• Blueprint XML
• Scala
• Runs in any container (or stand alone)
• Over > 150 out-of-box components
• Active community
10. Why Apache Camel?
• Why Integration Framework?
• Framework do the heavy lifting
• You can focus on business problem
• Not "reinventing the wheel"
11. Why Apache Camel?
• Integration can be messy - variety of protocols and data
formats
• Framework hides all complexity so you can focus on your
business logic
13. Apache Camel Components
• Highly configurable
• Maximum interoperability
• Used to build “Adapters” to existing systems
• Don’t reinvent the wheel and end up with a box
16. Apache Camel Concept
Camel is Message-oriented → Concept of
Message
Communication in Camel takes places via
Message
Message is included in Exchange
17. Apache Camel: Exchange
• Exchange = Wrapper
object
• encapsulates
Messages (IN and
OUT) and Metadata
18. Apache Camel: Endpoint
Endpoint defines the communication port of an application
from(“file://C:/data/in”)
to(“sftp://localhost:22/data/out”)
21. Working with Camel Messages
Camel Processor:
• Java interface used to implement message consumers or
Message Translator EIP
• you can create a Component from a Processor
32. Transactions
Make client session with messaging system
transactional
• uses Spring transactions
• Transactional endpoints: JMS, ActiveMQ, AMPQ,
JPA
33. Error Handling
Two distinct types:
• transactional
• non-transactional
Can configure policies like:
• message redelivery
• dead-letter queue
37. Camel as a Client
• Java Client Application (no routes)
• Example
• Upload a file to a FTP server
38. Testing
• Camel provides some very powerful Unit Testing
capabilities. Its MockEndpoint class supports complex
expressions to validate your routes.
40. Hawt.io - ultimate admin console
• lightweight html5 modular web-console
• open-source (JBoss Cummunity project)
• discovers what the JVM is running (JMX, other) and
exposes a web UI
• lots of plugins:
○ ActiveMQ
○ Camel
○ OSGi
○ Karaf
○ JMX
○ …..
41. Management with Hawt.io
• View/edit Camel Routes
• ActiveMQ - browse/send
• Monitor system resources
• Inspect JMX
42. When NOT to use Apache Camel?
• Integrating just one or two technologies (Could be simpler
to use other libraries)
• Very large integration projects (use ESB’s: Apache
ServiceMix, Mule ESB)
43. Summary
• Apache Camel: The Swiss Army Knife of Integration
• Lightweight
• Multiple container support
• Developer friendly
• Feature (a lot of components)
• Scalability
• Easy adoption in enterprises
• Development
• Testing
• Operations friendly
• License