in src/main/java/org/apache/bsf/BSFManager.java [136:205]
static {
final String strInfo = "org.apache.bsf.BSFManager.dumpEnvironment() [from static{}]";
try {
definedClassLoader = BSFManager.class.getClassLoader(); // get defining ClassLoader
final String resourceName = "org/apache/bsf/Languages.properties";
Enumeration e = null;
// use the Thread's context class loader to locate the resources
final ClassLoader tccl = Thread.currentThread().getContextClassLoader(); // try to get the context class loader
if (tccl != null) // no context class loader available!
{
e = tccl.getResources(resourceName);
} else // fallback
{
e = definedClassLoader.getResources(resourceName);
Thread.currentThread().setContextClassLoader(definedClassLoader); // set Thread context class loader
}
while (e.hasMoreElements()) {
final URL url = (URL) e.nextElement();
final InputStream is = url.openStream();
final Properties p = new Properties();
p.load(is);
for (final Enumeration keys = p.propertyNames(); keys.hasMoreElements();) {
final String key = (String) keys.nextElement();
final String value = p.getProperty(key);
final String className = value.substring(0, value.indexOf(","));
// get the extensions for this language
final String exts = value.substring(value.indexOf(",") + 1);
final StringTokenizer st = new StringTokenizer(exts, "|");
final String[] extensions = new String[st.countTokens()];
for (int i = 0; st.hasMoreTokens(); i++) {
extensions[i] = st.nextToken().trim();
}
registerScriptingEngine(key, className, extensions);
}
}
} catch (final IOException ex) {
final BSF_Log logger = BSF_LogFactory.getLog(BSFManager.class.getName());
logger.debug("[BSFManager] static {...}");
logger.error("[BSFManager] Error reading Languages file, exception :", ex);
// TODO: leave in case only a no-op-logger is available or remove next two statements?
ex.printStackTrace();
System.err.println("Error reading Languages file " + ex);
} catch (final NoSuchElementException nsee) {
final BSF_Log logger = BSF_LogFactory.getLog(BSFManager.class.getName());
logger.debug("[BSFManager] static {...}");
logger.error("[BSFManager] Syntax error in Languages resource bundle, exception :", nsee);
// TODO: leave in case only a no-op-logger is available or remove next two statements?
nsee.printStackTrace();
System.err.println("Syntax error in Languages resource bundle");
} catch (final MissingResourceException mre) {
final BSF_Log logger = BSF_LogFactory.getLog(BSFManager.class.getName());
logger.debug("[BSFManager] static {...}");
logger.error("[BSFManager] Initialization error, exception :", mre);
// TODO: leave in case only a no-op-logger is available or remove next two statements?
mre.printStackTrace();
System.err.println("Initialization error: " + mre.toString());
}
}