package net.jhorstmann.i18n.impl; import java.util.Locale; import java.util.ResourceBundle; import java.util.ResourceBundle.Control; import net.jhorstmann.i18n.ResourceBundleProvider; import net.jhorstmann.i18n.ResourceBundleProviderFactory; public class DefaultResourceBundleProviderFactory extends ResourceBundleProviderFactory { static class DefaultResourceBundleProvider implements ResourceBundleProvider { private final String bundleName; DefaultResourceBundleProvider(String bundleName) { this.bundleName = bundleName; } @Override public ResourceBundle getResourceBundle(Locale locale) { ClassLoader cl = Thread.currentThread().getContextClassLoader(); Control control = Control.getNoFallbackControl(Control.FORMAT_DEFAULT); return ResourceBundle.getBundle(bundleName, locale, cl, control); } } private final ResourceBundleProvider provider; public DefaultResourceBundleProviderFactory() { ClassLoader cl = Thread.currentThread().getContextClassLoader(); String bundleName = DefaultResourceBundle.getBundleName(cl); this.provider = new DefaultResourceBundleProvider(bundleName); } @Override public boolean isEnvironmentSupported() { return true; } @Override public ResourceBundleProvider newResourceBundleProvider() { return provider; } }