package com.alibaba.doris.dataserver.store.log.db;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.doris.common.config.ConfigTools;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class ClumpConfigureLoader {
public ClumpConfigureLoader(String configFile) {
this.configFile = configFile;
}
public ClumpConfigure load() {
Properties prop = null;
if (StringUtils.isNotBlank(configFile)) {
prop = ConfigTools.loadProperties(configFile);
}
if (null == prop) {
prop = ConfigTools.loadProperties("default_log_storage.properties");
if (logger.isDebugEnabled()) {
logger.debug("Couldn't load properties file :" + configFile
+ " Using default log storage properties file. (default_log_storage.properties)");
}
} else {
if (logger.isDebugEnabled()) {
logger.debug("Loading log storage properties file: " + configFile);
}
}
ClumpConfigure conf = new ClumpConfigure();
String path = prop.getProperty("log.storage.path");
if (StringUtils.isBlank(path)) {
path = getDefaultPath();
}
conf.setPath(path);
String value = prop.getProperty("log.storage.read.buffer.size");
if (StringUtils.isNotBlank(value)) {
conf.setReadBufferSize(Integer.valueOf(value));
}
value = prop.getProperty("log.storage.write.buffer.size");
if (StringUtils.isNotBlank(value)) {
conf.setWriteBufferSize(Integer.valueOf(value));
}
value = prop.getProperty("log.storage.write.direct");
if (StringUtils.isNotBlank(value)) {
conf.setWriteDirect(Boolean.valueOf(value));
}
return conf;
}
private String getDefaultPath() {
return this.getClass().getClassLoader().getResource("").getPath();
}
private String configFile;
private static final Logger logger = LoggerFactory.getLogger(ClumpConfigureLoader.class);
}