BCL

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:
( classes that should be removed, 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.

  • IMultithreadedMimeResponse

  • IMultithreadedDirectResponse

  • IMimeResponse

  • 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

  • ErrorID

  • CountID

  • Errors

  • 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)

  • PropertiesManager

  • 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

  • IUserLayoutManager

  • IUserLayoutManager

  • IUserLayoutChannelDescription

  • IUserLayoutNodeDescription

  • IUserLayout

  • IUserLayoutStore

  • UserPreferences

  • LayoutEventListener

  • UserProfile

  • StructureStylesheetUserPreferences

  • ThemeStylesheetUserPreferences

  • 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.