Extending Mule ESB 3
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 services 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. For more information, see Using IDEs.
Promoting Your Extension
After you have created a new extension, you can share it in 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 and [Internationalization Guidelines].
Creating Configuration Patterns
The creation of custom configuration patterns can allow you to reach new levels of productivity with Mule. Follow this tutorial for starting to create your own patterns now.