Gliffy | ||||||||
---|---|---|---|---|---|---|---|---|
|
Technologies
- StAX (XML Streaming APIs)
Pipeline Ordering Overview
- User Layout Store
- outputs XMLEventReader
- Attribute Incorporation Filter (Structure)
- outputs XMLEventReader
- XSLT (Structure)
- uses XSLT Parameter Provider to help setup the Transformer
- outputs XMLEventReader
- Portlet Rendering Initiator
- Uses Portlet Renderer API to initiate async portlet rendering
- outputs XMLEventReader
- Attribute Incorporation Filter (Theme)
- outputs XMLEventReader
- XSLT (Theme)
- uses XSLT Parameter Provider to help setup the Transformer
- outputs XMLEventReader
- Serializer
- Uses XMLOutputFactory to convert from XMLEventReader to Character data
- outputs CharacterEventReader
- Portlet Incorporation Filter
- Portlet Renderer API to retrieve portlet rendering results
- outputs CharacterEventReader
- Output Writer
- Writes to response Writer
Pipeline Component API
...
interface PipelineComponent {
CompositeCacheKey getCacheKey(HttpServletRequest, HttpServletResponse);
}
interface StAXPipelineComponent {
XMLEventReader getEventReader(HttpServletRequest, HttpServletResponse);
}
interface CharacterPipelineComponent {
CharacterEventReader getEventReader(HttpServletRequest, HttpServletResponse);
}
Pipeline Caching Flow
...
key = parentComponent.getCacheKey(req, res)
eventRender = cache.get(key)
- If
eventReader
is not null return it - If
eventReader
is null callparentComponent.getEventReader(req, res)
...
Note |
---|
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.
Gliffy | ||||||||
---|---|---|---|---|---|---|---|---|
|