Configuring Mule involves XML, and though using a decent XML editor can help a lot (thanks to the contextual help it provides from Mule’s schemas), there are still a enough angle brackets to warrant a coffee break as projects get more complicated. As the number of services in a Mule project increases, so does the amount of noise in its configuration files, making it harder and harder to understand and maintain them. In Mule 3, we’ve decided to tackle this problem with the introduction of pattern-based configuration.
Patterns-based engineering is a software discipline that encourages the identification of recurrent practices in order to create consumable artifacts that encourage subsequent and efficient re-use. We believe that these principles can be applied to configuring Mule. This is why we’ve started an effort to collect and implement configuration patterns.
Concretely, these patterns will present themselves as syntactic sugar for Mule configuration. They will be new XML elements that will allow you to perform common configuration tasks with the least possible amount of XML.
On top of that, configuration patterns will also offer some form of inheritance to allow sharing common properties across them. Finally, they will rely heavily on the re-architecture of Mule’s core, which has paved the way for the creation of such specialized artifacts.
Any transport or module will have the possibility to contribute configuration patterns, so some of these patterns will be highly specialized. Of course, it will always be possible to use the more generic configuration elements offered by Mule for cases when a pattern doesn’t fully cover your needs.