We have been very busy writing the remaining chapters in the last few months. But last week we were able to deliver the 11 chapters for the final review process that is being executed by our publisher Manning.
In the last months we have also seen quite a lot of new activity in the Open Source ESB space. Mule 2.0 has delivered RC2 (http://mule.mulesource.org/display/MULE/Download) which includes a lot of handy changes for a Mule developer. The following code snippet is just a short example of the new Mule 2.0 configuration:
<jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:61616"/>
Notice that we can configure the ActiveMQ connection in just one line. And also notice that there are no inbound and outbound routers anymore, it's just inbound and outbound. Another very powerful change is the namespace qualified endpoint definition. We can now define a JMS inbound endpoint with just a queue name attribute instead of an address attribute with a jms://queuename value. We have refactored all of our examples to this new Mule 2.0 configuration style.
ServiceMix has released a first milestone for the ServiceMix 4.0 kernel (http://servicemix.apache.org/SMX4KNL/1-quick-start.html). This milestone includes a first preview of the OSGI enabled kernel that will be provided with ServiceMix 4.0. This looks very promissing for the new ServiceMix architecture that will be based on OSGI, Apache Camel for routing and mediation, Apache ActiveMQ for messaging and Apache CXF for web services.
Another addition to the Open Source ESB world is Spring Integration (http://www.springframework.org/spring-integration). In January a first milestone was published that included a number of interesting examples. And in the tradition of the Spring framework, the Spring integration project is also well documented. The hello world example of this framework contains the following Spring configuration file:
This is just a very simple example of how channels and services are configured for Spring integration. In this example the inputChannel is configured as the input for the sayHello method of the HelloService bean. The output will be sent to the outputChannel.
A very important foundation for all the Open Source ESBs are the Enterprise Integration Patterns defined by Hohpe and Woolf (http://www.enterpriseintegrationpatterns.com). So when you have knowledge of these patterns you will see a lot of commonalities among the different ESBs.
It's clear that the Open Source ESB world is changing a lot, but this also keeps it interesting. With our book we try to provide some more insight into the different ESBs that are available at this moment.