I'm pleased to announce that Mule team has just released 3.0 Milestone 2. Before we get into the features coming in Mule 3.0, I'd like to talk about the theme for this release.
The overall theme for Mule 3.0 is simplicity. We are looking at every part of Mule to see what we can do to make things even easier. Mule is a powerful platform, but we realise not everyone wants or needs all that power. The feedback from our users and customer is that they would like other ways of configuring Mule to make it easier for their new developers to get going quickly.
One major area we are improving is Mule configuration. Anyone that uses Mule is familiar with the XML-based service DSL (Domain Specific Language) that Mule uses to define services and flows. This configuration is very powerful but also gives the developer lots of options; picking the right path is not always easy for the newcomer. We will be introducing some new ways to work with Mule (note these features are slated for later milestones) –
- A Java-based DSL for defining Mule services and flows programmatically. The DSL will offer a simple way for developers to code up flows quickly.
- Annotations are being added to allow service objects to be created using purely annotations on the service component (think JAX-RS on steroids). Additionally, there is a new annotation for creating Mule transformers that makes it much easier to define and discover custom transformers. These will be made available in Milestone 3.
- We are experimenting with offering specialized XML-based service DSLs that provide a pre-defined service model. This makes it easier for developers to get started because the configuration options are restricted and the service model is well defined. This will not affect people using the default XML configuration.
Most importantly we are taking every measure to make Mule 3.0 XML configuration backward compatible with Mule 2.2.x. Readers can track any changes made on the Mule 2.2 to 3.0 Migration page.
I don't have much detail to share right now, but expect there to be some useful tooling options coming to the Mule community. Watch this space.
This is probably the most requested Mule feature and is already available in the current release. Hot deployment in Mule means Mule users get a few things –
- the ability to hot deploy individual services or groups to the Mule container and make changes on the fly.
- a standard deployment model for Mule, making it easier for new developers to get started.
Mule has enjoyed rich REST support since we released the REST Pack for Mule 2.0. Now we are bringing the REST pack into the core and adding some new capabilities for including RSS and ATOM support and simplified configuration.
We're also working on our Web Services support to make it easier to create, configure and extend web services in Mule.
New in 3.0-M2
The new ATOM module (ported from the RESTPack) introduces an ‘atom:http' endpoint that can be used to poll atom feeds and automatically split the contents into entries. The module can also be used for creating and adding to feeds.
The RSS module offer the same features as the ATOM module, introducing a ‘rss:http' endpoint. It currently does not support creating new feeds.
Google Guice is a code-oriented dependency injection framework. It is now supported as a way of configuring services managed by Mule.
The XMPP transport has been reworked to use a newer version of the smack API including support for SASL authentication. The API update was also used to completely rework the internals of the transport.
JSON transformers have also been added making it easy to work with JSON encoded messages. We have used the excellent [Jackson Framework|http://Jackson.codehaus.org] which means Mule also supports Json /Object bindings.
We've added XQuery support to the XML module. XQuery templates can be used in the same way as XSLT in Mule 2.x including support for importing context expressions into the transformation template.
It took us a while to get Mule 3 Milestone 2 out of the barn, but from now on expect frequent releases (roughly every 6-8 weeks) until we go GA. The team has been working hard on sister products for Mule including Mule Data Integrator, Mule MQ and Mule Management Console, and is now focused back on Mule 3.
I should note that we are continually hiring at MuleSoft. We are currently looking for top coders to help us on Mule, Tcat server and some cool new projects we have starting up. If you think you can help drive our mission to simplify middleware shoot me an email (ross at mulesoft dot com).