Skin Sandbox
Config
- default Topaz Publish Platform config
- per virtual journal config overrides & extensions
Servlet Filter
- filter @ http session or webapp container
- make it more generic v. WebWorks Action
- config file driven
- context is
- available for get/set by webapp
- http session based
- user session based
- probably no need for true WebWorks ActionMapper interceptor
Actions
- different name space for CT and every virtual journal
- separate xwork file
- mirrors existing name space for actions that should be overridden
- has CT (or some other constant) in front of package name (e.g package namespace="/ct/article" and action name = "fetchArticle")
- Have Action Mapper check to see if that action in the journal namespace exists. Lookup in xwork config object
- If exist, invoke, otherwise call default name space
- allows ability to define new actions per journal as well as different result types per journal
Content
Static
- Servlet Filter does cascading lookup based on config
- config http headers for max cachability
- webapp unaware of serving static files, URI rewrites, etc.
HTML
- Servlet Filter will hide some (most?) activity
- served by webapp
Templates / CSS / JavaScript
- To determine which file to include per page, use plosone.xml and overrides based on a namespace.
- This allows for additional files to be added per page, per journal.
- Correct files are inserted at runtime based on what the Filter set up
- convert all URIs in *.ftl to <@ww.url>
Images
For retrieval of images,
- insert a Servlet Filter that resolves actual file based on requested path and context
- maybe easiest thing to do is insert a Servlet mapping based on /images/*
- namespace with overrides - look for file in defined context (e.g., CT/images/blah.gif) if not there, default to regular directory (/images/blah.gif)
- does lookup based on context (config, host header, etc)
- can cache using OSCache or some other mechanism - may have to customize - see what OSCache uses to key the request
- this will be more flexible as images can be referenced in CSS, JavaScript, or ftl
To avoid confusion, templates, CSS, JavaScript and images will behave similarly in terms of name resolution.
Logging
- it may be possible to prefix log entries with virtual journal name
- named ThreadGroups (Amit to investigate)
- config logging???
- fall-back is single intermixed log
Packaging
- at build time
- 1 RPM
- includes Topaz Publishing System
- includes specified virtual journals
Framework Versions
- really nice to upgrade to Struts2 now (Steve investigating)
- rev all framework components
