Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Gliffy
sizeL
nameStAX Rendering Pipeline
alignleft
version5

Technologies

  • StAX (XML Streaming APIs)

Pipeline Ordering Overview

  1. User Layout Store
    • outputs XMLEventReader
  2. Attribute Incorporation Filter (Structure)
    • outputs XMLEventReader
  3. XSLT (Structure)
    • uses XSLT Parameter Provider to help setup the Transformer
    • outputs XMLEventReader
  4. Portlet Rendering Initiator
    • Uses Portlet Renderer API to initiate async portlet rendering
    • outputs XMLEventReader
  5. Attribute Incorporation Filter (Theme)
    • outputs XMLEventReader
  6. XSLT (Theme)
    • uses XSLT Parameter Provider to help setup the Transformer
    • outputs XMLEventReader
  7. Serializer
    • Uses XMLOutputFactory to convert from XMLEventReader to Character data
    • outputs CharacterEventReader
  8. Portlet Incorporation Filter
    • Portlet Renderer API to retrieve portlet rendering results
    • outputs CharacterEventReader
  9. Output Writer
    • Writes to response Writer

Pipeline Component API

Code Block
java
java
interface PipelineComponent {
    CompositeCacheKey getCacheKey(HttpServletRequest, HttpServletResponse);
}

interface StAXPipelineComponent {
    XMLEventReader getEventReader(HttpServletRequest, HttpServletResponse);
}

interface CharacterPipelineComponent {
    CharacterEventReader getEventReader(HttpServletRequest, HttpServletResponse);
}

Pipeline Caching Flow

  • Caching will be applied via additional filters in the chain, either a StAXCachingFilter or a CharacterCachingFilter.
  • The filter will use the following steps when getEventReader is called
    1. key = parentComponent.getCacheKey(req, res)
    2. eventRender = cache.get(key)
    3. If eventReader is not null return it
    4. If eventReader is null call parentComponent.getEventReader(req, res)
  • The caches that will be used will be chaining caches meaning they will be wired together in parallel to the rendering pipeline allowing parent expiration state checking.