This pertains to uPortal 3.3 and later
Rendering Pipeline Overview
The rendering pipeline uses a combination of XML Streaming APIs (StAX) and a custom Character Streaming API which mimics the StAX APIs but handles character and portal specific data. The rendering pipeline is comprised of small components each with a specific function. These components use a common input and output API allowing the runtime pipeline to be easily modified. Also all components are cache aware and can return a CacheKey that represents their current state for a request. This allows caching components to short-circuit the rendering pipeline when the output from a lower-level component is already in cache.
Key Components
While the rendering pipeline has over 17 components there are only a few that are really interesting.
XSLTComponent
Generic XSLT engine that works with StAX XMLEvent streams. The XSL Template is provided via an injected TransformerSource and a TransformerConfigurationSource can be injected to provide properties and parameters to the Transformer. There are structure and theme specific implementations of these interfaces that allow the same XSLTComponent to be re-used for each needed XSL Transformation in the pipeline.
StAXSerializingComponent
Detailed Pipeline Diagram
The diagram below represents the actual default uPortal rendering pipeline configuration.