package com.chickling.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; import org.yaml.snakeyaml.error.YAMLException; /** * load ItemService.yaml and initialize. * * @author ay21 * @date 2015-01-21 */ public class YamlLoader { public static final Logger logger = LogManager.getLogger(YamlLoader.class); public static YamlLoader instance; private String prestoURL=""; private String database=""; private String hivepath=""; private String logpath=""; private String sqliteName=""; private String siteURLBase=""; private String expiration=""; private String prestoCatalog=""; private String csvlocalPath=""; private String deleteLogTTL=""; private String scheduleLogDir=""; private String wrtierinjection=""; private String downloadToken=""; private String presto_hdfs_user=""; static { loadYaml(); } private static void loadYaml() { String yamlPath =YamlLoader.class.getResource("/").getPath()+"config.yaml"; try { logger.info("Loading configuration from " + yamlPath); InputStream input; try{ input = new FileInputStream(yamlPath); }catch (FileNotFoundException e){ logger.error("Ymal file not found at " + yamlPath); throw new AssertionError(e); } Constructor constructor = new Constructor(YamlLoader.class); Yaml yaml = new Yaml(constructor); instance = (YamlLoader) yaml.load(input); } catch (YAMLException e) { logger.error("Invalid yaml; unable to start. See log for stacktrace.", e); System.exit(1); } } public String getPrestoURL() { return prestoURL; } public void setPrestoURL(String prestoURL) { this.prestoURL = prestoURL; } public String getDatabase() { return database; } public void setDatabase(String database) { this.database = database; } public String getHivepath() { return hivepath; } public void setHivepath(String hivepath) { this.hivepath = hivepath; } public String getLogpath() { return logpath; } public void setLogpath(String logpath) { this.logpath = logpath; } public String getPrestoCatalog() { return prestoCatalog; } public void setPrestoCatalog(String prestoCatalog) { this.prestoCatalog = prestoCatalog; } public String getCsvlocalPath() { return csvlocalPath; } public void setCsvlocalPath(String csvlocalPath) { this.csvlocalPath = csvlocalPath; } public String getDeleteLogTTL() { return deleteLogTTL; } public void setDeleteLogTTL(String deleteLogTTL) { this.deleteLogTTL = deleteLogTTL; } public String getSiteURLBase() { return siteURLBase; } public void setSiteURLBase(String siteURLBase) { this.siteURLBase = siteURLBase; } public String getExpiration() { return expiration; } public void setExpiration(String expiration) { this.expiration = expiration; } public String getScheduleLogDir() { return scheduleLogDir; } public void setScheduleLogDir(String scheduleLogDir) { this.scheduleLogDir = scheduleLogDir; } public String getSqliteName() { return sqliteName; } public void setSqliteName(String sqliteName) { this.sqliteName = sqliteName; } public String getWrtierinjection() { return wrtierinjection; } public void setWrtierinjection(String wrtierinjection) { this.wrtierinjection = wrtierinjection; } public String getDownloadToken() { return downloadToken; } public void setDownloadToken(String downloadToken) { this.downloadToken = downloadToken; } public String getPresto_hdfs_user() { return presto_hdfs_user; } public void setPresto_hdfs_user(String presto_hdfs_user) { this.presto_hdfs_user = presto_hdfs_user; } @Override public String toString() { return "YamlLoader{" + "prestoURL=" + prestoURL + ", Hive Temp Table Database=" + database + ", Hive Table HDFS Path=" + hivepath + ", JobLog HDFS Path=" + logpath + ", Web Portal SQLite Name=" + sqliteName + ", SiteURLBase=" + siteURLBase + ", Expiration=" + expiration + ", Presto Catalog=" + prestoCatalog + ", CSV Local Path=" + csvlocalPath + ", Delete Log TTL=" + deleteLogTTL + ", Scheduled Log Dir=" + scheduleLogDir + '}'; } }