[ 
https://issues.apache.org/jira/browse/SLING-2881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13666162#comment-13666162
 ] 

Alexander Klimetschek edited comment on SLING-2881 at 5/27/13 9:09 AM:
-----------------------------------------------------------------------

I think listening for sling:Message should be enough. But... mix:language 
modifications are probably necessary to catch changing the language of a 
dictionary (which I can imagine happens when you create/copy a dictionary, and 
then change the language to the "new" one).

Maybe we have two event listeners:
* sling:Message modification => full reload
* mix:language modification => quick check if path is already covered in a 
cached dictionary and only reload (everything) in this case; if it's a new 
dictionary and has no strings yet (= no sling:message), we don't have to care, 
and as soon as a string is added, you get the sling:Message event above
                
      was (Author: alexander.klimetschek):
    I think listening for sling:Message should be enough. But.. mix:language 
modifications are probably necessary to catch changing the language of a 
dictionary (which I can imagine happens when you create/copy a dictionary, and 
then change the language to the "new" one).

Maybe we have to event listeners:
* sling:Message modification => full reload
* mix:language modification => quick check if path is already covered in a 
cached dictionary and only reload (everything) in this case; if it's a new 
dictionary and has no strings yet (= no sling:message), we don't have to care, 
and as soon as a string is added, you get the sling:Message event above
                  
> [I18N][Performance] JcrResourceBundleProvider clears the cache on 
> mix:language changes
> --------------------------------------------------------------------------------------
>
>                 Key: SLING-2881
>                 URL: https://issues.apache.org/jira/browse/SLING-2881
>             Project: Sling
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: i18n 2.2.4
>         Environment: CQ5.6
>            Reporter: Rob Ryan
>              Labels: performance
>
> Performance of an appplication using Sling i18n JcrResourceBundleProvider 
> suffers drastically if nodes with mixin type mix:language are modified 
> frequently.
> The reason for the performance degradation is that JcrResourceBundleProvider 
> registers a JCR event listener for node types: mix:language and 
> sling:Message. It then clears the i18n resource bundle cache whenever a node 
> with these types appears in an event.
> The JCR 2.0 spec indicates applications should use a mix:language type as the 
> standard way to provide a property specifying the natural language which the 
> content of a  node is expressed.
> Therefore clearing the resource bundle cache on a change to *any* node with a 
> mix:language type is inappropriately broad.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to