Nav

Mule 1.3 Release Notes

Mule 1.3 is out! And there are quite a few changes from the last major release and over 200 issues closed!

Key Changes/Fixes/Features

MuleSource Public License

  • Mule is now distributed under the MuleSource Public License, which consists of the Mozilla Public License Version 1.1, modified to be specific to MuleSource.

Smaller Footprint

  • Previous Mule distributions have included "the kitchen sink" and weighed as much as 47 Mb. Most of this bulk was due to 3rd-party libraries not essential to running Mule. We have streamlined these libraries and the current distribution is down to a slim 22 Mb (tarball) or 27 Mb (zip) – 43% smaller!

Maven 2.0

  • Mule is now built by Maven 2.0, which is great news for Maven users. All Mule components are available for download from MuleSoft and can be added as dependencies to your application’s POM.

Java Service Wrapper

  • Mule now uses the Java Service Wrapper for controlling Mule from your native Operating System. This allows you to run Mule as a Windows Service or UNIX Daemon, automatically restart Mule when the JVM crashes or hangs, conveniently start, stop, restart Mule from the command line, and more.

XFire STaX-based SOAP support

  • XFire is a next generation soap stack using a stream based service model for efficiency and low memory usage. Mule now supports Xfire soap endpoints that are interchangable with the existing Glue and Axis endpoints.

JavaSpaces

  • Mule now has specific support for JavaSpaces, and ships with integration of the GigaSpaces implementation of the JavaSpaces spec. Mule can work with Local or remote spaces and manage JavaSpace transactions.

JAAS Security Provider

  • Mule now has a security provider for interacting with the JAAS (Java Authentication and Authorization Service) Security API.

Spring Remoting

  • Mule services can now invoke Spring Remoting services or be invoked using spring remoting.

HiveMind Support

  • The new HiveMind container context allows you to obtain objects from a HiveMind registry to use as your UMO components or to wire other Mule objects such as connectors, transformers, agents, etc.

Transaction Managers

  • Mule now supports a lot more transaction managers including WebLogic, WebSphere, JRun, JBoss, Resin and Generic Jndi-based support.

Performance

  • The Http transport has been rewritten to handle requests more efficiently and now supports message chunking as well.

  • Jms improvements have been introduced to manage receiver threads and session caching.

Character set encoding (i18n)

  • Message encoding can now be controlled on the event, endpoint or Mule instance level. All default encoding operations have been removed ensuring that Mule can be configured to run on non-european operating systems.

Session Handling

  • Session information can now be managed by Mule. Transports can plug in their own Session handler so that Http Cookies or ServletSessions can be used transparently. Mule also defines its own session header that can be used by transports that support headers but have no notion of a session in its protocol.

Bug Fixes

  • We’ve closed off over 200 issues in this release! See below for more information.

New in the Sandbox
Were getting new submissions all the time. Recent additions to the Sandbox include -

  • jBPM Transport

  • Specialised Tibco Transport

  • Specialised MQ Series transport

  • SAP module

  • Maven Architypes for building template projects

API Changes

There were a couple of minor API changes made in this release that were necessary. These should not have a big impact on your code.

It is no longer possible to obtain a properties map directly from a MuleMessage (interface: UMOMessage). Users must obtain a PropertyNames Set from the message. . MuleMessage (interface: UMOMessage) does not expose a PropertyNames Iterator. Now a set is returned. . MuleMessage (interface: UMOMessage) does not expose a AttachmentNames Iterator. Now a set is returned. . UMOMessageDispatcher.receive(UMOEndpoint endpoint, long timeout) has been added. This is so that transaction and filtering information can be passed when doing a receive. . UMOMessageDispatcher.receive(UMOEndpointURI endpointUri, long timeout) has been deprecated. . All property accessor and mutator methods on UMOEvent and UMOEventContext have been deprecated. Instead you should obtain the UMOMessage from the UMOEvent or UMOEventContext and access the properties through the message.

Big thanks to the Mule community for providing all their feedback, patches and bug reports!