This page exists to capture an overview of the uPortal framework architecture. Feel free to add/update the descriptions of parts of the framework you are familiar with.
uPortal 3.0 Architecture Overview
JSR-168 Portlet Support
uPortal implementations portlet support as an IChannel API to Portlet adapter which delegates to the Pluto 1.1 portlet container. Pluto 1.1 provides its own descriptor parsing and object model code, uPortal implements most of the service provider interfaces (SPIs) that Pluto makes available to provide callbacks to the uPortal provided services. The Pluto portlet container is declared and configured in the uPortal Spring application context which manages the startup/shutdown life-cycle of the container. The adapter channel looks up the container from the Spring context and delegates portlet rendering and life-cycle events to the container for processing by the portlets.
To fully support the requirements of the portlet API the IChannel API was expanded where needed.
WSRP Consumer Support
WSRP4J is the only open-source WSRP consumer implementation that we know about and as it is tied to Pluto 1.0 it cannot be used in uPortal 3.0 which uses Pluto 1.1. Until a WSRP consumer that will work with Pluto 1.1 is available no WSRP support will be available in uPortal 3.0.
uPortal 2.6 Architecture Overview
JSR-168 Portlet Support
uPortal implements portlet support as an IChannel API to Portlet adapter which delegates to the Pluto 1.0 portlet container. The original intent was to hide as much of the Portlet functionality behind this adapter and keep the uPortal framework IChannel centric. The adapter channel, CPortletAdapter, manages the entire portlet container life-cycle and dispatches to the portlet container for the life-cycle of each portlet. Pluto 1.0 also requires an object model implementation and descriptor (web.xml/portlet.xml) parsing code be provided by the portal. Hooks back into uPortal services such as user attributes and groups are provided through the object model and extending Pluto classes such as the PortletRequest object.
WSRP Consumer Support
WSRP Consumer support is achieved through the use of the WSRP4j Proxy Portlet. This is a JSR-168 portlet that is run in the same way as any other JSR-168 portlet in the uPortal framework. The portlet has some small customizations to read its configuration from the appropriate Portlet Preferences. The proxy portlet does not support the WSRP portlet discovery services and all for WSRP service URLs and the targeted portlet ID must be known when configuring the portlet. The proxy portlet also depends directly on Apache Pluto 1.0.
uPortal 2.0 Architecture Overview
The following documents were produced for the uPortal 2.0 release
