Saturday, 31 January 2009

My development work on System.Messaging is going to go on hold for around 3 months, as I am about to head off back-packing around South-east Asia. I will pick it back up again when I get back to the UK.

There hasn't much progress over the last couple of weeks. I burned a fair bit of time upgrading to 1.5 of the RabbitMQ.Client dll only to find a bug (which was reported and recently fixed) in their library. There is still quite a few things to work on, currently on my list are:

- Upgrade RabbitMQ.Client library to 1.5.1.
- Finish MessageEnumerators.
- Figure out how to map System.Messaging security to AMQP's model.
- Sort out configuration support environment variables and System.Configuration.
- Performance Testing.

Saturday, 3 January 2009

Async APIs for Mono's System.Messaging

I have just added support for the asynchronous parts of the System.Messaging API for Mono, i.e. BeginPeek(), BeginReceive(), EndPeek(), EndReceive() and the associated events. There is a follow up patch waiting for review the ensures that exceptions are properly propagated back to the caller when EndPeek() or EndReceive() is called.

I have made support for these methods generic, i.e. it does not rely on the RabbitMQ implementation, thereby reducing the amount of work required to integrate another messaging implemenation. Just extend MessageQueueBase from the Mono.Messaging namespace.