Access Keys:
Skip to content (Access Key - 0)
Cancel    
Cancel   
 

Contents

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

 

Enterprise Edition

Community Edition

ESB

 

x

Management Console

 

 

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.

AJAX - Mule now can integrate directly with JavaScript applications. Mule 3 includes server side endpoints and JavaScript client that allows events to be published directly to the browser and events to be published from the browser.

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.

JAXB Support - Automatic XML binding now supported for components and new JAXB transformers have also been added.

Flow

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.

Patterns

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

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

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.

Architecture Improvements

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.

Examples

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.

Other Changes

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.

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.

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.

Schema Documentation -

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.

JIRA Issues (43 issues)
Priority Type Key Summary
Blocker Bug MULE-5073 bookstore example email not working
Blocker Task MULE-5033 Re-add the CPAL license acceptance code
Blocker Bug MULE-5074 errorhandler example error
Blocker Bug MULE-5078 The errorhandler example fails to start up on Windows
Blocker Improvement MULE-4990 Review the property scoping behaviour of the VM transport
Blocker Bug MULE-5048 MuleContext is not injected into Message Processor configured on endpoints
Blocker Bug MULE-5041 AbstractEndpointBuilder build methods change state of builder
Blocker Bug MULE-5044 A dynamic endpoints contaioning a template does not work as a target of a FilteringOutboundRouter
Critical Task MULE-4305 Update archetype templates for a new schema namespace convention (without version number)
Critical Bug MULE-4864 Mule exceptions do not halt process execution
Critical Bug MULE-5051 jBPM transport broken by changes to message property scopes
Critical Bug MULE-5034 Instructions for msg.getAttachmentNames() deprecation are wrong
Critical Bug MULE-5010 Filter gets applied too soon in the inbound MP chain
Critical Bug MULE-4960 The AbstractExceptionListener handles the LifecycleException twice
Critical Bug MULE-5054 flow-ref element is not documented in schema
Critical New Feature MULE-5045 Create a Mule app plugin for Maven
Critical Patch submission MULE-4840 Exception message sent twice to the outbound endpoint defined in the exception strategy
Critical Bug MULE-3607 Outbound endpoints transformer exceptions invoke wrong Exception handlers.
Critical Bug MULE-5067 Components don't work inside anything but a top level <flow>
Major Bug MULE-4904 NPE in MuleClient because DispatcherWorkManager has not been created
Major Bug MULE-4961 JXPathExpressionEvaluator doesn't recognize namespaces if prefix is different.
Major Bug MULE-4908 JmsMessageDispatcher not XA Transaction aware, closes JMS Session
Major Bug MULE-4890 JBpmFunctionalTestCase intermittent failures
Major Bug MULE-5046 Errorhandler's handling of BusinessExceptions does not work
Major Task MULE-4473 Review archetypes for 3.x
Major Bug MULE-5071 <simple-service> doesn't inherit 'type' attribute from the parent
Major Bug MULE-5037 Jersey module has incorrect packages names (that include transport)
Major Bug MULE-4955 Refactor Exception Strategy invocation so we don't get exception strategies invoked twice
Major Bug MULE-5000 properties and attachment behavious inconsistent when using VM and MuleClient
Major Bug MULE-5058 custom-outbound-router fails with useTemplates error
Major Bug MULE-5061 Embedding a (script) component inside <choice><when> fails with NPE
Major Bug MULE-4442 One way invocations in CXF cause NullPointerException
Major Bug MULE-4418 Cookies are lost on endpoints
Major Bug MULE-4562 CXF endpoint binds to the wrong wsdl port
Minor Bug MULE-4448 Example project generated using example archetype is missing assembly.xml
Minor Task MULE-4895 Implement different startup/shutdown splash screens based on container/embedded mode
Minor Bug MULE-5062 Inconsistent expression syntax in choice/when constructs
Minor Task MULE-5064 Upgrade Spring xml namespaces to Spring 3.x
Minor Improvement MULE-4954 Sanitize Mule stacktraces
Minor Task MULE-5047 Upgrade profiler pack for YourKit Profiler 9.0.x
Minor Bug MULE-4137 Log4jNotificationLoggerAgent is useless
Minor Task MULE-3132 CXF should log via slf4j rather than separately using java.util.logging
Trivial Task MULE-5072 Rename <simple-service/>'s type from 'default' to 'direct' to better convey its meaning