[ https://issues.apache.org/jira/browse/SLING-10135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Norman resolved SLING-10135. --------------------------------- Resolution: Fixed No objections were raised for the PR so I merged it at: [https://github.com/apache/sling-org-apache-sling-i18n/commit/b09c56f39825fe85350a833e930289fb1f8e3e6b] to resolve this issue. > Add the ability to locate non JCR based ResourceBundle resources > ---------------------------------------------------------------- > > Key: SLING-10135 > URL: https://issues.apache.org/jira/browse/SLING-10135 > Project: Sling > Issue Type: Improvement > Reporter: Eric Norman > Assignee: Eric Norman > Priority: Major > Fix For: i18n 2.5.16 > > Time Spent: 2h 10m > Remaining Estimate: 0h > > The sling.i18n ResourceBundle discovery mechanism appears to be utilizing a > JCR centric xpath query that is used to locate the resources that contain the > resource bundles strings. Specifically: > "//element(*,mix:language)[@jcr:language]" > This means that any resources provided by a non-JCR backed resource provider > like the Sling-Bundle-Resources technique are not discovered and used. The > non-JCR provider implementations usually don't supply an "xpath" > QueryLanguageProvider implementation that would understand the query that the > sling.i18n bundle is running. > > What I propose is to supply a new osgi.extender technique in sling.i18n so > that a bundle can declare certain paths that should be traversed to locate > ResourceBundle resources. > For example, the bundle providing the resources could define something like > this: > > {code:java} > Require-Capability: > osgi.extender;filter:="(&(osgi.extender=org.apache.sling.i18n.resourcebundle.locator.registrar)(version<=1.0.0)(!(version>=2.0.0)))" > Provide-Capability: > org.apache.sling.i18n.resourcebundle.locator;paths="/libs/i18n/path123";depth=1{code} > > The "Provide-Capability" instruction would define which (csv) resource paths > to traverse and how deep to drill down (depth=1 by default) looking for > candidates. > > The sling.i18n bundle would supply the > "org.apache.sling.i18n.resourcebundle.locator.registrar" capability that > would track any bundles added/removed that contain the new "locator" path > declarations. Those declared locator paths would be traversed to augment > the set of potential language roots whenever a ResourceBundle is requested. > -- This message was sent by Atlassian Jira (v8.3.4#803005)