package com.linkedin.thirdeye.common; import com.linkedin.thirdeye.client.DAORegistry; import com.linkedin.thirdeye.datalayer.bao.AnomalyFunctionManager; import com.linkedin.thirdeye.datalayer.bao.AutotuneConfigManager; import com.linkedin.thirdeye.datalayer.bao.DashboardConfigManager; import com.linkedin.thirdeye.datalayer.bao.DatasetConfigManager; import com.linkedin.thirdeye.datalayer.bao.EmailConfigurationManager; import com.linkedin.thirdeye.datalayer.bao.JobManager; import com.linkedin.thirdeye.datalayer.bao.MergedAnomalyResultManager; import com.linkedin.thirdeye.datalayer.bao.MetricConfigManager; import com.linkedin.thirdeye.datalayer.bao.RawAnomalyResultManager; import com.linkedin.thirdeye.datalayer.bao.jdbc.AnomalyFunctionManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.AutotuneConfigManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.DashboardConfigManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.DatasetConfigManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.EmailConfigurationManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.JobManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.MergedAnomalyResultManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.MetricConfigManagerImpl; import com.linkedin.thirdeye.datalayer.bao.jdbc.RawAnomalyResultManagerImpl; import com.linkedin.thirdeye.datalayer.util.DaoProviderUtil; import io.dropwizard.Application; import io.dropwizard.Configuration; import java.io.File; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class BaseThirdEyeApplication<T extends Configuration> extends Application<T> { protected final Logger LOG = LoggerFactory.getLogger(this.getClass()); protected AnomalyFunctionManager anomalyFunctionDAO; protected RawAnomalyResultManager rawAnomalyResultDAO; protected EmailConfigurationManager emailConfigurationDAO; protected JobManager jobDAO; protected MergedAnomalyResultManager mergedAnomalyResultDAO; protected DatasetConfigManager datasetConfigDAO; protected MetricConfigManager metricConfigDAO; protected DashboardConfigManager dashboardConfigDAO; protected AutotuneConfigManager functionAutotuneConfigDAO; protected DAORegistry DAO_REGISTRY = DAORegistry.getInstance(); public void initDAOs() { String persistenceConfig = System.getProperty("dw.rootDir") + "/persistence.yml"; LOG.info("Loading persistence config from [{}]", persistenceConfig); DaoProviderUtil.init(new File(persistenceConfig)); anomalyFunctionDAO = DaoProviderUtil.getInstance(AnomalyFunctionManagerImpl.class); rawAnomalyResultDAO = DaoProviderUtil.getInstance(RawAnomalyResultManagerImpl.class); emailConfigurationDAO = DaoProviderUtil.getInstance(EmailConfigurationManagerImpl.class); jobDAO = DaoProviderUtil.getInstance(JobManagerImpl.class); mergedAnomalyResultDAO = DaoProviderUtil.getInstance(MergedAnomalyResultManagerImpl.class); datasetConfigDAO = DaoProviderUtil.getInstance(DatasetConfigManagerImpl.class); metricConfigDAO = DaoProviderUtil.getInstance(MetricConfigManagerImpl.class); dashboardConfigDAO = DaoProviderUtil.getInstance(DashboardConfigManagerImpl.class); functionAutotuneConfigDAO = DaoProviderUtil.getInstance(AutotuneConfigManagerImpl.class); } }