jdk/src/java.base/share/classes/java/util/spi/AbstractResourceBundleProvider.java
changeset 38782 ff27bc5c278e
parent 36511 9d0388c6b336
child 42338 a60f280f803c
--- a/jdk/src/java.base/share/classes/java/util/spi/AbstractResourceBundleProvider.java	Fri Jun 03 16:28:53 2016 +0100
+++ b/jdk/src/java.base/share/classes/java/util/spi/AbstractResourceBundleProvider.java	Fri Jun 03 12:26:45 2016 -0700
@@ -40,6 +40,36 @@
  * {@code AbstractResourceBundleProvider} is an abstract class for helping
  * implement the {@link ResourceBundleProvider} interface.
  *
+ * <p>
+ * Resource bundles can be packaged in a named module separated from
+ * the <em>caller module</em> loading the resource bundle, i.e. the module
+ * calling {@link ResourceBundle#getBundle(String)}.  For the caller module
+ * to load a resource bundle "{@code com.example.app.MyResources}"
+ * from another module and a service interface named
+ * "{@code com.example.app.MyResourcesProvider}",
+ * the <em>bundle provider module</em> can provide the implementation class
+ * as follows:
+ *
+ * <pre><code>
+ * import com.example.app.MyResourcesProvider;
+ * class MyResourcesProviderImpl extends AbstractResourceBundleProvider
+ *     implements MyResourcesProvider
+ * {</code>
+ *     {@code @Override
+ *     public ResourceBundle getBundle(String baseName, Locale locale) {
+ *         // this module only provides bundles in french
+ *         if (locale.equals(Locale.FRENCH)) {
+ *              return super.getBundle(baseName, locale);
+ *         }
+ *         return null;
+ *     }
+ * }}</pre>
+ *
+ * @see <a href="../ResourceBundle.html#bundleprovider">
+ *     Resource Bundles in Named Modules</a>
+ * @see <a href="../ResourceBundle.html#RBP_support">
+ *     ResourceBundleProvider Service Providers</a>
+ *
  * @since 9
  */
 public abstract class AbstractResourceBundleProvider implements ResourceBundleProvider {
@@ -125,6 +155,7 @@
         Module module = this.getClass().getModule();
         String bundleName = toBundleName(baseName, locale);
         ResourceBundle bundle = null;
+
         for (String format : formats) {
             try {
                 if (FORMAT_CLASS.equals(format)) {