Wednesday, April 30, 2008

Spring App Server

I've just seen the annoucement that SpringSource has launched a new App Server based on OSGi (Spring-DM).
I find it a bit weird that they tend to rewrite existing stuff: the JMS JCA layer in Spring 2.x is somehow derived from the Jencks project, Spring Integration looks a lot like Camel, and now this app server which looks very similar to ServiceMix Kernel with WAR support (which we already had in ServiceMix 4 from the Pax Web project).


Jeff Yu (余昌) said...
This comment has been removed by the author.
Rob Davies said...

The key thing is not only the innovation behind the smx kernel, but the licence and community that Apache brings - it should be a no contest - smx kernel is the better option imho.

Juergen Hoeller said...

Guillaume, while the JMS JCA adapter in Spring 2.5 does tackle the same problem as Jencks, I think it's fair to say that it takes a quite different route implementation-wise and configuration-wise.

Spring 2.5's JMS JCA support is technically an extension of Spring's generic JCA 1.5 support (GenericMessageEndpointManager), providing support for any kind of JCA compatible messaging - and special support for JMS on top (JmsMessageEndpointManager). The JMS-specific part is actually pretty minimal there; the heavy lifting is done in Spring's generic JCA support. The primary goal is consistency with Spring's native JMS setup style, exposed side-by-side in Spring 2.5's "jms" namespace.

Jencks on the other hand is JMS-centric for its inbound messaging support, as well as very Geronimo-oriented - with hard-coded Geronimo API dependencies all over the codebase. This is fine for its purpose, of course, which is primarily to marry ActiveMQ with Geronimo's JCA container in a standalone fashion. However, it is very different from Spring 2.5's goal which is compatibility with any JCA backend infrastructure (closely aligned with core Spring facilities).


Glyn said...

Perhaps the main difference beween the SpringSource Application Platform and the ServiceMix WAR support is the Platform's support for applications composed of multiple OSGi bundles. An application provides a useful unit of management and a boundary for application-wide class loading and weaving features.