Why does PropertySerialPeerFactory return the serializing peers based on ClassLoader?

Hi there. I'm working on getting Echo 3 working in an OSGi framework (in fact, I've got this running already) but I'm not entriely comfortable with my solution. The issue with Echo is that it relies on ClassLoaders when locating the peer properties map and calculates these based on Thread.currentThread().getContextClassLoader(). This just won't work in OSGi, and results in an Exception being thrown because there is no entry in the PropertySerialPeerFactory classLoaderToFactoryMap for the ClassLoader in the context of the web app (the HTTP Service bundle initializes the Echo library in its thread/classloader, and this populates the Map, while at "runtime" the web app itself calls Echo on a different Thread/ClassLoader).

Now, my questions is: why does this map need to be here at all? Would it not be possible just to have a class which returns the serialization peer, rather than the current method, and which works regardles of the ClassLoader? Was this current model put in place to handle a circumstance I'm not aware of, or have overlooked?

Thanks

Bruce