package com.intuit.tank.reporting.factory; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.reporting.api.DummyResultsReporter; import com.intuit.tank.reporting.api.ResultsReader; import com.intuit.tank.reporting.api.ResultsReporter; import com.intuit.tank.vm.settings.ReportingConfig; import com.intuit.tank.vm.settings.TankConfig; public final class ReportingFactory { private static final Logger LOG = LogManager.getLogger(ReportingFactory.class); private ReportingFactory() { } /** * * @return */ public static final ResultsReporter getResultsReporter() { ResultsReporter ret = null; try { ReportingConfig config = new TankConfig().getReportingConfig(); String providerClass = config.getReporterClass(); ret = (ResultsReporter) Class.forName(providerClass).newInstance(); HierarchicalConfiguration providerConfig = config.getProviderConfig(); ret.config(providerConfig); } catch (Exception e) { LOG.error("Error instantiating reporter"); ret = new DummyResultsReporter(); } return ret; } /** * * @return */ public static final ResultsReader getResultsReader() { ResultsReader ret = null; try { ReportingConfig config = new TankConfig().getReportingConfig(); String providerClass = config.getReaderClass(); ret = (ResultsReader) Class.forName(providerClass).newInstance(); HierarchicalConfiguration providerConfig = config.getProviderConfig(); ret.config(providerConfig); } catch (Exception e) { LOG.error("Error instantiating reporter"); // ret = new DummyResultsReader(); } return ret; } }