Javanicus (Jeremy:) has spotted a local JMS for local people (a funny post title for those aware of the League of Gentlemen)
which is Somnifugi, a JMS 1.0.2b implementation which supports intra-VM
messaging. This is a great idea and is very useful for unit testing
message related services.
However if you'd like an open source & complete JMS 1.1 implementation which works purely in memory you might wanna take ActiveMQ
for a spin. Not only does it implement the much nicer JMS 1.1 API with
queue and topic polymorphism, it also supports JCA & XA and next
month we'll enable full persistence support with Berkeley DB, JDBM and JDBC (and recoverable transaction log using Howl).
Finally if you wanna switch from purely in memory JMS to real
distributed JMS using TCP, SSL, UDP, multicast, EmberIO, JGroups, JRMS
or JTXA, you just need to change your ActiveMQ connection URL
and hey presto you're now distributed using the protocol of your
choice. If you need to then look inside the JMS to see messages on
queues & topics you can try use your web browser or the Hermes UI browser.