1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| package bla.bla.bla.struts;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.util.MessageResourcesFactory;
import org.apache.struts.util.PropertyMessageResources;
public class MultiPropertyMessageResources extends PropertyMessageResources
{
protected static final Log log;
public MultiPropertyMessageResources(MessageResourcesFactory factory, String config)
{
super(factory, config);
log.info("Initializing, config='" + config + "'");
}
public MultiPropertyMessageResources(MessageResourcesFactory factory, String config, boolean returnNull)
{
super(factory, config, returnNull);
log.info("Initializing, config='" + config + "', returnNull=" + returnNull);
}
protected void loadLocale(String localeKey)
{
label0:
{
if(log.isTraceEnabled())
log.trace("loadLocale(" + localeKey + ")");
synchronized(locales)
{
if(locales.get(localeKey) == null)
break label0;
}
return;
}
locales.put(localeKey, localeKey);
String configFiles[] = config.split(",");
for(int i = 0; i < configFiles.length; i++)
{
String name = configFiles[i].trim().replace('.', '/');
if(localeKey.length() > 0)
name = name + "_" + localeKey;
name = name + ".properties";
InputStream is = null;
Properties props = new Properties();
try
{
if(log.isTraceEnabled())
log.trace(" Loading resource '" + name + "'");
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if(classLoader == null)
classLoader = getClass().getClassLoader();
is = classLoader.getResourceAsStream(name);
if(is != null)
{
props.load(is);
is.close();
}
if(log.isTraceEnabled())
log.trace(" Loading resource completed");
}
catch(Throwable t)
{
log.error("loadLocale()", t);
if(is != null)
try
{
is.close();
}
catch(Throwable u) { }
}
if(props.size() < 1)
return;
synchronized(messages)
{
String key;
for(Enumeration names = props.keys(); names.hasMoreElements(); messages.put(messageKey(localeKey, key), props.getProperty(key)))
{
key = (String)names.nextElement();
if(log.isTraceEnabled())
log.trace(" Saving message key '" + messageKey(localeKey, key));
}
}
}
return;
}
static
{
log = LogFactory.getLog(MultiPropertyMessageResources.class);
}
} |
Partager