aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/util/ResourceBundle.java25
2 files changed, 22 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 0f95888..24f2307 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,10 @@
2000-12-14 Tom Tromey <tromey@redhat.com>
+ * java/util/ResourceBundle.java
+ (getBundle(String,Locale,ClassLoader)): New method.
+ (trySomeGetBundle): Added `loader' argument.
+ (partialGetBundle): Likewise.
+
* java/text/NumberFormat.java (groupingUsed, parseIntegerOnly,
maximumFractionDigits, maximumIntegerDigits,
minimumFractionDigits, minimumIntegerDigits): Now
diff --git a/libjava/java/util/ResourceBundle.java b/libjava/java/util/ResourceBundle.java
index 639872b..99b81bf 100644
--- a/libjava/java/util/ResourceBundle.java
+++ b/libjava/java/util/ResourceBundle.java
@@ -73,7 +73,8 @@ public abstract class ResourceBundle
// stripping off the '_' delimited tails until the search name is
// the same as stopHere.
private static final ResourceBundle trySomeGetBundle (String bundleName,
- String stopHere)
+ String stopHere,
+ ClassLoader loader)
{
Class rbc;
ResourceBundle needs_parent = null, r, result = null;
@@ -115,9 +116,9 @@ public abstract class ResourceBundle
}
// Look for a properties file.
- InputStream i =
- ClassLoader.getSystemResourceAsStream (bundleName.replace ('.', '/')
- + ".properties");
+ InputStream i = loader.getResourceAsStream (bundleName.replace ('.',
+ '/')
+ + ".properties");
if (i != null)
{
try
@@ -151,7 +152,8 @@ public abstract class ResourceBundle
// Search for bundles, but stop at baseName_language (if required).
// This is synchronized so that the cache works correctly.
private static final synchronized ResourceBundle
- partialGetBundle (String baseName, Locale locale, boolean langStop)
+ partialGetBundle (String baseName, Locale locale, boolean langStop,
+ ClassLoader loader)
{
ResourceBundle rb;
@@ -168,7 +170,7 @@ public abstract class ResourceBundle
+ (langStop ? ("_" + locale.getLanguage()) : ""));
- rb = trySomeGetBundle(bundleName, stopHere);
+ rb = trySomeGetBundle(bundleName, stopHere, loader);
if (rb != null)
resource_cache.put(bundleName, rb);
@@ -177,6 +179,13 @@ public abstract class ResourceBundle
public static final ResourceBundle getBundle (String baseName,
Locale locale)
+ {
+ return getBundle (baseName, locale, ClassLoader.getSystemClassLoader ());
+ }
+
+ public static final ResourceBundle getBundle (String baseName,
+ Locale locale,
+ ClassLoader loader)
throws MissingResourceException
{
ResourceBundle rb;
@@ -185,14 +194,14 @@ public abstract class ResourceBundle
if (baseName == null)
throw new NullPointerException ();
- rb = partialGetBundle(baseName, locale, false);
+ rb = partialGetBundle(baseName, locale, false, loader);
if (rb != null)
return rb;
// Finally, try the default locale.
if (! locale.equals(Locale.getDefault()))
{
- rb = partialGetBundle(baseName, Locale.getDefault(), true);
+ rb = partialGetBundle(baseName, Locale.getDefault(), true, loader);
if (rb != null)
return rb;
}