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.
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
01 What is EAI/EIP
02 02
Introduction to Apache Camel
03 03
Features
04 04
Architecture
05 Demo
4. 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. 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. 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. 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. Features
Apache Camel provides the following features.
1. Light-weight Open Source
2. Easy Configuration
3. Routing and Mediation Engine
4. A domain-specific language (DSL)
5. Enterprise integration patterns (EIPs)
10. 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. 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. 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. 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. 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>