You are viewing an older version of this section. Click here to navigate to the latest version.


Mule ESB provides a great deal of default functionality that you can use in your implementation. If you need different functionality, you can extend Mule as described on this page.

Creating Extensions

You can create five basic types of extensions to Mule: projects, modules, transports, examples, and enterprise patterns.

  • A project is a stand-alone Mule application.

  • A module is a package of related functionality in Mule, such as the XML module, which provides XML-based utilities like filters and routers. For a list of the available modules you can use, see Modules Reference.

  • A transport is a type of module that carries messages between Mule flows via a specific protocol. For a list of the available transports you can use, see Transports Reference.

  • An example is a sample application that you create to help users get up and running more quickly. Several examples are provided with Mule.

  • A catalog is a Mule-created Maven archetype created to help Mule users create custom configuration patterns.

Mule provides Maven archetypes that create the templates for each of these types of functionality in seconds, including the configuration files, unit tests, and packages.

An archetype acts as a wizard, prompting you to provide input, and then creates template configuration, source, and unit test files. Furthermore, if you run an archetype on an existing project or module you created, Maven will update it for you.

When working with transports, note that you can configure an existing transport, or you can create a new one. The recommended approach is to try to use and configure an existing transport first.

Developing Your Extension

After using the Maven archetype to get started, the recommended practice is to use an integrated development environment (IDE) such as Eclipse or IntelliJ to develop your Mule project, transport, module, or example. The Mule IDE allows you to quickly get up and running developing with Mule in Eclipse. 

Promoting Your Extension

After you have created a new extension, you can submit it as a project on GitHub. This allows you to share it with the Mule community so you can get feedback on the quality and design of the module before putting it into production.

Internationalizing Mule

If you will use Mule in countries where English is not spoken, you can extend Mule by internationalizing the strings in the messages and exceptions. Additionally, there are guidelines you should take into consideration to make sure your code handles different locales. For more information, see Internationalizing Strings.