You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/09/14 10:03:47 UTC
svn commit: r695136 -
/geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java
Author: jdillon
Date: Sun Sep 14 01:03:46 2008
New Revision: 695136
URL: http://svn.apache.org/viewvc?rev=695136&view=rev
Log:
Fixed to load resources from the correct classloader
Modified:
geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java
Modified: geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java?rev=695136&r1=695135&r2=695136&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-i18n/src/main/java/org/apache/geronimo/gshell/i18n/ResourceBundleMessageSource.java Sun Sep 14 01:03:46 2008
@@ -20,74 +20,43 @@
package org.apache.geronimo.gshell.i18n;
import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import org.codehaus.plexus.util.StringUtils;
-
/**
- * Message source backed up by one or more {@link ResourceBundle} instances for simple i18n support.
+ * Message source backed up by one or more {@link ResourceBundle} instances.
*
* @version $Rev$ $Date$
*/
public class ResourceBundleMessageSource
implements MessageSource
{
- private final String[] bundleNames;
-
- private ResourceBundle[] cachedBundles;
+ private final List<ResourceBundle> bundles = new ArrayList<ResourceBundle>();
- public ResourceBundleMessageSource(final String[] names) {
- assert names != null;
- assert names.length != 0;
-
- this.bundleNames = names;
- }
+ private final Locale locale;
- public ResourceBundleMessageSource(final String name) {
- this(new String[] { name });
- }
-
- private static String[] classNames(final Class[] types) {
+ public ResourceBundleMessageSource(final Class[] types) {
assert types != null;
- assert types.length != 0;
- String[] names = new String[types.length];
+ locale = Locale.getDefault();
- for (int i=0; i<types.length; i++) {
- assert types[i] != null;
-
- names[i] = types[i].getName();
+ for (Class type : types) {
+ loadBundle(type);
}
-
- return names;
- }
-
- public ResourceBundleMessageSource(final Class[] types) {
- this(classNames(types));
}
public ResourceBundleMessageSource(final Class type) {
- this(new String[] { type.getName() });
+ this(new Class[] { type });
}
- private ResourceBundle[] createBundles() {
- ResourceBundle[] bundles = new ResourceBundle[bundleNames.length];
+ private void loadBundle(final Class type) {
+ assert type != null;
- for (int i=0; i<bundleNames.length; i++) {
- assert bundleNames[i] != null;
-
- bundles[i] = ResourceBundle.getBundle(bundleNames[i]);
- }
-
- return bundles;
- }
-
- private ResourceBundle[] getBundles() {
- if (cachedBundles == null) {
- cachedBundles = createBundles();
- }
- return cachedBundles;
+ ResourceBundle bundle = ResourceBundle.getBundle(type.getName(), locale, type.getClassLoader());
+ bundles.add(bundle);
}
/**
@@ -96,7 +65,7 @@
public String getMessage(final String code) {
assert code != null;
- for (ResourceBundle bundle : getBundles()) {
+ for (ResourceBundle bundle : bundles) {
try {
return bundle.getString(code);
}
@@ -119,26 +88,19 @@
return MessageFormat.format(pattern, args);
}
- /**
- * @see #getMessage(String)
- */
- public Object getProperty(final String name) {
- return getMessage(name);
- }
-
//
// ResourceNotFoundException
//
- private static String notFoundMessage(final String code, final String[] bundleNames) {
- return "Resource not found for code: " + code + " in bundles: " + StringUtils.join(bundleNames, ", ");
- }
-
public class ResourceNotFoundException
extends RuntimeException
{
public ResourceNotFoundException(final String code) {
- super(notFoundMessage(code, bundleNames));
+ //
+ // TODO: Include the resource bundle names
+ //
+
+ super("Resource not found for code: " + code);
}
}
}