[
https://issues.apache.org/jira/browse/COCOON-2320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Javier Puerto updated COCOON-2320:
----------------------------------
Attachment: CachingServletServiceSerializer.patch
Patch to add CachingServletServiceSerializer.
> CachingServletServiceSerializer
> -------------------------------
>
> Key: COCOON-2320
> URL: https://issues.apache.org/jira/browse/COCOON-2320
> Project: Cocoon
> Issue Type: Improvement
> Components: * Cocoon Core, - Servlet service framework
> Affects Versions: 2.2-dev (Current SVN)
> Reporter: Javier Puerto
> Priority: Minor
> Attachments: CachingServletServiceSerializer.patch
>
>
> Hello Cocoon developers,
> We are using Apache Cocoon 2.2 for a project and I've found a bottleneck in
> our template system. We use servlet service components to render our pages in
> the same way you can see for Style Block. The current Cocoon Welcome block is
> an example.
> This way of rendering is very useful but as currently the servlet services
> components doesn't implement CacheableServiceComponent interface, all the
> request will be processed completely at the end.
> For our usecase, here is an example:
> <map:match pattern="x">
> <map:generate ...
> <map:transform ...
> <map:include ...
> <map:serialize type="servletService">
> <map:parameter name="service"
> value="servlet:style:/service/common/simple-page2html"/>
> </map:serialize>
> </map:match>
> The most expensive part is the serialization process because we use i18n,
> Link rewriter and some transformations. We can configure everything to be
> cacheable but at the end, the serialization process must be performed
> entirely. I've simply extended the current ServletServiceSerializer in
> CachingServletServiceSerializer adding the cache key as requested service URL
> and NOPValidity as validity object. This approach has a problem, due to the
> nature of the servlet service components we need to move all the dynamically
> generated content from our GUI block since if we detect that the content
> hasn't changed, the CachingServletServiceSerializer will not perform any
> process and will return the cached content. Also, as there's a little hack
> for serializer output mime type, if you want to use the new component you
> must set the serialization content type explicitly. See
> http://article.gmane.org/gmane.text.xml.cocoon.devel/73261
> <map:match pattern="x">
> <map:generate ...
> <map:transform ...
> <map:include ...
> <map:serialize type="caching-servletService" mime-type="text/html">
> <map:parameter name="service"
> value="servlet:style:/service/common/simple-page2html"/>
> </map:serialize>
> </map:match>
> For our usecase seems to fit well and will allow us to enable the powerful
> cocoon caching system for a lot of pages. IMO, it's a problem when you want
> to use the ServletServiceSerializer to have a clean and common output for the
> template system and you can't use the caching even with static files.
> Attached is the patch for cocoon-servlet-service-components block.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira