You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Robert Munteanu (JIRA)" <ji...@apache.org> on 2017/09/20 12:21:01 UTC
[jira] [Closed] (SLING-2047) Properly provide locale inheritance
support
[ https://issues.apache.org/jira/browse/SLING-2047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Munteanu closed SLING-2047.
----------------------------------
> Properly provide locale inheritance support
> -------------------------------------------
>
> Key: SLING-2047
> URL: https://issues.apache.org/jira/browse/SLING-2047
> Project: Sling
> Issue Type: Improvement
> Components: Extensions
> Affects Versions: I18n 2.0.4
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
> Fix For: I18n 2.1.0
>
>
> The ResourceBundle class is intended to be used with inheritance of resources from parent resource bundles. Thus the ResourceBundle.getObject(String) is implemented along these lines:
> Object obj = handleGetObject(key);
> if (obj == null) {
> if (parent != null) {
> obj = parent.getObject(key);
> }
> if (obj == null) {
> throw new MissingResourceException(...)
> }
> }
> return obj;
> The JcrResourceBundle.handleObject(String key) method is implemented like this:
> Object value = // get from the repository resources
> return (value == null) ? key : value;
> That is the key is returned if there is no value. This, though, breaks the inheritance chain intended by the ResourceBundle.getObject(String) method. We should fix this along these lines:
> * The JcrResourceBundleProvider provides a root ResourceBundle implementation as follows:
> - handleObject(String key) always returns the key
> - getLocale() returns an empty Locale
> - getKeys() always returns an empty enumeration
> * The root ResourceBundle is used as the parent for all JcrResourceBundle instances which have no Locale induced parent
> * JcrResourceBundle.handleGetObject(String key) only returns the value for the given locale
> This way we can keep the guarantee that getObject(String key) method of a ResourceBundle provided by the JcrResourceBundleProvider never throws a MissingResourceException.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)