IF :
- JCR Resource Resolver [1] is used to allow requests missing the initial /content
AND
- Dispatcher has a /statsfilelevel greater than 0
THEN
It is impossible for dispatcher to invalidate the cache.
EXAMPLE:
- Content in CRX has /content/mysite/mylanguage/mypage
- Request comes in to dispatcher for /mylanguage/mypage.html
- CQ serves /mylanguage/mypage.html successfully
- Dispatcher saves the cache at /mylanguage/mypage.html
- Author server sends activation request for /content/mysite/mylanguage/mypage
- Dispatcher recieves the activation request and touches stat file at :
- /content
- /content/mysite
- /content/mysite/mylanguage
- Request comes in to dispatcher for /mylanguage/mypage.html
- The stat file at /mylanguage has never been touched, and statsfilelevel > 0, so /mylanguage/mypage.html is considered valid
- Dispatcher returns the cached file at /mylanguage/mypage.html
I have seen this suggestion from DAYCARE [2], but it says to rewrite the URL so that the cache is still stored in full context. We can't do this for multiple technical reasons, and so I'm wondering if, instead, there is a way to make the {path} variable in the extended replication agent options [3] intelligent enough to strip activation path URI based on URL Mappings, the same way the Link Rewriter rewrites links based on these exact settings. We really need the activation path to change rather than the request path in the web server.
[1]: Go to http://localhost:4502/system/console/configMgr and click Apache Sling JCR Resource Resolver. Then add a URL Mapping such as /content/mysite/-/
[2]: http://dev.day.com/content/kb/home/cq5/CQ5SystemAdministration/HowToFlushMappedContent.htm l
[3]: Go to http://localhost:4502/etc/replication/agents.author/flush.html , click edit, and go to Extended tab