Mule 3.0-M2 and beyond

motif

I’m pleased to announce that 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.

Easier Configuration

One major area we are improving is Mule configuration. Anyone that uses Mule is familiar with the XML-based service (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) –

  1. 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.
  2. 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.
  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.

Tooling

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.

Hot Deployment

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.

For more information about see the hot deployment page (work in progress) or ping the user list.

HTTP Services

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 AJAX connector allows Mule events to be sent and received in a web browser. The connector includes a JavaScript client that can be used to listen for events, send events and perform RPC calls. The AJAX connector works when deployed in Mule stand-alone or embedded in a servlet container such as Apache Tomcat.

The new ATOM module (ported from the RESTPack) introduces an ‘:http’ endpoint that can be used to poll 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.

Timeline

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.

Hiring

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).


We'd love to hear your opinion on this post


2 Responses to “Mule 3.0-M2 and beyond”

  1. Is the Java based DSL project still ongoing? The javadoc of the dsl sections are all TODOs and I can’t find any info from the online doc about how to use it.

    • Hi,
      We never actually managed to fit in the Java DSL in the 3.0 release with everything else we put it as you’ll probably have noticed. The good new though, is that we restarted this effort earlier this year and are just about ready to make it available publicly. It’s not all there yet, but you can already do a lot with it. Watch out for an announcement about it on out blog in the next week or so. It would of course be invaluable if you could give it a go and give us your feedback.
      thanks!
      Dan