Apache Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages (DSL, such as Java, XML, Groovy, Kotlin, and YAML). In this session, We will discuss about Apache Camel and will see how it works.
2. Lack of etiquette and manners is a huge turn off.
KnolX Etiquettes
Punctuality
Respect Knolx session timings, you
are requested not to join sessions
after a 5 minutes threshold post
the session start time.
Feedback
Make sure to submit a constructive
feedback for all sessions as it is
very helpful for the presenter.
Silent Mode
Keep your mobile devices in silent
mode, feel free to move out of
session in case you need to attend
an urgent call.
Avoid Disturbance
Avoid unwanted chit chat during
the session.
3. Our Agenda
01 What is EAI/EIP
02 Introduction to Apache Camel
03 Features
04 Architecture
05 Demo
4. 2018
What is EAI?
Enterprise application integration (EAI) is
the task of uniting the databases and
workflows associated with business
applications to ensure that the business
uses the information consistently and
that changes to core business data
made by one application are correctly
reflected in others.
EAI provides a methodology that helps these disparate applications share data
and workflows to reduce manual steps and errors and to provide better insight
into organizational data.
5. 2018
What is EIP?
EIPs (in short) are known design patterns that provide solutions to
issues/problems faced during application integration.
Need of EIP:
● Applications are heterogeneous in nature, they are developed using
different languages, runs on different OS’es, understand different
data formats.
● Applications undergo a lot of change, they are subjected to upgrades,
and their API’s change over time.
● They need to exchange data over networks in a reliable and secure
manner.
6. 2018
Introduction to Apache Camel
Apache Camel is an integration
library for Java. It provides a set
of Java APIs which help you
integrate and process data
between different computer
systems. In other words, Camel is
like the glue between different
applications.
7. 2018
What is Apache Camel used for?
Whenever you need to move data from A to B, you can probably
use Apache Camel.
Using Apache Camel we can do the following:
● Pick up invoices .
● Moving document.
● Invoking a web service.
● Turn some XML documents into CSV files.
● Make a web service.
8. 2018
Features of Apache Camel
Apache Camel provides the following features.
1. Lightweight Open Source
2. Easy Configuration
3. Routing and Mediation Engine
4. A domain-specific language (DSL)
5. Enterprise integration patterns (EIPs)
10. 2018
Camel Context
● Camel provides a runtime engine, called the Camel Context, which
runs your integrations. It’s kind of like a mini application server,
embedded inside your Java application.
● The Camel Context runs your integrations and
is generally responsible for moving data
through the system.
● The simplest way of starting Camel is to create
an instance of DefaultCamelContext (which
implements the CamelContext interface) and
call the start method:
CamelContext context = new DefaultCamelContext();
context.start();
11. 2018
Route
A route usually consists of a series
of steps. The first step receives or
fetches some data, and then the
data is passed through subsequent
steps to the end of the route.
A simple route definition looks
something like this (in Camel’s Java
syntax):
from("file:documents/invoices") .to("file:documents/done");
12. 2018
Endpoint
● In Camel, an Endpoint is an
interface through which Camel
exchanges a message with
another system. Camel can
receive a message from an
Endpoint, or send a message to
an Endpoint.
● Endpoints are the physical
representations of the external
applications in your routes, and
you declare them using a URI.
13. 2018
Component
● To allow Camel to create an Endpoint, it uses a Component.
● A Component is simply a specialised plug that allows you to
connect to an external system, such as a file on disk, a mailbox, or
an application like Dropbox or Twitter.
14. 2018
Processor
A processor is usually a Java class that implements camel’s
Processor interface.
You might use a processor to:
● Perform your own custom actions that can’t be performed using
Camel features.
● Implement some basic business logic.
● Call out to another system or Java API.
15. 2018
Apache Camel Dependency
Here is the dependency for Apache camel using spring boot:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.17.0</version>
</dependency>