In geronimo we've been studying the ee platform spec section 8.3 and think that it's allowable to have a single classloader per ear, and we're currently implementing this (in geronimo 3). However the jsf spec requires that different web apps in an ear be distinguishable in the javax.faces.FactoryFinder. Currently myfaces' FactoryFinder distinguishes web apps by context classloader.
While there might be other possible solutions, I'd like to make the way FactoryFinder figures out what context it's in pluggable. The default implementation would continue to use the TCCL, and geronimo can install a system that relies on explicit notification from the container when component boundaries are crossed. I've refactored the myfaces bit of this and it seems to work fine, but I'm still working on the geronimo part. However since a myfaces release seems imminent I'd like to get this proposal out for consideration and review ASAP. I've opened MYFACES-2995 and am attaching an initial patch for consideration. thanks david jencks