Monday, November 2, 2009

Apache Camel Group on Linkedln

Apache Camel has now its Group on Linkedln web site : http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm

Feel free to join us to discuss / exchange ideas / news and jobs about your favorite mediation and router framework

Wednesday, October 28, 2009

Building OSGi applications with the Blueprint Container specification

Jarek Gawor which is an advisory software engineer for IBM and an Apache Geronimo committer /PMC member has published an interesting article on :

Building OSGi applications with the Blueprint Container specification

Wednesday, September 16, 2009

Fuse Community Day - Paris - 1st October

The first "Fuse Community day" will take place the 1st October 2009 in Paris. Different topics will be presented by the founders James Strachan, Rob Davies, Guillaume Nodet of the projects Apache Camel, ActiveMq and Karaf during this day.

To join the day, please register on this site : http://form.fusesource.com/forms/registerforParisDay

Here is the agenda :

09:30 - Réception et petit-déjeuner


10:00 - Ouverture de la conférence par Magali Briol


10:15 - FUSE et OSGi par Guillaume Nodet; Membre PMC

- La technologie OSGi est au coeurs des produits FUSE. Cette présentation vous permettra de découvrir OSGi, Apache Karaf, et leur utilisation au sein de FUSE ESB.“


11:00 - Enterprise Apache ActiveMQ par Rob Davies; Membre PMC et Co-fondateur

- Apache ActiveMQ is a the most widely used open source messaging system to date.

This presentation will look at deploying Apache ActiveMQ in the enterprise - for high availibity,

across wide area networks and how to tune Apache ActiveMQ to for performance

and scalability.


11:45 - Cas client par Sylvain Thomas; Architecte Capgemini

- Recueil de données satellites via FUSE ESB. Mise à disposition de Géo localisations et de

données règlementaires.


12:30 - Déjeuner


13:30 - Intégration avec Apache Camel par James Strachan; Membre PMC et Co-fondateur

- Apache Camel is a powerful open source integration framework based on Enterprise Integration Patterns with Beans Integration. This presentation will give an overview of Apache Camel and how to implement Enterprise Integration Pattern to solve a number of integration issues.


14:15 - Camel 2.0 et le développement de solutions orientées entreprise par

Charles Moulliard; Apache Camel Committer et Senior Enterprise Architecte

- Cette présentation va vous donner un aperçu des nouvelles fonctionnalités de Camel 2.0 et comment celles-ci vont aider les architectes/développeurs à construire des solutions orientées entreprises dans un environnement OSGI.


15:00 - Pause Café


15:15 - Intégrer JBI et OSGi avec ServiceMix4, JBI Components nouvelles caractéristiques et

roadmap par Jean-Baptiste Onofré ; ServiceMix Commiter

- Présentation des différentes versions de ServiceMix. Modularité au sein de ServiceMix4 (kernel

Karaf, NMR, composants). Publication de WSDL pour facilité l'utilisation des composants.“


16:00 - Introduction à FUSE Integration Designer par James Strachan et Rob Davies

- FUSE Integration Designer is an Eclipse tool design to help you create, debug and deploy your integration solutions for Apache Camel, ServiceMix and ActiveMQ.


16:30
-
Fermeture de la conférence

Friday, June 26, 2009

Don't Use System.out.println! but Log4j

Here is the bible when you want/need to configure Log4J. Thanks to Vipan Singla

Don't Use System.out.println!

Wednesday, June 24, 2009

OSGi Blueprint Services

In this very nice presentation of Guillaume Nodet, you will discovered what is magic behind OSGi Blueprint Services. This implementation who will be part of the next OSGI specification 4.2 will help the Java developer/architect to better design their solutions. The blueprint services are largely inspired from Spring Dynamic Module project but now it becomes a standard like EJB, ... in the past.


Tuesday, May 5, 2009

Apache Camel / OSGI / Wicket (real example - tutorial part2)

I have finalized a first draft of the second part of my tutorial about Camel 2.0 / ServiceMix-Karaf / CXF / OSGI / Apache Wicket

The purpose of the second part was to explain how to design a simple project where different concepts like :
  • persistence (Hibernate/spring),
  • routing (Apache Camel 2.0),
  • mapping between CSV file and objects (using camel-bindy),
  • webservices (Apache CXF - OSGI),
  • osgi stuffs,
  • packaging and deployment on Apache Karaf/ServiceMix OSGI server (features, PAX url),
  • web application integration (Apache Wicket, PAX Web)
have been addressed.

The tutorial has been designed in 4 parts :

  • Part 2a : real example, architecture, project setup, database creation
  • Part 2b : transform projects in bundles
  • Part 2c : add infrastructure and routing
  • Part 2d : web and deployment

and is available here : http://cwiki.apache.org/CAMEL/tutorial-osgi-camel-part2.html

Don't hesitate to provide me your remarks/comments to improve it.

Trick to pass an uri declared in a property file to a Camel route

Defining Camel uris in a file is not so easy. Until now, the only possibility was to create a camel endpoint where the uri was declared in the XML file.

Here is a trick who will simplify your life to declare/define the uri in a property file. Spring injection is used to replaced the variable declared in your XML file with the value discovered in the property file.

By example, to work with the following uri : file://d:/temp/data/?move=d:/temp/done/${file.name}

Remark : as you can see, the uri contains a variable to a Camel variable and in consequence is not a Spring bean. So we have to inform Spring that the variable to be searched in the XML file use another syntax delimiter (#{} instead of ${}).

Here is what you have to do

Step 1 : Create org.springframework.beans.factory.config.PropertyPlaceholderConfigurer bean

Define a PropertyPlaceHolder (using another prefix/suffix delimiter) to avoid conflict between your camel variable and Spring property



(1)
(2)
(2)


(1) : Define a different prefix instead of ${ which is the value by default and used as variable
(2) : Define the value of the suffix. In this case, this is the same as the default value

Step 2 : Create org.apache.camel.example.reportincident.routing.properties

Create the following file : org.apache.camel.example.reportincident.routing.properties and put it in your classpath. If you plan to deploy your camel route under Apache ServiceMix Kernel --> Apache Karaf, add this file in the META-INF/spring directory by example
Add the following property :

uriFile=file://d:/temp/data/?move=d:/temp/done/${file.name}

Step 3 : Create an endpoint in your Camel Spring DSL file

Create a camel endpoint for the uri that you would like to use



(1)

(1) As you can see, we use as a Spring variable reference the syntax #{} so spring will retrieve the value from the variable declared in the file

Step 4 : Adapt your route

Define the uri of your route like this :




Cool isn't !!