* @return A Value located by the key or default value
*/
public ReturnValue extract(String key, Object source, Object defaultValue) {
if (source instanceof MessageContext) {
return new ReturnValue(((MessageContext) source).getProperty(key));
}
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (log.isDebugEnabled()) {
log.debug("Loading a file ' " + key + " ' from class-path");
}
InputStream in = cl.getResourceAsStream(key);
if (in == null) {
if (log.isDebugEnabled()) {
log.debug("Unable to load file ' " + key + " ' from class-path. " +
"Returning given default value");
}
return new ReturnValue(defaultValue);
}
return new ReturnValue(in);
}