This page last changed on Jun 27, 2004 by ross.

Mule 0.9 sees a number of major new features, most notable being transaction management and integrated routing support. This release marks the end of major architectural additions until Mule v1.0. Changes between now an the release of 1.0 will focus on adding extensions such as providers, transformers, routers and configuration builders, and system management support.


Transaction Management
The Mule framework now supports declarative transactions. Transactions can be demarcated between two or more providers with the developer having full control over when transactions are begun and committed. Transaction constaints can also be specified to control transaction scopes over multiple events.
The transaction support in this release applies to Jms providers, though the framework has been designed to manage any other transactional system resources.
There is Full XA transaction support in this release. This provides 2 phase commit over different XA complient systems such as Jms and DBMS. In testing Mule's XA support it proved difficult to get consistent behaviour between different XA aware Jms Servers. Generally, the commercial Jms Servers tested with seemed the most reliable.


Routing Support
Mule now has routing support built into its architecture. Routers control how events are dispatched around the system. Mule provides routing for inbound events and outbound events.
Inbound Routing can control which events are accepted, the order in which events are received and how many events are received at a time (aggregation).
Outbound Routers can control where events get dispatched to next. This can achieve broadcasting over http, sockets, etc, recipient list dispatching and content-based routing over any supported protocol.


New Configuration Model
Mule now has an extensible configuration model, based on configuration builders. A configuration builder is a builder strategy allowing developers to plug in their own configuration implementations. Possible futere implementations will be for Groovy and BeanShell. This distribution provides a Spring Configuration Builder that allows developers to initialise Mule from a Spring Application Context and leverage Springs's features such as it's Aop, data access and transaction frameworks from within Mule.


Simplified Provider API
The Provider api has undergone some changes with the addition of transaction support. However, the new provider support classes hide all the implementation complexities providing simple hooks for transaction management and message routing.


Improved Documentation
Mule's existing documentation has been revamped and there is a lot of new documentation. Most importantly, the User Guide is available as well as the Architecture Guide, Mule Overview and FAQ. All Mule documentation is currently hosted on this wiki site so that it can be more responsive to change between releases. When version 1.0 of Mule is released a stable set of pdf documentation will also be provided.


Changes to Mule Xml configuration
There have been some minor changes in the Mule Xml config definition in this release. You will need to update you 0.8 config files to take into account the following -

  1. When specifying a transformer chain, the transformer names should be separated by a space not a comma. This was changed so that the DTD could validate transformer names using IDREFS.
  2. The element <connector-descriptor> has been renamed to <connector>. The -descriptor postfix in Mule is used to indicate that the object is a template object, i.e. it's is created or defined dynamically.
  3. Support for name-spaced properties has been deprecated. All properties on Mule objects are now set as bean properties, so namespace prefixes on the properties is redundant.


Issues Fixed

[MULE-2@JIRA] Components are always lazy loaded
[MULE-3@JIRA] More flexible configuration mechanism
[MULE-4@JIRA] Mule sessions confusing
[MULE-5@JIRA] Refactor MuleSession into Component/Session
[MULE-6@JIRA] Spring Configuration Support
[MULE-7@JIRA] Integrate Spring Transaction management
[MULE-11@JIRA] Provider name iterators for objects stored by the Mule server
[MULE-12@JIRA] Make it easier to plug in custom instances of the MuleManager
[MULE-14@JIRA] Default exception strategy on the Model
[MULE-15@JIRA] Pluggable pool on Model
[MULE-17@JIRA] Mule Overview Guide

Document generated by Confluence on Oct 03, 2006 09:23