To be able to do anything useful, an ESB must be configured with all sorts of
parameters, from endpoint connection URIs to message transformation scripts
to content-based routing definitions. Moreover, ESBs like Mule can host
custom components, which will process messages and perform user-specific
actions on them.
Deploying a new version of an ESB configuration raises the question of
whether it will break anything. How can we build confidence that everything
will be just fine? If unit testing did it for standard software development,
what can it do in the realm of the ESB? Since ESBs are becoming increasingly
familiar in corporate IT, getting concrete answers is of interest to more and
This article details the testing strategies I employ for Mule ESB-driven
projects, which I think contain elements that could be generalized to other
platforms. I am cer... (more)
I've been caressing the idea to buy a Wi-Fi enabled media player in order to
tap into the gigabytes of (legal) music that sits in my NAS. I've considered
investing into a Logitech Squeezebox, or a similar product, but I wasn't sure
such a device would be able to play directly from an NFS share, without any
music server running somewhere.
Just when I started to consider building a player out of a SheevaPlug, I
remembered of the ultimate source of cheap hardware, ready to be repurposed:
eBay. $125 and a few days later I had a like-new black Asus Eee PC 2G Surf
waiting to be turned ... (more)
If you use RabbitMQ as your message oriented middleware and Zabbix as your
monitoring and graphing tool, you're probably wondering how to monitor the
former with the latter.
Here is the Zabbix Agent configuration I use to keep track of the number of
messages pending delivery and the total number of queues (this second
parameter may not make sense for you if you don't create a lot of dynamic
UserParameter=rabbitmq.local.queues.count[*],sudo rabbitmqctl -q list_queues
-p $1 | wc -l
UserParameter=rabbitmq.local.messages_ready.count[*],sudo rabbitmqctl -q
list_queues -p $1 m... (more)
A few days ago, the big brains at RabbitMQ have released Erlando, a nifty
pair of parse transformers that add support for cuts and do-syntax monads in
Erlang. Like many others I'm sure, I've quickly started to use these new
Here is a quick demonstration of how the Maybe monad and the do keyword can
simplify the chaining of methods. The following shows a succession of
condition evaluations which must all succeed for the final function
(process_json_entities) to be called:
For those of you who wonder, yes I know that WebMachine could do most of this
stuff for m... (more)
This blog is the formal introduction to the CRaSH console for Mule on which
I've been working for the past month or so. I've decided to interview myself
about it because, hey, if I don't do it, who will?
What is CRaSH for Mule?
It is a shell that is running embedded in Mule and that gives command-line
access to a variety of Mule internal moving parts. It's built thanks to the
excellent CRaSH project, a toolkit built by Julien Viet and sponsored by eXo
Platform, which allows the easy creation of embedded shells.
What can we do with it?
Well, it's easy to find it out. Let's connect ... (more)