BCL

uPortal2 Backwards Compatibility Library

Purpose

BCL aims to provide the minimal set of uPortal2 classes necessary to enable channels to work within uPortal3 framework. This includes interfaces and a number of concreete classes. This page outlines what is currently included in the BCL and why.

Content

BCL in uPortal3 (uP2api.jar) currently includes the following classes:
((warning) classes that should be removed, (error) currently broken features)

class

purpose

  • IChannel
  • IMultithreadedChannel
  • IMultithreadedCharacterChannel
  • IMultithreadedCacheable
  • IMultithreadedPrivileged
  • IPrivileged
  • IPrivilegedChannel

Core channel interfaces.
IPrivileged interfaces are supported only formally, since portal control structures obviously can't be replicated in the new framework.

  • ChannelRuntimeData
  • ChannelStaticData
  • ChannelRuntimeProperties

Core classes. These are extended in the uP3 framework.

  • ICCRegistry
  • UPFileSpec
  • BrowserInfo

Additional classes referenced by core classes.

  • (error) IMultithreadedMimeResponse
  • (error) IMultithreadedDirectResponse
  • (error) IMimeResponse
  • (error) IDirectResponse

Custom response interfaces. While the interfaces are included in the library, current adapter implementation does not support this functionality.

  • ICacheable
  • ChannelCacheKey

Caching

  • PortalEvent
  • PortalEventSource
  • PortalException
  • ResourceMissingException
  • GeneralRenderingException
  • AuthorizationException
  • IllegalChannelParameterOverrideException

uP2 event and exception support

  • (warning) ErrorID
  • (warning) CountID
  • (warning) Errors
  • (warning) ProblemsTable

uP2 problem tracking classes, since they are referenced from within exception implementations. Will need to move to the uP3 problem management.

  • *ChannelAdapter classes

A set of adapter implementation for existing interface combinations (i.e. MultithreadedPrivilegedCacheableChannelAdapter)

  • (warning) PropertiesManager
  • (warning) BadPropertyException
  • MissingPropertyException

Properties manager, which is required by several classes within the library (SAX2BufferImpl)

  • BaseChannel
  • BaseMultithreadedChannel

Base channel classes

  • XSLT
  • StylesheetSet
  • StylesheetDescription
  • media.properties
  • mime.properties

channel utilities

  • SAX2BufferImpl
  • SAX2FilterImpl

uP2 filter and buffer implementations used in some of the channels

  • LocaleManager
  • LocaleAwareXSLT

uP2 i18n

  • (warning) IUserLayoutManager
  • (warning) IUserLayoutManager
  • (warning) IUserLayoutChannelDescription
  • (warning) IUserLayoutNodeDescription
  • (warning) IUserLayout
  • (warning) IUserLayoutStore
  • (warning) UserPreferences
  • (warning) LayoutEventListener
  • (warning) UserProfile
  • (warning) StructureStylesheetUserPreferences
  • (warning) ThemeStylesheetUserPreferences
  • (warning) StylesheetUserPreferences

This set of classes is included becase IUserLayoutManager is referenced from ChannelStaticData (for the purposes of persisting channel parameters). Would be nice to remove this dependency, but I am not sure this is doable. Including these is admittedly ugly, but the methods which use IUserLayoutManager are overloaded and never called, so all this is provides is compile-time compatibility.