Java tutorial
/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.tnt.listener; import com.autentia.tnt.manager.report.ReportManager; import com.autentia.tnt.util.ApplicationLock; import com.autentia.tnt.util.ConfigurationUtil; import com.autentia.tnt.util.SpringUtils; import java.io.File; import java.io.FileNotFoundException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.log4j.PropertyConfigurator; import org.springframework.web.context.support.WebApplicationContextUtils; /** * * @author Ivan Zaera Avellon */ public class StartupListener implements ServletContextListener { private static final Log log = LogFactory.getLog(StartupListener.class); private static final String FILE_LOG4J = "/log4j.properties"; public void contextInitialized(ServletContextEvent sce) { try { // Dump traces now as if nothing had happended before log.info("--------------------------------------------------------------------------------"); log.info("contextInitialized - starting up application"); log.info("contextInitialized - saving Spring's context for use by all application"); // Save Spring context SpringUtils.configure(WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext())); // Get configuration directory String cfgDir = ConfigurationUtil.getDefault().getConfigDir(); log.info("contextInitialized - configuration directory set to '" + cfgDir + "'"); // Normalized cfgDir if (cfgDir.endsWith("/") || cfgDir.endsWith("\\")) { cfgDir = cfgDir.substring(0, cfgDir.length() - 1); } // Check configuration directory if (!new File(cfgDir).isDirectory()) { throw new FileNotFoundException(cfgDir); } // Configure LOG4J String log4jProperties = cfgDir + FILE_LOG4J; if (!new File(log4jProperties).exists()) { throw new FileNotFoundException(log4jProperties); } PropertyConfigurator.configure(log4jProperties); log.info("contextInitialized - configuring LOG4J system with file " + log4jProperties); // Try to create essential directories File uploadPath = new File(ConfigurationUtil.getDefault().getUploadPath()); log.info("contextInitialized - checking upload directory " + uploadPath.getAbsolutePath()); uploadPath.mkdirs(); if (!uploadPath.isDirectory()) { throw new FileNotFoundException(uploadPath.getAbsolutePath()); } // Load reports if (ConfigurationUtil.getDefault().getLoadingReportOnLoad() > 0) { log.info("contextInitialized - loading reports in report manager"); ReportManager.getReportManager(); } else { log.info("contextInitialized - loading reports on startup disabled"); } // Check database log.info("contextInitialized - checking database version"); ApplicationLock.refresh(); } catch (FileNotFoundException e) { log.fatal("contextInitialized - configuration dir or file not found (" + e.getMessage() + "): application will not be started", e); throw new IllegalStateException("Config dir or file not found", e); } /* Moved to Spring catch( ConfigurationException e ) { log.fatal("contextInitialized - error reading application configuration: application will not be started",e); throw new IllegalStateException("Error reading applocation configuration",e); } */ } public void contextDestroyed(ServletContextEvent sce) { log.info("contextDestroyed - shutting down application"); } }