Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Full backwards compatibility (in particular, binary compatibility) will be hard to achieve. The current approach is to create a set of adapter classes and a backwards compatibility library (BCL) that would satisfy overwhelming majority of the requirements, but leave the hardest cases for individual consideration.

...

To define specific requirements, we need to identify specific classes that should be included in the BCL. The initial approach is to use API scanning tools on custom channels of current uP2 installations.
As a second stage, we would like to identify a specific set of channels that community deems necessary to support at the time of release. We encourage everyone to contribute to the required channel support effort.

Implementation

Channel adapter core

Channel adapter is a portlet that create and manage lifecycle of IChannel instances. Components of the channel adaptor are shown in the diagram below (UPC: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.).
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.