SlideShare une entreprise Scribd logo
1  sur  48
Workshop with Apache Camel

Claus Ibsen (@davsclaus)
Principal Software Engineer, Red Hat
Barcelona JUG, january 2014

1

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

Prerequisite

●

Try 1st Camel Example

●

Create new Camel project
●

Deploy our application to Apache Tomcat

●

Modify the application and use servlet/restlet

●

Install hawtio in Apache Tomcat

●

●

2

REST project with Apache CXF-RS
Fabric8 Demo

PUBLIC PRESENTATION | CLAUS IBSEN
Pre-Requisite
●

●

Maven 3.0.4 (or 3.1.1 most likely works now)

●

Eclipse, IDEA or NetBeans

●

Apache Camel 2.12.2

●

3

Java 7

hawtio 1.2.2

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

Prerequisite

●

Try 1st Camel Example

●

Create new Camel project
●

Deploy our application to Apache Tomcat

●

Modify the application and use servlet/restlet

●

Install hawtio in Apache Tomcat

●

●

(REST project with Apache CXF-RS)

●

REST project with Apache CXF-RS

●

4

(Create new Java Camel project)

Fabric8 Demo
PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Extract Apache Camel 2.12.2

●

Read the readme file and follow instructions

Mind a little bug in Camel 2.12.2 in the camel-stream component.
Is fixed in 2.12.1 and upcoming 2.12.3

5

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Exercise 1
Make the example lower case instead!

6

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Open example in IDE
●

7

IDEA is just open project → locate the pom.xml file

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Open example in IDE
●

8

Eclipse → File → Import … → Existing Maven Project

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Open example in IDE
●

9

Select root folder …

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

10

Edit the source code
src/main/resources/META-INF/
spring/camel-context.xml

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Run the example from IDE

●

… type the command which was listed in the readme

11

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Run the example from IDE

●

… type the command which was listed in the readme

12

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

13

The console is within the IDE

PUBLIC PRESENTATION | CLAUS IBSEN
Try 1st Apache Camel Example
●

Run Maven in IDEA

I had to override maven home to 'fix this'

14

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

Prerequisite

●

Try 1st Camel Example

●

Create new Camel project
●

Deploy our application to Apache Tomcat

●

Modify the application and use servlet/restlet

●

Install hawtio in Apache Tomcat

●

REST project with Apache CXF-RS

●

Fabric8 Demo

15

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Exercise 2
Create a new Camel Web project,
deployable in Apache Tomcat

16

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Use the Maven Archetype
●

●

17

camel-archetype-web

From the command line

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Or from IDE
●

18

File → New Project... → New Maven Project

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Or from IDE
●

19

Filter by Camel and select camel-archetype-web

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Build the WAR

●

… and deploy to Apache Tomcat

.. and start Tomcat
… and see output on console
20

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Exercise 3
Modify application to listen on HTTP endpoint
and return a response message to client

21

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Add camel-servlet to Maven pom.xml

… add servlet in WEB-INF/web.xml

22

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Add modify Camel route

… build WAR and deploy to Tomcat by copying WAR

… and try from browser

23

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Modify Camel route to add content based router

… build WAR and deploy to Tomcat by copying WAR
… and try from browser

24

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Exercise 4
Add Content Based Router and return
two different kind of reply messages

25

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Modify Camel route to add content based router

… build WAR and deploy to Tomcat by copying WAR
… and try from browser

26

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Exercise 5
Install hawtio and browse the route and
see runtime statistics
Try to update the route from hawtio
And try the debugger also.

27

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Download hawtio 1.2.2 default WAR
●

●

http://hawt.io/getstarted/index.html

Copy .war to Apache Tomcat and rename to
hawtio.war

And access hawtio from web browser
●

28

http://localhost:8080/hawtio

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

29

Update route

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

30

Debug route

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Exercise 6
Modify application to use restlet for simple
REST service as a Camel route

31

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

Add camel-restlet to Maven pom.xml

… and modify route

●

32

After deploy to Apache Tomcat try from browser

PUBLIC PRESENTATION | CLAUS IBSEN
Create a new Camel project
●

●

Notice we are using port 8081 and not the servlet
container from Apache Tomcat.
To do so see details at
●

33

http://camel.apache.org/restlet

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

Prerequisite

●

Try 1st Camel Example

●

Create new Camel project
●

Deploy our application to Apache Tomcat

●

Modify the application and use servlet/restlet

●

Install hawtio in Apache Tomcat

●

REST project with Apache CXF-RS

●

Fabric8 Demo

34

PUBLIC PRESENTATION | CLAUS IBSEN
REST project with Apache CXF-RS
●

REST using pure Apache CXF (no Camel)

●

Example
●

●

35

https://github.com/fabric8io/fabric8/tree/master/quickstarts/re

Use JAX-RS annotations

PUBLIC PRESENTATION | CLAUS IBSEN
REST project with Apache CXF-RS
●

Setup Apache CXF-RS server
●

36

Easier to do in Spring or OSGi Blueprint XML file

PUBLIC PRESENTATION | CLAUS IBSEN
REST project with Apache CXF-RS
●

REST using pure camel-cxfrs (with Camel)
●

Uses route(s) as input

●

Define API in java interface/class (as if JAX-RS)
●
●

●

Either as interface
Or class implementation with no logic

Two binding modes
●

Default

●

Simple (in fact simpler and better)
Sorry at this I didn't have the time to implement
a Camel cxf-rs example for you

37

PUBLIC PRESENTATION | CLAUS IBSEN
Agenda
●

Prerequisite

●

Try 1st Camel Example

●

Create new Camel project
●

Deploy our application to Apache Tomcat

●

Modify the application and use servlet/restlet

●

Install hawtio in Apache Tomcat

●

REST project with Apache CXF-RS

●

Fabric8 Demo

38

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo

http://fabric8.io
39

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
●

Follow Getting Started Guide

●

Start Fabric8

http://fabric8.io
40

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
Create Fabric
(just use admin/admin for credentials)

… open web browser - http://localhost:8181/

41

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
Switch to Fabric Perspective
Install the camel wiki example
1. Click Configuration
2. Navigate up the tree → example → camel
3. Click wiki

42

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
4. Click the new button
5. Enter a container name
6. And click Create Container
Container being created …

43

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
7. Click container to see its details
8. Click connect button to connect to it

9. And you see the logs of the container

44

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
7. Click container to see its details
8. Click connect button to connect to it

9. And you see the logs of the container

45

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
10. Close the window and get back to the root container
11. Click on wiki to be able to edit the Camel route

12. Click on camel.xml to
open Camel editor

46

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
13. The editor opens and you can
edit the Camel route
14. Click apply and save to
save changes
15. The container is updated.
Connect to the container to see
the updated changes.

47

PUBLIC PRESENTATION | CLAUS IBSEN
Fabric8 Demo
Install and try the Loan Broker Example

See video how to do that
http://vimeo.com/album/2635012/video/84674508
… and there are more videos here
http://vimeo.com/album/2635012
48

PUBLIC PRESENTATION | CLAUS IBSEN

Contenu connexe

Tendances

Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityClaus Ibsen
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and GroovyClaus Ibsen
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelIoan Eugen Stan
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration libraryClaus Ibsen
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus Ibsen
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersClaus Ibsen
 
Graph ql subscriptions through the looking glass
Graph ql subscriptions through the looking glassGraph ql subscriptions through the looking glass
Graph ql subscriptions through the looking glassGerard Klijs
 
Graph ql subscriptions on the jvm
Graph ql subscriptions on the jvmGraph ql subscriptions on the jvm
Graph ql subscriptions on the jvmGerard Klijs
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014brian d foy
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matterTomas Doran
 
Indexing BackPAN
Indexing BackPANIndexing BackPAN
Indexing BackPANbrian d foy
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git togetherColdFusionConference
 
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...NETWAYS
 

Tendances (20)

Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivity
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
Apache Camel - The integration library
Apache Camel - The integration libraryApache Camel - The integration library
Apache Camel - The integration library
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
Graph ql subscriptions through the looking glass
Graph ql subscriptions through the looking glassGraph ql subscriptions through the looking glass
Graph ql subscriptions through the looking glass
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
 
Graph ql subscriptions on the jvm
Graph ql subscriptions on the jvmGraph ql subscriptions on the jvm
Graph ql subscriptions on the jvm
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matter
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Indexing BackPAN
Indexing BackPANIndexing BackPAN
Indexing BackPAN
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
 
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
OSCamp 2019 | #3 Ansible: Automated Tests of Ansible code with GitLab, Vagran...
 
Perlbrew
PerlbrewPerlbrew
Perlbrew
 

En vedette

Apache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache CamelApache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache CamelOmi Om
 
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesMicroservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesChristian Posta
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDChristian Posta
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelClaus Ibsen
 
ApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration libraryApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration libraryClaus Ibsen
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian Posta
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your dataChristian Posta
 

En vedette (11)

Apache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache CamelApache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache Camel
 
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesMicroservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
Global Netflix Platform
Global Netflix PlatformGlobal Netflix Platform
Global Netflix Platform
 
ApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration libraryApacheCon EU 2016 - Apache Camel the integration library
ApacheCon EU 2016 - Apache Camel the integration library
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
 
A Microservice Journey
A Microservice JourneyA Microservice Journey
A Microservice Journey
 

Similaire à Apache Camel workshop at BarcelonaJUG in January 2014

Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreHenryk Konsek
 
Developing Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus IbsenDeveloping Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus IbsenJudy Breedlove
 
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
Oracle Developers APAC Meetup #1 -  Working with Wercker WorksheetsOracle Developers APAC Meetup #1 -  Working with Wercker Worksheets
Oracle Developers APAC Meetup #1 - Working with Wercker WorksheetsDarrel Chia
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfGetting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfssuser348b1c
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java DevelopersImesh Gunaratne
 
Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.ICON UK EVENTS Limited
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)craigbox
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and GroovyGR8Conf
 
Cloud Native Okteto Cloud
Cloud Native Okteto Cloud Cloud Native Okteto Cloud
Cloud Native Okteto Cloud sangam biradar
 
Run K8s on Local Environment
Run K8s on Local EnvironmentRun K8s on Local Environment
Run K8s on Local EnvironmentGanesh Pol
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...Richard Johansson
 
How to speed up your (API client) modules
How to speed up your (API client) modulesHow to speed up your (API client) modules
How to speed up your (API client) modulesGonéri Le Bouder
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless worldScott van Kalken
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and KamailioGiacomo Vacca
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and FunQAware GmbH
 
Tomcat Maven Plugin
Tomcat Maven PluginTomcat Maven Plugin
Tomcat Maven PluginOlivier Lamy
 

Similaire à Apache Camel workshop at BarcelonaJUG in January 2014 (20)

Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymore
 
Developing Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus IbsenDeveloping Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus Ibsen
 
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
Oracle Developers APAC Meetup #1 -  Working with Wercker WorksheetsOracle Developers APAC Meetup #1 -  Working with Wercker Worksheets
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfGetting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
 
Cloud Native Okteto Cloud
Cloud Native Okteto Cloud Cloud Native Okteto Cloud
Cloud Native Okteto Cloud
 
Run K8s on Local Environment
Run K8s on Local EnvironmentRun K8s on Local Environment
Run K8s on Local Environment
 
Kate's.pptx
Kate's.pptxKate's.pptx
Kate's.pptx
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
 
How to speed up your (API client) modules
How to speed up your (API client) modulesHow to speed up your (API client) modules
How to speed up your (API client) modules
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Tomcat Maven Plugin
Tomcat Maven PluginTomcat Maven Plugin
Tomcat Maven Plugin
 

Plus de Claus Ibsen

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfClaus Ibsen
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfClaus Ibsen
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelClaus Ibsen
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Claus Ibsen
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3Claus Ibsen
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Claus Ibsen
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusClaus Ibsen
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Claus Ibsen
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)Claus Ibsen
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Claus Ibsen
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - CopenhagenClaus Ibsen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - FredericiaClaus Ibsen
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesClaus Ibsen
 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesJEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesClaus Ibsen
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloudClaus Ibsen
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Claus Ibsen
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersClaus Ibsen
 

Plus de Claus Ibsen (20)

Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdf
 
Camel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdfCamel JBang - Quarkus Insights.pdf
Camel JBang - Quarkus Insights.pdf
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)State of integration with Apache Camel (ApacheCon 2019)
State of integration with Apache Camel (ApacheCon 2019)
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetes
 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and KubernetesJEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
 
Camel riders in the cloud
Camel riders in the cloudCamel riders in the cloud
Camel riders in the cloud
 
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 

Dernier

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Apache Camel workshop at BarcelonaJUG in January 2014

  • 1. Workshop with Apache Camel Claus Ibsen (@davsclaus) Principal Software Engineer, Red Hat Barcelona JUG, january 2014 1 PUBLIC PRESENTATION | CLAUS IBSEN
  • 2. Agenda ● Prerequisite ● Try 1st Camel Example ● Create new Camel project ● Deploy our application to Apache Tomcat ● Modify the application and use servlet/restlet ● Install hawtio in Apache Tomcat ● ● 2 REST project with Apache CXF-RS Fabric8 Demo PUBLIC PRESENTATION | CLAUS IBSEN
  • 3. Pre-Requisite ● ● Maven 3.0.4 (or 3.1.1 most likely works now) ● Eclipse, IDEA or NetBeans ● Apache Camel 2.12.2 ● 3 Java 7 hawtio 1.2.2 PUBLIC PRESENTATION | CLAUS IBSEN
  • 4. Agenda ● Prerequisite ● Try 1st Camel Example ● Create new Camel project ● Deploy our application to Apache Tomcat ● Modify the application and use servlet/restlet ● Install hawtio in Apache Tomcat ● ● (REST project with Apache CXF-RS) ● REST project with Apache CXF-RS ● 4 (Create new Java Camel project) Fabric8 Demo PUBLIC PRESENTATION | CLAUS IBSEN
  • 5. Try 1st Apache Camel Example ● Extract Apache Camel 2.12.2 ● Read the readme file and follow instructions Mind a little bug in Camel 2.12.2 in the camel-stream component. Is fixed in 2.12.1 and upcoming 2.12.3 5 PUBLIC PRESENTATION | CLAUS IBSEN
  • 6. Try 1st Apache Camel Example ● Exercise 1 Make the example lower case instead! 6 PUBLIC PRESENTATION | CLAUS IBSEN
  • 7. Try 1st Apache Camel Example ● Open example in IDE ● 7 IDEA is just open project → locate the pom.xml file PUBLIC PRESENTATION | CLAUS IBSEN
  • 8. Try 1st Apache Camel Example ● Open example in IDE ● 8 Eclipse → File → Import … → Existing Maven Project PUBLIC PRESENTATION | CLAUS IBSEN
  • 9. Try 1st Apache Camel Example ● Open example in IDE ● 9 Select root folder … PUBLIC PRESENTATION | CLAUS IBSEN
  • 10. Try 1st Apache Camel Example ● 10 Edit the source code src/main/resources/META-INF/ spring/camel-context.xml PUBLIC PRESENTATION | CLAUS IBSEN
  • 11. Try 1st Apache Camel Example ● Run the example from IDE ● … type the command which was listed in the readme 11 PUBLIC PRESENTATION | CLAUS IBSEN
  • 12. Try 1st Apache Camel Example ● Run the example from IDE ● … type the command which was listed in the readme 12 PUBLIC PRESENTATION | CLAUS IBSEN
  • 13. Try 1st Apache Camel Example ● 13 The console is within the IDE PUBLIC PRESENTATION | CLAUS IBSEN
  • 14. Try 1st Apache Camel Example ● Run Maven in IDEA I had to override maven home to 'fix this' 14 PUBLIC PRESENTATION | CLAUS IBSEN
  • 15. Agenda ● Prerequisite ● Try 1st Camel Example ● Create new Camel project ● Deploy our application to Apache Tomcat ● Modify the application and use servlet/restlet ● Install hawtio in Apache Tomcat ● REST project with Apache CXF-RS ● Fabric8 Demo 15 PUBLIC PRESENTATION | CLAUS IBSEN
  • 16. Create a new Camel project ● Exercise 2 Create a new Camel Web project, deployable in Apache Tomcat 16 PUBLIC PRESENTATION | CLAUS IBSEN
  • 17. Create a new Camel project ● Use the Maven Archetype ● ● 17 camel-archetype-web From the command line PUBLIC PRESENTATION | CLAUS IBSEN
  • 18. Create a new Camel project ● Or from IDE ● 18 File → New Project... → New Maven Project PUBLIC PRESENTATION | CLAUS IBSEN
  • 19. Create a new Camel project ● Or from IDE ● 19 Filter by Camel and select camel-archetype-web PUBLIC PRESENTATION | CLAUS IBSEN
  • 20. Create a new Camel project ● Build the WAR ● … and deploy to Apache Tomcat .. and start Tomcat … and see output on console 20 PUBLIC PRESENTATION | CLAUS IBSEN
  • 21. Create a new Camel project ● Exercise 3 Modify application to listen on HTTP endpoint and return a response message to client 21 PUBLIC PRESENTATION | CLAUS IBSEN
  • 22. Create a new Camel project ● Add camel-servlet to Maven pom.xml … add servlet in WEB-INF/web.xml 22 PUBLIC PRESENTATION | CLAUS IBSEN
  • 23. Create a new Camel project ● Add modify Camel route … build WAR and deploy to Tomcat by copying WAR … and try from browser 23 PUBLIC PRESENTATION | CLAUS IBSEN
  • 24. Create a new Camel project ● Modify Camel route to add content based router … build WAR and deploy to Tomcat by copying WAR … and try from browser 24 PUBLIC PRESENTATION | CLAUS IBSEN
  • 25. Create a new Camel project ● Exercise 4 Add Content Based Router and return two different kind of reply messages 25 PUBLIC PRESENTATION | CLAUS IBSEN
  • 26. Create a new Camel project ● Modify Camel route to add content based router … build WAR and deploy to Tomcat by copying WAR … and try from browser 26 PUBLIC PRESENTATION | CLAUS IBSEN
  • 27. Create a new Camel project ● Exercise 5 Install hawtio and browse the route and see runtime statistics Try to update the route from hawtio And try the debugger also. 27 PUBLIC PRESENTATION | CLAUS IBSEN
  • 28. Create a new Camel project ● Download hawtio 1.2.2 default WAR ● ● http://hawt.io/getstarted/index.html Copy .war to Apache Tomcat and rename to hawtio.war And access hawtio from web browser ● 28 http://localhost:8080/hawtio PUBLIC PRESENTATION | CLAUS IBSEN
  • 29. Create a new Camel project ● 29 Update route PUBLIC PRESENTATION | CLAUS IBSEN
  • 30. Create a new Camel project ● 30 Debug route PUBLIC PRESENTATION | CLAUS IBSEN
  • 31. Create a new Camel project ● Exercise 6 Modify application to use restlet for simple REST service as a Camel route 31 PUBLIC PRESENTATION | CLAUS IBSEN
  • 32. Create a new Camel project ● Add camel-restlet to Maven pom.xml … and modify route ● 32 After deploy to Apache Tomcat try from browser PUBLIC PRESENTATION | CLAUS IBSEN
  • 33. Create a new Camel project ● ● Notice we are using port 8081 and not the servlet container from Apache Tomcat. To do so see details at ● 33 http://camel.apache.org/restlet PUBLIC PRESENTATION | CLAUS IBSEN
  • 34. Agenda ● Prerequisite ● Try 1st Camel Example ● Create new Camel project ● Deploy our application to Apache Tomcat ● Modify the application and use servlet/restlet ● Install hawtio in Apache Tomcat ● REST project with Apache CXF-RS ● Fabric8 Demo 34 PUBLIC PRESENTATION | CLAUS IBSEN
  • 35. REST project with Apache CXF-RS ● REST using pure Apache CXF (no Camel) ● Example ● ● 35 https://github.com/fabric8io/fabric8/tree/master/quickstarts/re Use JAX-RS annotations PUBLIC PRESENTATION | CLAUS IBSEN
  • 36. REST project with Apache CXF-RS ● Setup Apache CXF-RS server ● 36 Easier to do in Spring or OSGi Blueprint XML file PUBLIC PRESENTATION | CLAUS IBSEN
  • 37. REST project with Apache CXF-RS ● REST using pure camel-cxfrs (with Camel) ● Uses route(s) as input ● Define API in java interface/class (as if JAX-RS) ● ● ● Either as interface Or class implementation with no logic Two binding modes ● Default ● Simple (in fact simpler and better) Sorry at this I didn't have the time to implement a Camel cxf-rs example for you 37 PUBLIC PRESENTATION | CLAUS IBSEN
  • 38. Agenda ● Prerequisite ● Try 1st Camel Example ● Create new Camel project ● Deploy our application to Apache Tomcat ● Modify the application and use servlet/restlet ● Install hawtio in Apache Tomcat ● REST project with Apache CXF-RS ● Fabric8 Demo 38 PUBLIC PRESENTATION | CLAUS IBSEN
  • 40. Fabric8 Demo ● Follow Getting Started Guide ● Start Fabric8 http://fabric8.io 40 PUBLIC PRESENTATION | CLAUS IBSEN
  • 41. Fabric8 Demo Create Fabric (just use admin/admin for credentials) … open web browser - http://localhost:8181/ 41 PUBLIC PRESENTATION | CLAUS IBSEN
  • 42. Fabric8 Demo Switch to Fabric Perspective Install the camel wiki example 1. Click Configuration 2. Navigate up the tree → example → camel 3. Click wiki 42 PUBLIC PRESENTATION | CLAUS IBSEN
  • 43. Fabric8 Demo 4. Click the new button 5. Enter a container name 6. And click Create Container Container being created … 43 PUBLIC PRESENTATION | CLAUS IBSEN
  • 44. Fabric8 Demo 7. Click container to see its details 8. Click connect button to connect to it 9. And you see the logs of the container 44 PUBLIC PRESENTATION | CLAUS IBSEN
  • 45. Fabric8 Demo 7. Click container to see its details 8. Click connect button to connect to it 9. And you see the logs of the container 45 PUBLIC PRESENTATION | CLAUS IBSEN
  • 46. Fabric8 Demo 10. Close the window and get back to the root container 11. Click on wiki to be able to edit the Camel route 12. Click on camel.xml to open Camel editor 46 PUBLIC PRESENTATION | CLAUS IBSEN
  • 47. Fabric8 Demo 13. The editor opens and you can edit the Camel route 14. Click apply and save to save changes 15. The container is updated. Connect to the container to see the updated changes. 47 PUBLIC PRESENTATION | CLAUS IBSEN
  • 48. Fabric8 Demo Install and try the Loan Broker Example See video how to do that http://vimeo.com/album/2635012/video/84674508 … and there are more videos here http://vimeo.com/album/2635012 48 PUBLIC PRESENTATION | CLAUS IBSEN