...
Full backwards compatibility (in particular, binary compatibility) will be hard to achieve. The current approach is to create a set of adaptor adapter classes and a backwards compatibility library (BCL) that would satisfy overwhelming majority of the requirements, but leave the hardest cases for individual consideration.
...
Channel adapter is a portlet that create and manage lifecycle of IChannel instances. Components of the channel adaptor are shown in the diagram below (PDF).
ChannelAdapterPortlet bean implements the main container and exposes standard JSR168 potlet interface. To drive IChannel lifecycle, ChannelAdapter creates modified versions of ChannelStaticData, BrowserInfo and ChannelRuntimeData which inherit from the standard uP2 implementations from the BCL.
Channels are instantiated using ChannelFactory. Current implementation is local (i.e. in uP3 code, not derived from uP2 implementation, mostly because of the CarResources initiation problems). The implementation uses standard channel adaptor classes from BCL to support IChannel variants (i.e. multithreaded, cacheable, etc.).
ChannelAdaptor ChannelAdapter implements uP2 caching contract. The implementaiton is configured with channelInstanceCache and channelSystemCache, which are standard uP3 ICache objects which are used to maintain instance-scoped and system-scoped cache key entries.