Wednesday, April 22, 2009

Camel Tutorial - OSGI part 1 (UPDATED)

I'm currently working on the part of the camel - OSGI tutorial part 2 but I have found the time to update the first part. This was required because I would like to use the maven PAX plugin instead of spring maven plugin and test it against SMX 1.1.0 and Camel 1.6.0.

The PAX maven plugin offers a lot of advantages regarding to the one of Spring (which is currently becoming a new tool called - bundlor)
- pom.xml file generated only include dependencies, plugin required,
- project can be designed with several modules,
- project can be tested with PAX Exam and launched using PAX runner
- ...

Here is the link to tutorial

Tuesday, April 21, 2009

Distributed OSGi – A Simple Example

Here is a very interesting article explaining what Distributed OSGI will looks like using implementation done by CXF project.

<coderthoughts />: Distributed OSGi – A Simple Example

Monday, April 20, 2009

ServiceMix 4 et son kernel OSGi (Xebia France)

L' excellente revue Xebia parle de ServiceMix et Service Mix Kernel.

Il est toujours intéressant de constater que des acteurs importants dans la vulgarisation des technologies clés dans les développements Java, ESB s'intéressent à ce projet inovateur, construit sur des fondations solides : Apache Felix, Spring DM et PAX et continue à séduire.

Tuesday, April 14, 2009

The power of Apache wicket and Spring OSGI Service top of ServiceMix 4

In a previous post, I have explained how you can transform ServiceMix 4 as a Web Application Server. In this new post, I will show you How you can combine the power of Apache Wicket and Spring OSGI services together on ServiceMix 4 with the help of PAX Web.

This mix can be achieved very easily. Only a few steps are required.

1) Create a maven project where you will design your spring service and expose it as an OSGI service according to the Spring documentation.

2) Create a new maven project that you will use to package your Apache web application. The trick here is to modify your web.xml file like this :

a) add listener and context parameter for the Spring OSGI Context Loader

b) Add Spring Factory to Apache (required to allow injection of dependency in java classes of Wicket)

Please refer to the Apache Wicket Web site for more info about Spring integration

3) create an applicationContext.xml file under WEB-INF folder containing the reference to the OSGI service :

<osgi:reference id="incidentService" interface="org.apache.camel.example.reportincident.service.IncidentService"/>

4) And of course, in your Wicket page, inject dependency using the Wicket annotation :

private IncidentService incidentService;

5) Now generate the bundles (JAR/WAR) and deploy them top of SMX4. Before to deploy the war containing the web project, verify that the following bundles are deployed on SMX4 :

- OPS4J Pax Web - Web Container (0.6.0)
- OPS4J Pax Web - Jsp Support (0.6.0)
- OPS4J Pax Web Extender - WAR (0.5.1)
- OPS4J Pax Web Extender - Whiteboard (0.5.1)
- OPS4J Pax Url - war:, war-i: (0.4.0)

- spring-osgi-web (1.2.0.rc1)
- Wicket (1.3.5)
- Wicket IoC common code (1.3.5)
- Wicket Spring Integration (1.3.5)
- Wicket Spring Integration through Annotations (1.3.5)
- Wicket Extensions (1.3.5)

- Apache ServiceMix Bundles: jetty-6.1.14 (

A tutorial will be published soon with material and step by step.

Remarks :
- PAX-runner can be used as running environment (instead of Servicemix) with Equinox, Felix, ...
- Many thanks to Alin Dreghiciu (PAX project) for its help/support