Mule ESB 3.0.0 Release Notes
The Mule ESB team is pleased to announce the General Availability of Mule 3.0. This is a new major iteration of the world's most widely used open source enterprise service bus. This latest version of Mule represents the next generation of integration infrastructure software that enables developers to easily integrate enterprise data and applications seamlessly with today's SaaS and cloud-based web applications.
Current Release Version
Mule Cloud Connect
Mule Cloud Connect is a collection of new features and improvements to Mule that make it dead-simple to securely integrate your enterprise with cloud-based data and services. At the core of it is iBeans - small, re-usable connectors that leverage the native web technology support in Mule to connect to external applications and data services.
Mule Cloud Connect includes:
Integration Beans - These are small re-usable cloud connectors that can be injected into your components to access external services such as Amazon Web Services, Twitter and Facebook. They provide a really easy way of accessing services managing all the security, request validation, data transformation and error handling.
REST / JAX-RS - Jersey is now part of the core mule distribution, providing native support for REST and JAX-RS. Like Apache CXF, Jersey is now both easily to configure and highly flexible. Instead of being an endpoint type, Jersey is now implemented as a type of component that can contain any number of Jersey resources.
Web Services - Now more easily configurable and more flexible. CXF is now configured as a message processor within a flow or on an endpoint in a service. This message processor is simple to configure since there is specific XML syntax for each use case: client, server, and proxy. Axis is no longer included in the core Mule distribution but is still available for download from the MuleForge for use with legacy RPC-encoded web services.
ATOM and RSS - Mule 3 Now has built in support for polling feeds and splitting entries and producing ATOM feeds.
JSON Support - Mule 3 introduces JSON data handling. As well as adding JSON transformers, JSON data can automatically be marshaled into Java objects and back to JSON.
Flow - A new way of configuring Mule to take full advantage of the flexibility and power of the new Message Processor API. Flow is a more natural way of defining some integration scenarios and more powerful and flexible than the Mule service model.
Configuration Patterns - The introduction of configuration patterns in Mule greatly reduce configuration and make common tasks such as Transactional Bridging or creating a Web Service Proxy really easy.
Annotations - New annotations have been introduced enabling injection of message information into transformers and components. The @Transformer annotation makes creating transformers much easier and the @Schedule annotation makes polling component methods simple.
Deployment Model - Mule now defines a simple application model that allow individual services or groups of services to be deployed as packaged applications into the Mule run-time.
Hot Deployment - Mule now supports multiple applications running within the same Mule instance with complete isolation from other applications in the container. Development time automatic hot deployment is supported with new changes being affected within milliseconds.
Message Processor API - An architectural change to simplify Mule's internals and give it the flexibility to implement other patterns in the future which align more closely to specific scenarios beyond the service/component elements which you all know and love.
Message Exchange Patterns - (a.k.a. MEPs) give you more explicit and flexible control over the way messages flow through Mule. For example, you can now specify whether you expect a response on a given endpoint or not (see the new attribute "exchange-pattern" on endpoints). In the future, we may introduce additional exchange patterns that allow for different communication styles as well.
Message Property Scoping - Message properties are now scoped in either 'inbound', 'invocation' or 'outbound' scope. These scopes provide isolation and consistency to the way properties are attached to inbound and outbound messages.
Lifecycle Improvements - Improves behaviour during startup and shutdown of applications, a very important aspect of hot deployment. We have also added support for JSR-250 lifecycle annotations @PostConstruct and @PreDestroy.
Exception Handling - Exception strategies were simplified to provide more consistent and predictable error-handling behavior.
Automatic Transformation - The transformation engine has been enhanced to support Data bindings such as XML/JAXB and JSON/Jackson. Also Mime types are now supported when discovering transformers.
CXF Now a Module - Mule 3.0 architectural changes bring much better support for CXF, meaning it can be used just like another pipe/filter element.
REST: First Class Citizen of Mule - Mule has enjoyed rich REST support since we released the REST Pack for Mule 2.0. The REST pack has been moved into the core, and we have added some new capabilities, such as support for including RSS and ATOM support and simplified configuration.
Changes to examples - The Loan Broker example has been simplified. The Mule Examples Web App from Mule 2.x is temporarily removed for 3.0, but it will be restored soon. The examples no longer use the STDIO transport and instead use HTTP.
Message factories - Translate messages from the underlying transport format into a MuleMessage. Almost all messaging protocols have the notion of message payload and header properties. Message factories extract that payload and optionally copy all properties of the transport message into the MuleMessage. A MuleMessage created by a message factory can be queried for properties of the underlying transport message.
Dynamic Endpoints - Endpoints in Mule can now be dynamic. Addressing information can be constructed from the contents of the message or via any Mule expression.
JBoss jBPM - Mule has had integration with JBoss jBPM for a long time, but we have recently improved our support for Mule 3.0, including an upgrade to the latest major version of jBPM (4.4), much simplified configuration, and cleaner integration with Mule from your process definition, including custom process elements. For more information, refer to our BPM documentation.
Transaction Enhancements - By setting attributes on a new element called
<xa-transaction> Mule can now pay attention to (or ignore) transactions started outside of Mule.
XQuery Support - The XQuery Module gives users the ability to perform XQuery transformations on XML messages in Mule. This works in a very similar way to the XSLT Transformer shipped with Mule.
With Mule 3.0 comes a release of new Javadoc-style schema documentation, making it easier to familiarize yourself with all the elements and attributes permissible in xml configuration files.
AXIS Code Removed from MULE - An Axis support will be available as a separate EE module.
Fixed in this Release
Mule Community Edition version 3.0.0 builds on the features that were added in version 2.2.1 and fixes the following issues. In addition, all the fixes from previous 3.0 milestones are included.