Hi Romain,

The idea of ResourceBundleControlProvider that silently intercepts getBundle of every application on the system is not well fit with the module system, especially in terms of resource encapsulation. That's one of the reasons behind the decision to disable ResourceBundle.Control in named modules. It still works fine with unnamed modules so it's not a regression per se.

As you noted below, ResourceBundleProvider serves as the migration path for applications that control the loading of resource bundles in named modules. I'd suggest trying to migrate your application using the interface. Although you need to implement this new interface, the contents of your existing resource bundles shouldn't be affected by this migration. Mandy has updated the javadoc (not in jdk10, but in the current jdk repository) with this issue:

http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8193767/

I hope that would be useful.

Naoto

On 1/10/18 12:48 AM, Romain Manni-Bucau wrote:
Hi guys,

Opened https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8193680 and
it got closed - not fully sure what was missing - but I got the
recommandation to contact that list on that topic.

The issue is simple: java 8 introduced ResourceBundleControlProvider which
is really nice and allows to replace the resource bundle lookup for all the
app transparently. Concretely in my case I get the translations from a rest
service in one case or - as a fallback - from a specific folder on the
filesystem. You will note that both are outside the application.

I didn't find a way to migrate my application to named modules because
there is no replacement for that feature in java 9 if you are outside
unamed modules. The ResourceBundleProvider was looking like a good
candidate but is too impacting and requires to modify the bundle itself.

Any way to avoid functional regressions and migrate to java 9 named modules?

Thanks,
Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau>

Reply via email to