[
https://issues.apache.org/jira/browse/SLING-9174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kunal Mittal updated SLING-9174:
--------------------------------
Attachment: Dynamic-Include-Cache.png
> Add option to replace component path to experience fragment variation path
> --------------------------------------------------------------------------
>
> Key: SLING-9174
> URL: https://issues.apache.org/jira/browse/SLING-9174
> Project: Sling
> Issue Type: Improvement
> Components: Extensions
> Affects Versions: Dynamic Include 3.1.6
> Reporter: Kunal Mittal
> Priority: Major
> Attachments: Dynamic-Include-Cache.png, DynamicInclude-Cache.png
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> The SDI module currently includes the path of the component in the SSI
> directive which creates the cache under the page where the component is
> added.
> There are number of cases where we create content which gets reused across
> the website. In order to achieve reusability, we create proxy components
> which in turn make a call to these reusable content pages.
> In the below example there is a proxy component: *banner-proxy* reusable
> page: */content/sdi/us/en/content/banner* which is used on 2 pages:
> # */content/sdi/us/en/test-sdi1*
> # */content/sdi/us/en/test-sdi2*
> The banner-proxy component exists on both pages: test-sdi1 and test-sdi2 page
> to render /content/sdi/us/en/content/banner.
> If we enable SDI and enable caching for banner-proxy component then 2 cache
> entries get created:
> /content/sdi/us/en/test-sdi1/_jcr_content/root/banner-proxy and
> /content/sdi/us/en/test-sdi2/_jcr_content/root/banner-proxy
> When any change is made to /content/sdi/us/en/content/banner page, it should
> reflect the changes on test-sdi1 and test-sdi2 page for which we need to
> write extra code to find the occurrences of where the proxy banner component
> is used.
> With the enhancement as the SSI directive includes the path of the content:
> /content/sdi/us/en/content/banner, the system creates a single cache entry
> for the pages where it is referenced in. When the page is published, the
> cache will be evicted which will be reflected on all the pages.
> *Benefits*:
> # Performance
> ** Considerably reduces the number of calls to Publisher
> # Cache Optimisation
> ** No custom code to invalidate cache entries created under every page
> *Current implementation*:
> {code:java}
> ## Directive added in the page after processing of SDI
> <!--#include
> virtual="/content/sdi/us/en/test-sdi1/_jcr_content/root/banner-proxy.nocache.html"
> -->
> {code}
> *Enhancement*:
> {code:java}
> ## Directive added in the page after processing of SDI
> <!--#include virtual="/content/sdi/us/en/content/banner.content.nocache.html"
> -->
> {code}
> Below are the differences when it comes to caching:
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)