![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.ahtutils.msgbundle.Utf8ResourceBundle Maven / Gradle / Ivy
package net.sf.ahtutils.msgbundle;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Enumeration;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import javax.faces.context.FacesContext;
public class Utf8ResourceBundle extends ResourceBundle
{
protected static final String bundleExtension = "properties";
protected static final Control UTF8_CONTROL = new UTF8Control();
public Utf8ResourceBundle(String bundleName)
{
setParent(ResourceBundle.getBundle(bundleName,FacesContext.getCurrentInstance().getViewRoot().getLocale(), UTF8_CONTROL));
}
@Override
protected Object handleGetObject(String key)
{
return parent.getObject(key);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Enumeration getKeys()
{
return parent.getKeys();
}
protected static class UTF8Control extends Control
{
public ResourceBundle newBundle (String baseName, Locale locale, String format, ClassLoader loader, boolean reload)
throws IllegalAccessException, InstantiationException, IOException
{
String bundleName = toBundleName(baseName, locale);
String resourceName = toResourceName(bundleName, bundleExtension);
ResourceBundle bundle = null;
InputStream stream = null;
if(reload)
{
URL url = loader.getResource(resourceName);
if(url != null)
{
URLConnection connection = url.openConnection();
if (connection != null)
{
connection.setUseCaches(false);
stream = connection.getInputStream();
}
}
}
else
{
stream = loader.getResourceAsStream(resourceName);
}
if(stream != null)
{
try
{
bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
}
finally
{
stream.close();
}
}
return bundle;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy