Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

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

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