Has anyone virtualized a service by recording on a HornetQ queue?
Were there any pitfalls to be aware of? As far as I can see - one can connect to it as if it were a standard JMS queue.
They used JMS to virtualize HornetQ at Apple a few years ago. The only pitfall we encountered was the fact that HornetQ can use a nonstandard bytes message that requires some HornetQ-specific API calls in order to read and write its contents. We put some hacks in place to handle it with the old JMS protocol. The new JMS protocol can handle it with an extension, which hasn't been written yet.
to add further color to this , this is not what I would call a standard JMS provider at all, they basically force the user to use thier api for send/recieve and it did not follow the java standard jms so kind of a "one off" in my opinion. Everything about this seemed to be a hack of sorts.....but technically possible just not sure is sound from an enterprise architecure perpective, considering the "non-standard" jms approach. If the customer is looking for something free and open source I would go with ActiveMQ.
HornetQ is open source; it's a JBoss subproject. It has a Native API and then a JMS API wrapped that, in much the same way that IBM MQ does it. Their JMS API is reasonably compliant, with the exception of the non-standard bytes message type. Our problem before was that the customer wanted us to use their homegrown client library directly, which was built on top of HornetQ Native. We managed to work around that with JMS and a hack for handing the contents of the non-standard bytes message, which I believe was a byproduct of using HQ JMS mode to talk to an app that using HQ Native mode.
Retrieving data ...