@Override public void setup(String dirName) { defaultStorage = new GzipStorage(); defaultStorage.setup(dirName); dailyStorage = new GzipStorage(); dailyStorage.setup(dirName + "/day"); weeklyStorage = new GzipStorage(); weeklyStorage.setup(dirName + "/week"); monthlyStorage = new GzipStorage(); monthlyStorage.setup(dirName + "/month"); } }
/** * Should not fail. May return null in case of failure. * @return */ public Storage safeCreate(){ String className = Properties.getStorageClass(); String initParam = Properties.getStorageClassInitParam(); if( className != null && className.length() > 0 ){ try { Class<? extends Storage> clazz = (Class<? extends Storage>)Class.forName(className); Storage storage = clazz.newInstance(); storage.setup(initParam); log.debug("Successfully created StatsStorage instance: {}, with params: {}", className, initParam); return storage; } catch (Exception e) { log.warn("Failed to create new StatsStorage: {}, with params: {}.", className, initParam, e); } } else { log.debug("Storage class not specified"); } return null; } }
@Override public void setup(String initParam) { defaultStorage = new JdbcStorage().setTablePrefix(""); defaultStorage.setup(initParam); dailyStorage = new JdbcStorage().setTablePrefix("day_"); weeklyStorage = new JdbcStorage().setTablePrefix("week_"); monthlyStorage = new JdbcStorage().setTablePrefix("month_"); //save DB connection resources and re-use the same DS for aggregated storage asList( dailyStorage, weeklyStorage, monthlyStorage) .forEach( s -> ((JdbcStorage)s).setRun( ((JdbcStorage)defaultStorage).getRun() ) ); } }
@Override public void setup(String initParam) { defaultStorage = new ClobJdbcStorage().setTablePrefix(""); defaultStorage.setup(initParam); dailyStorage = new ClobJdbcStorage().setTablePrefix("day_"); weeklyStorage = new ClobJdbcStorage().setTablePrefix("week_"); monthlyStorage = new ClobJdbcStorage().setTablePrefix("month_"); //save DB connection resources and re-use the same DS for aggregated storage asList( dailyStorage, weeklyStorage, monthlyStorage) .forEach( s -> ((ClobJdbcStorage)s).setRun( ((ClobJdbcStorage)defaultStorage).getRun() ) ); } }