Chris Nokleberg's Fizzy Weblog
I've been reading Howard's blog but there isn't any way to comment and I haven't blogged in a month and a half anyway...
I need to think about it more, but it seems to me that there might be an opportunity for a kind of "commons-singleton" package. Some thin layer like the NotAContainer class through which everyone would get singletons. You could easily swap out different underlying containers and policies (even at run time) without the client code having to change. Even swapping out HiveMind for something else entirely would be simple.
The only disadvantage I can see is that in order to be general and thin this layer would itself have to use ThreadLocals because the underlying services might be using a threaded model, even if for a particular application they aren't. I suppose it depends on the granularity of your service methods, but I think it would be worth the performance hit.