2017-02-01 15:23:35 +01:00
|
|
|
|
2016-12-26 15:59:19 +02:00
|
|
|
package io.moquette.server.config;
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.io.InputStreamReader;
|
|
|
|
|
import java.io.Reader;
|
2017-01-11 14:56:16 +01:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
2016-12-26 15:59:19 +02:00
|
|
|
public class ClasspathResourceLoader implements IResourceLoader {
|
|
|
|
|
|
2017-02-01 15:23:35 +01:00
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(ClasspathResourceLoader.class);
|
|
|
|
|
|
2016-12-26 15:59:19 +02:00
|
|
|
private final String defaultResource;
|
|
|
|
|
private final ClassLoader classLoader;
|
|
|
|
|
|
|
|
|
|
public ClasspathResourceLoader() {
|
|
|
|
|
this(IConfig.DEFAULT_CONFIG);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ClasspathResourceLoader(String defaultResource) {
|
|
|
|
|
this(defaultResource, Thread.currentThread().getContextClassLoader());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ClasspathResourceLoader(String defaultResource, ClassLoader classLoader) {
|
|
|
|
|
this.defaultResource = defaultResource;
|
|
|
|
|
this.classLoader = classLoader;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Reader loadDefaultResource() {
|
|
|
|
|
return loadResource(defaultResource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Reader loadResource(String relativePath) {
|
2017-02-01 15:23:35 +01:00
|
|
|
LOG.info("Loading resource. RelativePath = {}.", relativePath);
|
2016-12-26 15:59:19 +02:00
|
|
|
InputStream is = this.classLoader.getResourceAsStream(relativePath);
|
|
|
|
|
return is != null ? new InputStreamReader(is) : null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getName() {
|
|
|
|
|
return "classpath resource";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|