package de.rwu.easydrop; import java.util.List; import javax.naming.ConfigurationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sqlite.SQLiteDataSource; import de.rwu.easydrop.api.client.DataSourceFactory; import de.rwu.easydrop.data.connector.AbstractProductPersistence; import de.rwu.easydrop.data.connector.SQLiteConnector; import de.rwu.easydrop.model.ProductCatalogue; import de.rwu.easydrop.service.retriever.CatalogueRetriever; import de.rwu.easydrop.service.retriever.ProductRetriever; import de.rwu.easydrop.service.writer.CatalogueWriter; import de.rwu.easydrop.util.Config; import de.rwu.easydrop.util.ProductsConfig; /** * Kickoff point for the service. * * @since 0.1.0 */ public final class Main { /** * Logger for main process. */ private static final Logger LOGGER = LoggerFactory.getLogger(Main.class); /** * Prevents unwanted instantiation. */ private Main() throws IllegalAccessException { throw new IllegalAccessException("Don't instantiate me! >:("); } /** * Application entrypoint. * * @param args */ public static void main(final String[] args) throws ConfigurationException { Config config = Config.getInstance(); ProductsConfig pConfig = ProductsConfig.getInstance(); DataSourceFactory dataSourceFactory = new DataSourceFactory(config); ProductRetriever retriever = new ProductRetriever(dataSourceFactory); CatalogueRetriever catRetriever = new CatalogueRetriever(pConfig, retriever); AbstractProductPersistence db = new SQLiteConnector(new SQLiteDataSource()); CatalogueWriter catWriter = new CatalogueWriter(db); catRetriever.loadCatalogues(); List pCats = catRetriever.getProductCatalogues(); catWriter.writeCatalogues(pCats); for (ProductCatalogue pCat : pCats) { String pCatStr = pCat.toString(); LOGGER.info(pCatStr); } } }